任务概述: 将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&useSSL=false</value>
<!-- mysql 8.0
<value>jdbc:mysql://linux101:3306/hive?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC</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
解决:
- 先查看是否有连接数据库的权限,没有的话给权限
- 查看是否已经有该数据库,有的话删除
- 将hive目录下的 metastore_db删除
- 重新初始化(hive服务器)
bin/schematool -dbType mysql -initScheam
- 开启slave1 的metastore: bin/hive --service metastore
- hive客户端是不需要初始化的,可以直接启动客户端 bin/hive