部署hive数据库
环境准备
需要安装部署完成的Hadoop的环境如果不会搭建的可以参考:hadoop 的搭建(超级详细版本)
卸载系统中自带的数据库
- 卸载Centos7自带的mariadb
rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
rpm -qa|grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64是使用
rpm -qa|grep mariadb
查询出来的名称
安装mysql
- 创建文件夹,为数据库安装创建目录
mkdir /opt/module/mysql
- 上传数据库压缩文件并且解压到上述文件夹下
tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar -C /opt/module/mysql
- 下载安装需要的依赖包
yum -y install libaio
yum install net-tools
- 进行安装
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm
- 初始化
mysqld --initialize
- 更改所属组
chown mysql:mysql /var/lib/mysql -R
- 启动MySQL服务
systemctl start mysqld.service
- 查看生成的临时密码
cat /var/log/mysqld.log
如果认为这么找太浪费眼睛和精力了可以是同
grep 'password' /var/log/mysqld.log
命令直接查看临时密码
- 进入MySQL
mysql -u root -p
输入刚才的临时密码(密码不可见)
- 更新root密码 设置为123456
alter user user() identified by "123456";
- 授权
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
或者
update user set host = '%' where user = 'root';
- 建议设置为开机自启动服务
systemctl enable mysqld
- 查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld
安装mysql时可能会出现的问题
1、依赖检测失败
问题很明显了就是依赖的问题,下载他说的依赖就好了
yum install perl
- 密码不满足当前策略要求
错误提示如下:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1.进入mysql
输入命令:
mysql -uroot -p
2、查看 mysql 初始的密码策略,
SHOW VARIABLES LIKE "validate_password%";
输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’; ” 进行查看
3、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可
set global validate_password_policy=LOW;
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值
4、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
set global validate_password_length=6
输入设值语句 “ set global validate_password_length=6; ” 进行设值,
5、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,
ALTER USER "root"@"localhost"IDENTIFIED BY "123456"'
输入修改语句 “ ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’; ” 可以看到修改成功,表示密码策略修改成功了!!!
安装hive
上传并且解压
tar zxvf apache-hive-3.1.2-bin.tar.gz
解决Hive与Hadoop之间guava版本差异
cd /export/server/apache-hive-3.1.2-bin/
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
修改配置文件
hive-env.sh
cd /export/server/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
# 在配置文件的最后
export HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib
hive-site.xml
<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>20020115</value>
</property>
<!-- H2S运行绑定host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<!-- 远程模式部署metastore metastore地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1:9083</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
没有这个文件的时候可以进行创建,本人就是没有这个文件
将mysql的jdbc的驱动包上传到hive安装路径lib下(驱动名称)
mysql-connector-java-5.1.32.jar
数据库初始化
cd /export/server/apache-hive-3.1.2-bin/
bin/schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表
在hdfs创建hive存储目录(如存在则不用操作)
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
启动数据库
#前台启动 关闭ctrl+c
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore
#前台启动开启debug日志
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console
#后台启动 进程挂起 关闭使用jps+ kill -9
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
# 启动hiveserver2服务
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &
#注意 启动hiveserver2需要一定的时间 不要启动之后立即beeline连接 可能连接不上
检查hiveserver2服务是否启动成功
拷贝node1安装包到beeline客户端机器上(node3)
scp -r /export/server/apache-hive-3.1.2-bin/ node3:/export/server/
在node3上进行连接访问
/export/server/apache-hive-3.1.2-bin/bin/beeline
beeline> ! connect jdbc:hive2://node1:10000
beeline> root
beeline> 直接回车
连接成功!!!
使用datagrip连接hive数据库
创建数据源
然后点击应用和确定就可以连接数据库了
!!!特别注意:上面文档的
/export/server
这个路径要根据自己的情况而定注意辨别否则可能会出现错误