hive配置
前置条件
- hadoop-3.3.6 => 关于hadoop 的安装可查看主页文章
- mysql-8.37 => 关于 mysql 的安装可查看主页文章
- hive-4.0.0
开始安装hive
1、 设置系统环境变量
vim /etc/profile.d/bigdata_env.sh
bigdata_env.sh => 为新建的存放个人设置的环境变量的文件
exportHIVE_HOME=/opt/module/hive
exportPATH=$HIVE_HOME/bin:$PATH
2、需要在mysql中创建metastore数据库作为hive的元数据库
# 创建hive需要的元数据库createdatabase metastore;# 创建一个mysql数据库用户hive,设置密码为123456createuser'hive'@'%' identified by'123456';# 授予metastore数据库的所有权限给hive用户grantallprivilegeson metastore.*to'hive'@'%';
3. 上传jdbc驱动jar包 到 hive的lib目录下 => 查看hive/lib目录底下有无mysql的jdbc的jar包
mv mysql-connect-j-8.3.0.jar /opt/module/hive/lib
4. 需要在hive的conf目录底下修改 hive-site.xml (没有此文件,则新建一个)
<configuration><!--指定hive在hdfs中存放数据的路径--><property><name>hive.metastore.warehouse.dir</name><value>/hive</value></property><!--指定jdbc要连接的数据库的url地址--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/metastore</value></property><!--指定jdbc驱动的Driver类名--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><!--指定要连接的元数据库的用户名--><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value></property><!--指定要连接的元数据库的用户名的密码--><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- 指定存储元数据要连接的地址 --><property><name>hive.metastore.uris</name><value>thrift://master:9083</value></property><!-- 指定hiveserver2连接的host --><property><name>hive.server2.thrift.bind.host</name><value>master</value></property><!-- 指定hiveserver2连接的端口号 --><property><name>hive.server2.thrift.port</name><value>10000</value></property><!-- hiveserver2的高可用参数,如果不开会导致了开启tez session导致hiveserver2无法启动 --><property><name>hive.server2.active.passive.ha.enable</name><value>true</value></property><!--解决Error initializing notification event poll问题--><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property></configuration>
附:初始化元数据库前,要替换hive的lib目录底下的guava这个jar包,将hadoop这个目录share/hadoop/common/lib底下的guava包复制一个到hive的lib底下,不然会报这个没有相关方法的错误,原因是因为hive自带的guava包版本太低了,没有相关的方法
5. 初始化元数据库
schematool -initSchema -dbType mysql -verbose
出现这个既初始化成功
6. 启动hive => 启动 hive 前需要先启动 hadoop 服务,hive 依靠 hadoop 服务
- 启动hadoop start-all.sh
- hive --service metastore&
- hive --service hiveserver2&
7. 测试beeline启动成功
- 命令行输入 hive
- 进入Beeline 后输入
# hive2是hiveserver2 # master:10000 是hive-site.xml文件中指定的server2要连接的主机和端口号# hive是要进入数据库的用户名# 123456是该用户名对应的密码!connect jdbc:hive2://master:10000 hive 123456
- 或者直接在master节点输入以下命令
beeline -u jdbc:hive2://master:10000 --verbose=true
附:
此hive是基于mysql安装的,是以mysql作为元数据库
如果在安装hive的过程中出现类似找不到hive-schema-4.0.0.mysql.sql的错误,
在你安装的hive根目录底下的这个路径里面/scripts/metastore/upgrade
找一下有没有mysql的目录,
如果没有自己创建一个,再把hive-schema-4.0.0.mysql.sql这个jar包上传到mysql目录里面去
有的话,就找一下有没有hive-schema-4.0.0.mysql.sql这个jar包,没有的话就上传上去。
或者里面有其他版本的这个jar包,也可以指定一下版本......
hive-schema-4.0.0.mysql.sql此jar包可以去github里面下载,
在github的hive里面的standalone-metastore/metastore-server/src/main/sql/mysql里面可以找到上面那个jar包
版权归原作者 操练小白 所有, 如有侵权,请联系我们删除。