Hive搭建指南 环境CentOS7

这里Hadoop的版本用的是 2.7.5
hive版本选择的是 2.3.4
请看好与hadoop版本搭配的hive,官方目前继续提供2.x和3.x的支持。
机器依然是hadoop的:

192.168.20.3 Master
192.168.20.4 Slave1
192.168.20.5 Slave2

关于hadoop搭建请看:https://www.jianshu.com/p/25a0650b4a40 和 https://www.jianshu.com/p/bcb2f77d90e8

首先要说明一下:hive的搭建除了hadoop之外还有mysql,所以这边先简单说一下centos下关于mysql的安装。

1.MYSQL的准备

1.首先卸载CentOs自带的mysql
执行rpm -qa | grep mysql选择出现的机器上自带的mysql
执行rpm -e 机器上mysql的名字 --nodeps
执行yum -y install mysql-server安装新的
如果此时提示 mysql-server没有可用包,分别执行:

yum -y install wget
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server

执行service mysqld start开启服务,然后执行service mysqld status看到开启了,继续接下来的步骤:
执行cd /usr/bin去目录下执行命令./mysql_secure_installation
因为第一次启动密码为空,所以回车就可以,然后会要求设置密码
后面会进行初始化设置:
1.是否删除匿名用户

Remove anonymous users? [Y/n] Y
... Success!

2.是否不允许用户远程连接

Disallow root login remotely? [Y/n] N
... Success!

3.是否删除test数据库

Remove test database and access to it? [Y/n] Y
 Dropping test database...
... Success!
 Removing privileges on test database...
... Success!

4.是否重装

Reload privilege tables now? [Y/n] Y
... Success!

然后就完成了。我们登录mysql
mysql -uroot -p
分别执行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;

FLUSH PRIVILEGES;

exit;

mysql配置就完成了!

2.接下来就是Hive的时间了

我们去官网下载一个hive,注意版本!
然后放到文件夹下,这边路径是 /opt/soft
此时文件的所有者是root,可以修改一下
分别是:
chgrp 用户名 文件名 -R 更改文件所属用户组
chown 用户名 文件名 -R 更改文件所属用户

去/etc/profile配置环境变量

export HIVE_HOME=/opt/soft/hive-2.3.4
export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export PATH=$PATH:$HIVE_HOME/bin

执行source /etc/profile
1.hive-env.sh
增加以下:

JAVA_HOME=/opt/java/jdk1.8.0_201
HADOOP_HOME=/opt/soft/hadoop-2.7.1
HIVE_HOME=/opt/soft/hive-2.3.4

export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$HADOOP_HOME/lib:$HIVE_HOME/lib
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib

接下来就是编辑hive的配置文件了,这个是最费劲的!建议多使用vim的查找功能 也就是 Esc键之后 "/"键 写单词再回车!N是前一个单词,n是后一个单词。
在这之前先去hive的目录创建四个文件夹分别是:warehouse、log、tmp/resources、tmp/hiveJobsLog
2.hive-site.xml
首先要把hive-default.xml.template文件名字改成hive-site.xml



      hive.metastore.warehouse.dir
      /opt/soft/hive-2.3.4/warehouse



      hive.downloaded.resources.dir
      /opt/soft/hive-2.3.4/tmp/resources



      hive.querylog.location
      /opt/soft/hive-2.3.4/log


    hive.exec.local.scratchdir
    /opt/soft/hive-2.3.4/tmp/hiveJobsLog
    Local scratch space for Hive jobs

这时候先保存一下让我们缓一缓~上面是关于日志和资源文件的修改。然后在hdfs上创建相同的目录
依次执行:

hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/warehouse
hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/tmp/resources
hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/tmp/hiveJobsLog
hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/log

hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/warehouse
hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/tmp/resources
hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/tmp/hiveJobsLog
hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/log

接下来我们去修改其他关于mysql的配置。
依然是 hive-site.xml



    javax.jdo.option.ConnectionURL
    jdbc:mysql://Master:3306/hive_metadata?createDatabaseIfNotExist=true
    JDBC connect string for a JDBC metastore


    javax.jdo.option.ConnectionDriverName
    com.mysql.jdbc.Driver
    Driver class name for a JDBC metastore


    javax.jdo.option.ConnectionUserName
    root
    username to use against metastore database


    javax.jdo.option.ConnectionPassword
    root
    password to use against metastore database




    hive.exec.dynamic.partition
    true
 

    hive.exec.dynamic.partition.mode
    nonstrict
 
 
 
    hive.metastore.uris
    
    Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.
  
 
    hive.server2.thrift.bind.host
    Master
    Bind host on which to run the HiveServer2 Thrift service.
  
 
    hive.server2.metrics.enabled
    false
    Enable metrics on the HiveServer2.
  
  
    hive.server2.thrift.http.port
    10001
    Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'http'
 


    hive.server2.webui.host
    Master


    hive.server2.webui.port
    10002


    hive.scratch.dir.permission
    755

终于!!!!终于改好了!!!还不知道对不对,是在太多了!

3.接下来是 配置日志的地址, 修改hive-log4j.properties文件
cp hive-log4j.properties.template hive-log4j.properties
vi hive-log4j.properties

hive.log.dir=/opt/soft/hive-2.3.4/log4jFile

要先去创建文件夹哦!!!

4.然后拷贝一个JDBC包也就是mysql的连接包到hive的lib目录下
由于我是用虚拟机,所以可以这么弄。。。

cp /mnt/hgfs/shareOS/mysql-connector-java-5.1.6.jar /opt/soft/hive-2.3.4/lib/
  1. 拷贝jline扩展包
    $HIVE_HOME/lib目录下的jline-2.12.jar包拷贝到$HADOOP_HOME/share/hadoop/yarn/lib目录下
    如果hadoop那个lib里有旧版本,就先把旧版本干掉!
    他是个java命令行交互输入库。
cp /opt/soft/hive-2.3.4/lib/jline-2.12.jar /opt/soft/hadoop-2.7.1/share/hadoop/yarn/lib/

6.拷贝tools.jar包
复制$JAVA_HOME/lib目录下的tools.jar到$HIVE_HOME/lib

cp $JAVA_HOME/lib/tools.jar /opt/soft/hive-2.3.4/lib/
  1. 执行初始化Hive操作
    现在有两个选择用MySql或者Derby,我们选择mysql,当然把Derby的粘贴出来一下。
    mysql : schematool -dbType mysql -initSchema
    Derby: schematool -dbType mysql -initSchema
    mysql主要是用mysql做存储hive元数据的数据库,我们配置里已经写好了hive_metadata

现在!!!!终于要使用了!!!!

1.开启metastore
nohup hive --service metastore 2>&1 &
2.开启hiveserver2
nohup hive --service hiveserver2 2>&1 &

ok!!启动完之后看一下jps会多出两个Runjar
然后去看一下 http://192.168.20.3:10002/

hiveServer2

发现ui可以的。
执行hive
hive操作

这里使用了show databases;查看了一下数据库,发现有个default,可以
use default;
show tables;
之类的命令,这里不多提了,sql也不在这里赘述了。

你可能感兴趣的:(Hive搭建指南 环境CentOS7)