一、mysql相关部署
在线安装Mysql、传入mysql,jar包,
更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装mysql
yum install http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
yum 安装mysql
yum -y install mysql-community-server
开机启动mysql
systemctl start mysqld
systemctl enable mysqld
检查mysql状态
systemctl status mysqld
第一次启动查看密码
grep 'temporary password' /var/log/mysqld.log
设置简单密码前提
set global validate_password_policy=LOW;
set global validate_password_length=4;
设置密码
alter user 'root'@'localhost' identified by 'root';
grant all privileges on *.* to root@"%" identified by '123456' with grant option;
flush privileges
二、进入MySQL内部进行操作
创建数据库hive;
create database hive charset utf8;
传文件apache-hive-3.1.3-bin这个文件到自己需要解压的路径,根据之前我们搭建的hadoop我们放在/kkx/server这个文件目录里面
然后进行软链接
ln -s /kkx/server/apache-hive-3.1.3-bin/ hive(进入文件放置的路径操作)
配置环境变量
在hive的conf目录内,新建hive-env.sh文件
把hive-env.sh.template模板改成hive-env.sh就行
export HADOOP_HOME=/kkx/server/Hadoop(自己hadoop放置的路径)
export HIVE_CONF_DIR=/kkx/server/hive/conf(自己的路径)
export HIVE_AUX_JARS_PATH=/kkx/server/hive/lib(自己的路径)
在conf里面新建hive-site.xml填写以下内容
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive?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>123456</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node1</value>
</property>
<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>
三、进入hive/bin初始化
./schematool -initSchema -dbType mysql -verbos
可能遇到报错,应该是
1、com.google.common.base.Preconditions.checkArgument这个类所在的jar包为:guava.jar
2、hadoop-3.2.1(路径:hadoop\share\hadoop\common\lib)中该jar包为 guava-27.0-jre.jar;而hive-3.1.2(路径:hive/lib)中该jar包为guava-19.0.1.jar
3、将jar包变成一致的版本:删除hive中低版本jar包,将hadoop中高版本的复制到hive的lib中。
4、解决方法:进入hadoop\share\hadoop\common\lib路径执行命令
scp -r guava.jar /export/server/hive/lib
回到hive/live路径执行
rm -rf guava-19.0.1
就欧克了
启动元数据库
5、nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
6、再启动hive,进入hive路径执行:bin/hive
7、bin/hive --service hiveserver2
解释:hiveserver2是Hive启动了一个server,客户端可以使用JDBC协议,通过IP+ Port的方式对其进行访问,达到并发访问的目的、远程操作hive\hdfs
一个是开启源数据库的指令,一个是利用datagrip等客户端远程操作hdfs以及hive的指令
nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
nohup bin/hive --service hiveserver2>> logs/hiveserver2.log 2>&1 &