CentOS7-Hive远程搭建

一、准备工作:

  • 搭建要求:一主三从的Centos7环境的虚拟机
  • 部署安排:选取master节点为客户端,slave为hive端,slave2为MySQL端

二、master节点操作:

1. 作者的用的hive版本是1.8.0版本。hadoop用的是2.7.3版本,小伙伴们在做的时候要考虑各个组件的版本问题,不冲突就好.(如果嫌名字太长可以换个名字)

[root@master software]# tar apache-hive-2.1.1-bin.tar.gz -C /usr/local/

[root@master software]# mv apache-hive-2.1.1-bin hive-2.1.1

2. 配置环境变量:vim /etc/profile,根据自己的hive安装的目录来配置,作者的是/usr/local/hive-2.1.1

export HIVE_HOME=/usr/local/hive-2.1.1

export PATH=$HIVE_HOME/bin:$PATH

使环境变量生效:source /etc/profile

3. Master节点上到hive的conf目录下去,以hive-env.sh.template文件为模板得到hive-env.sh文件

[root@master conf]# cp hive-env.sh.template hive-env.sh

4. 配置hive-env.sh文件,在文件最底部找到下面三处配置信息

 CentOS7-Hive远程搭建_第1张图片

然后做如下修改:

# Set HADOOP_HOME to point to a specific hadoop install directory

export HADOOP_HOME=/usr/local/hadoop-2.7.3  #(你自己的hadoop的安装路径)

# Hive Configuration Directory can be controlled by:

export HIVE_CONF_DIR=/usr/local/hive-2.1.1/conf

# Folder containing extra ibraries required for hive compilation/execution can be controlled by:

export HIVE_AUX_JARS_PATH=/usr/local/hive-2.1.1/lib  #这个是hive服务的配置项。

5. 在conf目录下新建一个hive-site.xml文件

[root@slave conf]# vim hive-xite.xml

在文件中添加以下内容:

        hive.metastore.warehouse.dir

        /usr/local/hive-2.1.1/warehouse

        hive.metastore.local

        false

        hive.metastore.uris

        thrift://hive端名称:9083

  •  hive.metastore.local配置项的意思是:是否连接到一个远程的metastore server或者是否作为Hive Client JVN的构成部分重新打开一个新的metastore server。当设置为false时,hive将会通过一个metastore server来进行通信。而本次实验中正是需要hive端(slave节点)开启一个metastore server来进行通信,所以需要设置为false,默认是True
  • hive.metastore.uris配置项的意思是:设置 metastore 服务器URL,如果存在多个 metastore 服务器, 那么可以将多个 URL 之间用逗号分隔

CentOS7-Hive远程搭建_第2张图片

 6. 最后一步,将MySQL数据库的链接jar包复制到hive的lib目录下、将hive的lib目录下的jlinejar包复制到hadoop的share/hadoop/yarn/lib/下

[root@master ~]# cp /usr/local/hive-2.1.1/lib/jline-2.12.jar /usr/local/hadoop-2.7.3/share/hadoop/yarn/lib/

[root@master ~]# cp /usr/local/software/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/local/hive-2.1.1/lib/

 到此Master节点上的操作就完成了。

三、hive端(slave节点)操作:

1. 如果slave节点上有hive的安装包可以类似Master节点的操作步骤1~3,也可以使用scp命令将Master节点的hive复制到slave节点。

2. 配置hive-env.sh

# Set HADOOP_HOME to point to a specific hadoop install directory

HADOOP_HOME=/usr/local/hadoop-2.7.3

# Hive Configuration Directory can be controlled by:

export HIVE_CONF_DIR=/usr/local/hive-2.1.1/conf

# Folder containing extra ibraries required for hive compilation/execution can be controlled by:

#export HIVE_AUX_JARS_PATH=/usr/local/hive-2.1.1/lib

 CentOS7-Hive远程搭建_第3张图片

3. 新建hive-site.xml文件,添加以下内容:




        hive.metastore.warehouse.dir
        /usr/local/hive-2.1.1/warehouse


        javax.jdo.option.ConnectionURL
        jdbc:mysql://MySQL端名称或者IP:3306/数据库名称?createDatabaseIfNotExist=true


        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver


        javax.jdo.option.ConnectionUserName
        有远程登陆权限的用户


        javax.jdo.option.ConnectionPassword
        远程登陆权限用户的密码


        hive.metastore.schema.verification
        false

 CentOS7-Hive远程搭建_第4张图片

 4. 最后一步同Master节点操作的步骤6

四、MySQL端(slave2)节点操作:

1. 下载安装包:wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2. 安装:yum -y install mysql57-community-release-el7-10.noarch.rpm

3. 下载MySQL服务器:yum -y install mysql-community-server

4. 开启MySQL服务并查看状态(可以将MySQL服务添加到开机自启动:systemctl enable mysqld)

CentOS7-Hive远程搭建_第5张图片

5.  查看mysql数据库的临时密码:grep 'password' /var/log/mysqld.log

CentOS7-Hive远程搭建_第6张图片

 6. MySQL数据库里面需要做的几个操作:

        1)设置密码等级为低级;

mysql> set global validate_password_policy=Low(或者是0);

        2)设置密码长度;

mysql> set global validate_password_length=6;

        3)修改本地root用户的密码

mysql> alter user 'root'@'localhost' identified by 'root的密码';

        4)使用root用户登录MySQL后创建一个名为Hadoop的用户

mysql> create user'hadoop'@'%' identified by 'Hadoop用户的密码';

        5)赋予Hadoop用户远程登录的权限

mysql> grant all privileges on *.* to 'hadoop'@'%' with grant option;

        6)刷新权限

mysql> flush privileges;

到此MySQL端配置完成。

五、测试检验:

1. 开启hadoop平台:start-all.sh

2. 在hive端也就是slave节点上初始化hive数据库,并且在成功后开启hive服务

初始化数据库:schematool -dbType mysql -initSchema

开启hive服务:hive --service metastore & (后面的这个&的意思是一直运行,在测试的时候可以不添加)

CentOS7-Hive远程搭建_第7张图片

3. 在master节点上远程登陆hive。

CentOS7-Hive远程搭建_第8张图片

 4. 可以在hive端创建一个数据库或者数据表,然后可以看的更清楚。

CentOS7-Hive远程搭建_第9张图片

六、错误信息:

在小伙伴们配置过程中可能遇到以下两个错误:

1. 出现初始化数据库失败:

CentOS7-Hive远程搭建_第10张图片

原因说明:出现以上错误信息就说明你的初始化数据库没有成功 ,没有连接到MySQL数据库中,需要自己检查hive端(slave节点)中的hive-site.xml文件中的配置是否有误。

2. 客户端远程访问hive数据库出现错误。

CentOS7-Hive远程搭建_第11张图片

原因说明:出现这个错误可能说明你的客户端(Master节点) hive中的hive-site.xml配置文件中的下列配置项hive端名称写错了。

        hive.metastore.uris

        thrift://hive端名称:9083

3. hive服务启动不了,如图:

CentOS7-Hive远程搭建_第12张图片

原因说明: 这是因为启动hive失败了,但是进程已经启动起来,使用jps命令查看,然后使用kill -9 命令杀死进程重启就可以了。

CentOS7-Hive远程搭建_第13张图片

如果觉得作者的这篇文章对你有帮助,可以点点赞关注一下哦~。谢谢你的支持!

你可能感兴趣的:(大数据环境搭建,hive,centos,hadoop)