5.Hive环境搭建

任务概述: 将mysql数据库安装到slave1上,以slave1为hive服务器, 以master为hive的客户端进行连接服务器

1. 安装数据库

1.1 安装数据库

yum install mysql-community-server

1.1开启服务

systemctl start mysqld
systemctl status mysql # 查看状态

1.3 查看密码: vim /var/log/mysqld.log

1.4 登陆后修改密码:

set global validate_password_policy=0;
set global validate_password_length=4;
flush privileges;
alter user root@localhost identified by “新密码:123456”
或者 set password =password(“新密码”)

2.slave1和master安装hive

下面的操作都是在master和slave1两个节点都要进行的操作

2.1 解压安装hive
2.2 配置HIVE_HOME环境变量
2.3 配置HIVE运行环境
hive-env.sh : 注hadoop路径和hive路径是区别的,细心点别写错

#配置Hadoop安装路径
export HADOOP_HOME=????
#配置Hive配置文件存放路径为conf
export HIVE_CONF_DIR=????
#配置Hive运行资源库路径为lib
export HIVE_AUX_JARS_PATH=????

2.4 解决hadoop和hive 的 jline jar包冲突问题,将hive/lib下的高版本移动到hadoop/share/yarn/lib/
具体操作(3台节点):

cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

3.配置slave1 HIVE服务器

作为hive服务器肯定是要与mysql进行通信的

3.1 拷贝mysql 驱动包到 hive/lib下
3.2 修改数据存放目录
hive-site.xml

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>

3.3 配置mysql 连接驱动
hive-site.xml

<!-- jdbc 连接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>

<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>

<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>

4. 配置master上的hive客户端

<configuration>

<!-- 1. Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!--- 2. 使用本地服务连接Hive,默认为true-->
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!-- 3. 连接hive的服务器指定端口为9083-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>

</configuration>

5. 初始化HIVE

解决:

  1. 先查看是否有连接数据库的权限,没有的话给权限
  2. 查看是否已经有该数据库,有的话删除
  3. 将hive目录下的 metastore_db删除
  4. 重新初始化(hive服务器) bin/schematool -dbType mysql -initScheam
  5. 开启slave1 的metastore: bin/hive --service metastore
  6. hive客户端是不需要初始化的,可以直接启动客户端 bin/hive

猜你喜欢

转载自blog.csdn.net/First_____/article/details/119856262