centos7编译安装hive

Posted 平凡似水的人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7编译安装hive相关的知识,希望对你有一定的参考价值。

一、安装数据库

1、解压安装包

tar zxf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz -C /data/

2、修改文件目录名称

mv /data/mysql-5.6.39-linux-glibc2.12-x86_64/ mysql

3、创建数据目录

mkdir sqldata
useradd -M -s /sbin/nologin mysql
##授权
cd /data/
chown -R mysql.mysql mysql

4、配置环境变量

vim  /etc/profile
PATH=$PATH:/data/mysql/bin
source /etc/profile

5、初始化

yum install libaio*  perl-Module-Install.noarch -y		scripts/mysql_install_db --user=work --basedir=/data/mysql --datadir=/data/mysql/sqldata
chmod -R 777 sqldata

6、复制配置文件

cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
max_allowed_packet=1024M
basedir = /data/mysql/
datadir = /data/mysql/sqldata

7、复制启动脚本

cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

8、登录

mysqladmin -uroot  password 123abcABC
mysql -uroot -p123abcABC

二、安装hive服务端

1、解压配置环境变量

#node1  解压指定位置安装
tar zxf apache-hive-1.2.1-bin.tar.gz  -C /data/
#配置环境变量
export  HIVE_HOME=/data/apache-hive-1.2.1-bin
export  PATH=$PATH:$HIVE_HOME/bin

#刷新环境变量生效
source /etc/profile

2、配置Hive文件

(1)修改hive-env.sh

cd /data/apache-hive-1.2.1-bin/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
HADOOP_HOME=/data/hadoop/hadoop-2.7.2
export HIVE_CONF_DIR=/data/apache-hive-1.2.1-bin/conf

(2)修改hive-log4j.properties

#修改hive的log存放日志位置
mv hive-log4j.properties.template  hive-log4j.properties
vim hive-log4j.properties
property.hive.log.dir = /data/apache-hive-1.2.1-bin/logs
mkdir /data/apache-hive-1.2.1-bin/logs

3、配置MySQL作为Metastore

默认情况下, Hive的元数据保存在了内嵌的 derby 数据库里, 但一般情况下生产环境使用 MySQL 来存放 Hive 元数据。

(1)安装mysql

#安装mysql,拷贝 mysql-connector-java-5.1.45.tar.gz 放入 $HIVE_HOME/lib 下。
cp mysql-connector-java-5.1.45-bin.jar /data/apache-hive-1.2.1-bin/lib

(2)修改配置文件

#复制hive-default.xml.template为hive-site.xml 文件,删除掉configuration里的配置信息,重新配置 MySQL 数据库连接信息。

cd /data/apache-hive-1.2.1-bin/conf/
cp hive-default.xml.template  hive-site.xml
vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> 
<!--Hive作业的HDFS根目录位置 --> 
<property>
    <name>hive.exec.scratchdir</name>
    <value>/user/hive/tmp</value>
</property>
<!--Hive作业的HDFS根目录创建写权限 --> 
<property>
    <name>hive.scratch.dir.permission</name>
    <value>755</value>
</property>
<!--hdfs上hive元数据存放位置 --> 
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive/warehouse</value>   
</property>
<!--连接数据库地址,名称 -->  
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://node1/hive?createDatabaseIfNotExist=true</value>  
</property>  
<!--连接数据库驱动 --> 
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>  
  <value>com.mysql.jdbc.Driver</value>  
</property> 
<!--连接数据库用户名称 -->  
<property>  
  <name>javax.jdo.option.ConnectionUserName</name>  
  <value>hive</value>
</property> 
<!--连接数据库用户密码 -->  
<property>  
  <name>javax.jdo.option.ConnectionPassword</name>  
  <value>hive</value>
</property>
<!--客户端显示当前查询表的头信息 --> 
 <property>
  <name>hive.cli.print.header</name>
  <value>true</value>
</property>
<!--客户端显示当前数据库名称信息 --> 
<property>
  <name>hive.cli.print.current.db</name>
  <value>true</value>
</property> 
<property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
</property>
</configuration>

(3)mysql创建hive用户密码

mysql -u root -p123abcABC

CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 
USE hive; 
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive'; 
GRANT ALL ON hive.* TO 'hive'@'hadoop-4' IDENTIFIED BY 'hive'; 
FLUSH PRIVILEGES;

(4)运行Hive

#初始化数据库
schematool -dbType mysql -initSchema  hive hive

(5)启动hive

#服务端启动:
nohup hiveserver2 &

#客户端使用方法

4、远程Metastore服务器(hive客户端)

这里node1作为MySQL Server,node1作为Metastore服务器,node2作为客户端。
服务端上面已经安装好,接下来安装客户端

(1)解压配置环境变量

#node2  解压指定位置安装
tar zxf apache-hive-1.2.1-bin.tar.gz  -C /data/
#配置环境变量
export  HIVE_HOME=/data/apache-hive-1.2.1-bin
export  PATH=$PATH:$HIVE_HOME/bin

#刷新环境变量生效
source /etc/profile

(2)配置Hive文件

#修改hive-env.sh
cd /data/apache-hive-1.2.1-bin/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
HADOOP_HOME=/data/hadoop/hadoop-2.7.2
export HIVE_CONF_DIR=/data/apache-hive-1.2.1-bin/conf

(3)修改hive-log4j.properties

#修改hive的log存放日志位置
mv hive-log4j2.properties.template hive-log4j2.properties
vim hive-log4j2.properties
property.hive.log.dir = /data/apache-hive-1.2.1-bin/logs
mkdir /data/apache-hive-1.2.1-bin/logs

(4)配置MySQL作为Metastore

默认情况下, Hive的元数据保存在了内嵌的 derby 数据库里, 但一般情况下生产环境使用 MySQL 来存放 Hive 元数据。

(5)安装mysql

#安装mysql,拷贝 mysql-connector-java-5.1.45.tar.gz 放入 $HIVE_HOME/lib 下。
cp mysql-connector-java-5.1.45-bin.jar /data/apache-hive-1.2.1-bin/lib

(6)修改配置文件

#复制hive-default.xml.template为hive-site.xml 文件,删除掉configuration里的配置信息,重新配置 MySQL 数据库连接信息。
cd /data/apache-hive-1.2.1-bin/conf/
cp hive-default.xml.template  hive-site.xml
vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--Hive作业的HDFS根目录位置 --> 
<property>
    <name>hive.exec.scratchdir</name>
    <value>/user/hive/tmp</value>
</property>
<!--Hive作业的HDFS根目录创建写权限 --> 
<property>
    <name>hive.scratch.dir.permission</name>
    <value>755</value>
</property>
<!--hdfs上hive元数据存放位置,默认 -->
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
</property>
<!--元数据存放路径 -->
<property>
  <name>hive.metastore.uris</name>
  <value>thrift://node1:9083</value>
</property>
<!--客户端显示当前查询表的头信息 -->
 <property>
  <name>hive.cli.print.header</name>
  <value>true</value>
</property>
<!--客户端显示当前数据库名称信息 -->
<property>
  <name>hive.cli.print.current.db</name>
  <value>true</value>
</property>
<property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
</property>
</configuration>

4、启动方式

#node1 启动
nohup hive  --service metastore  &

#查看node1的9083端口
netstat -ntlp |grep 9083

#客户端node2启动命令
hive

以上是关于centos7编译安装hive的主要内容,如果未能解决你的问题,请参考以下文章

centos7中基于hadoop安装hive(CentOS7+hadoop2.8.0+hive2.1.1)

Centos7安装Hive2.3

centos7 分布式集群hadoop与hive安装

Centos7安装Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)

基于Centos7.8的Hive安装

centos7+hadoop3.2.2+mysql5.7.33安装hive3.1.2