下载地址
https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
共需要以下三个包:
apache-hive-3.1.2-bin.tar.gz
mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar
mysql-connector-java-5.1.38.jar (用于hive连接mysql)
解压到安装目录
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/
重命名
mv apache-hive-3.1.2-bin hive
配置环境变量
vim /etc/profile.d/my_env.sh
加入如下代码,再保存退出
#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME
重新生效
source /etc/profile.d/my_env.sh
解决日志包冲突
mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
初始化元数据库
bin/schematool -dbType derby -initSchema
报错请查看 https://blog.csdn.net/weixin_44371237/article/details/126228225
启动hadoop集群
/home/hadoop.sh start
hadoop集群配置 https://blog.csdn.net/weixin_44371237/article/details/125907747
hadoop集群启停脚本 https://blog.csdn.net/weixin_44371237/article/details/126040977
登录hive
bin/hive
查看数据库
show databases;
查看表
show tables;
创建表
create table test(id string);
插入数据
insert into test values(‘1001’);
获取数据
select * from test;
复制mysql驱动
mv /software/mysql-connector-java-5.1.38.jar $HIVE_HOME/lib/
新建如下hive-site.xml,上传到/opt/module/hive/conf
javax.jdo.option.ConnectionURL
jdbc:mysql://hadoop100:3306/metastore?useSSL=false
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
root123456
hive.metastore.schema.verification
false
hive.metastore.event.db.notification.api.auth
false
hive.metastore.warehouse.dir
/user/hive/warehouse
解压
tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar
检查是否安装过
rpm -qa | grep mysql
rpm -qa | grep mariadb
如果存在,卸载
rpm -e --nodeps mariadb-libs
rpm -e --nodeps mysql-xxxx
安装5.7.35版本,需要如下安装包,按顺序安装,不然会提示报错
rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm
报错请查看 https://blog.csdn.net/weixin_44371237/article/details/126242806
启动服务
systemctl start mysqld
使用临时密码登录
mysql -uroot -p’im/)1!je=Sod’
进入mysql后,设置新密码
set password for root@localhost = password(‘root123456’);
错误请查看 https://blog.csdn.net/weixin_44371237/article/details/119966466
修改 mysql 库下的 user 表中的 root 用户允许任意 ip 连接
update mysql.user set host=‘%’ where user=‘root’;
flush privileges;
hive-site.xml新增如下
hive.metastore.uris
thrift://hadoop100:9083
配置上面后,必须先启动metastore,否则提示失败
bin/hive --service metastore
注意: 启动后窗口不能再操作,需打开一个新的 shell 窗口做别的操作

窗口被占用,再重新开一个窗口
bin/hive
hive-site.xml新增如下
hive.server2.thrift.bind.host
hadoop100
hive.server2.thrift.port
10000
先启动元服务,JDBC依赖元服务
bin/hive --service metastore
再重新开一个窗口,启动 hiveserver2
bin/hive --service hiveserver2
再重新开一个窗口,启动 beeline 客户端
bin/beeline -u jdbc:hive2://hadoop100:10000 -n root
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop100:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate root (state=08S01,code=0)
如上错误,修改 Hadoop配置文件/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
hadoop.proxyuser.root.hosts
*
hadoop.proxyuser.root.groups
*
报错原因
hadoop.proxyuser.$superuser.hosts 配置该superUser允许通过代理访问的主机节点
hadoop.proxyuser.$superuser.groups 配置该superUser允许代理的用户所属组
hadoop.proxyuser.$superuser.users 配置该superUser允许代理的用户
nohup: 放在命令开头,表示不挂起,也就是关闭终端进程也继续保持运行状态
/dev/null:是 Linux 文件系统中的一个文件,被称为黑洞,所有写入改文件的内容都会被自动丢弃
2>&1 : 表示将错误重定向到标准输出上
&: 放在命令结尾,表示后台运行
一般会组合使用: nohup [xxx 命令操作]> file 2>&1 &,表示将 xxx 命令运行的结果输出到 file 中,并保持命令启动的进程在后台运行。
[root@hadoop100 hive] nohup hive --service metastore 2>&1 &
[root@hadoop100 hive] nohup hive --service hiveserver2 2>&1 &