前提介绍:需要事先安装好hadoop(本文安装的是hadoop-3.2.2版本)
文章主要搭建mysql8.0.26,以及hive-3.1.2
文章主要还是以浏览为主,具体介绍就不过多介绍了。
一.mysql的安装
1.下载mysql所需要的安装包(rpm)
MySQL :: Download MySQL Community Server
MySQL :: Download MySQL Connector/J (Archived Versions) 下载我们所需要的jar安装包 下载最新的即可。
删除系统自带mariadb
一、检查是否自带mariadb数据库
rpm -qa|grep mariadb
如果有,则返回给你一个标志,反之则没有返回。
二、删除mariadb数据库
注意:如果你【rpm -qa|grep mariadb】没有返回值,则不需要执行如下命令。
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
我的mariadb版本为:【5.5.56-2.el7.x86_64】
mariadb版本可能会有差异,请以自己的版本为准,修改如上命令版本关键数。
安装Mysql
rpm -ivh命令安装rpm包 要注意安装顺序(因为彼此之间有依赖关系)
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
rpm -qa | grep mysql
它可以帮你查看当前mysql安装情况
启动Mysql服务
service mysqld start
获取自动生成的临时密码
注意:此命令是rpm方式安装Mysql才有的【mysqld.log】文件。
如果你不是从本篇博客从前到后安装,请谨慎,因为它只对rpm方式安装的mysql有效。
grep 'temporary password' /var/log/mysqld.log
利用临时密码登录到Mysql客户端
sudo mysql -u root -p
设置新的Mysql密码(不再使用临时密码)
alter user 'root'@'localhost' identified by '你的密码';
但是一般会报错,因为不符合相关密码规定
所以我们需要关门密码策略(在mysql执行)
1)修改validate_password_policy参数值为0(1为开启复杂策略)
注意:此参数(policy)必须优先修改,因为policy策略不修改为0会影响下面的length参数。
set global validate_password_policy=0;
2)修改validate_password_length参数值为1
set global validate_password_length=1;
最后执行修改密码测试:
alter user 'root'@'localhost' identified by '你的密码';
这样我们密码就修改成功了。
授权root允许远程访问(可视化软件可以建立链接)(建立远程连接)
授权命令:
grant all privileges on *.* to 'root'@'%' identified by '你的密码';
刷新授权:
flush privileges;
这样我们的mysql就搭建完成了
hive安装
1.我们需要解压相应的hive包
进入相应目录下
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt
之后我们改名字(进入hive目录)
mv apache-hive-3.1.2-bin hive-3.1.2
配置 Hive 组件
vi /etc/profile
export HIVE_HOME=/opt/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
之后source /etc/profile
conf文件夹下没有hive-env.sh,只能通过hive-env.sh.template文件生成并修改
cp hive-env.sh.template hive-env.sh
修改 hive-env.sh
export HADOOP_HOME=/opt/hadoop/hadoop-3.2.2
export HIVE_CONF_DIR=/opt/hive-3.1.2/conf
创建hive-site.xml文件
vi hive-site.xml
<configuration>
<!--刚刚建的文件夹路径-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!--指定Hive元数据存储的MySQL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</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>相应的密码</value>
</property>
</configuration>
按理说应该是成功了,但是我也遇到了许多问题,这里我就直接告诉应该如何去做
第一个问题:问题定位:
考虑到此包是guava组件提供,猜测可能是HIVE和HADOOP内置的jar包版本不一致导致,文件包如下:
hive/lib:guava-19.0.jar
hadoop/lib:guava-27.0-jre.jar,此jar包的位置在share/hadoop/common/lib下面
我们删除掉旧版本的19,将新版本拷贝进去
第二个问题:我们需要将我们的jar包复制到hive-3.1.2的lib目录中。
初始化 hive 元数据
启动 hadooop
初始化数据库命令: schematool -initSchema -dbType mysql
启动 hive命令:hive