00 前期准备
1、已部署好hadoop集群
2、已部署java环境
3、已经安装好mysql
01 下载hive安装文件
https://hive.apache.org/downloads.html
02 修改配置文件
hive-env.sh.template名称为hive-env.sh,一些hive的环境变量内容可以在里面设置。
系统用户环境变量中增加:
export HADOOP_HOME=<hadoop-install-dir>
export HIVE_HOME=<hive-install-dir>
export PATH=$HIVE_HOME/bin:$PATH
环境变量中增加配置HIVE_CONF_DIR路径 可以放在hive-env.sh
export HIVE_CONF_DIR=/opt/module/hive/conf
03 HDFS中创建HIVE目录
$HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/用户名/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/用户名/warehouse
04 HiveServer2设置
1 使用mysql管理HiveServer2 的metadata
更多HiveServer2设置请参考https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2
2 hive-site.xml的调整
hive-site.xml 直接创建在conf 文件夹中新建,可以根据hive-default.xml.template 文件进行调整。
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive_schema?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>mysql用户名</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql密码</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
<description></description>
</property>
</configuration>
默认设置
hive.server2.thrift.min.worker.threads – Minimum number of worker threads, default 5.
hive.server2.thrift.max.worker.threads – Maximum number of worker threads, default 500.
hive.server2.thrift.port – TCP port number to listen on, default 10000.
hive.server2.thrift.bind.host – TCP interface to bind to.
3 HiveServer2 密码访问设置
core-site.xml
hadoop的配置文件core-site.xml增加如下配置xxx调整为系统用户名,根据登录用户调整
<property>
<name>hadoop.proxyuser.xxx.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.xxx.groups</name>
<value>*</value>
</property>
hive-site.xml
不设置访问密码
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
<description></description>
</property>
05 运行
1 启动hadoop
# 启动dfs
/opsdata/envs/hadoop-3.2.1/sbin/start-dfs.sh
# 启动yarn
/opsdata/envs/hadoop-3.2.1/sbin/start-yarn.sh
2 Running Hive CLI
$ $HIVE_HOME/bin/hive
3 Running HiveServer2 and Beeline
初始化metadata
# $ $HIVE_HOME/bin/schematool -dbType <db type> -initSchema
$ $HIVE_HOME/bin/schematool -dbType mysql -initSchema
启动HiveServer2
$ $HIVE_HOME/bin/hiveserver2
or
$ $HIVE_HOME/bin/hive --service hiveserver2
使用beeline链接HiverServer2
# $HIVE_HOME/bin/beeline -u jdbc:hive2://$HS2_HOST:$HS2_PORT
$ beeline -u jdbc:hive2://192.168.1.70:10000
4 使用DATAGRIG链接
06 我遇到的问题处理
hive内依赖的guava.jar和hadoop内的版本不一致
检验方法并解决:
1. 查看hadoop安装目录下share/hadoop/common/lib内guava.jar版本
2. 查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的。
07 扩展阅读与参考资料
hive基本结构与原理:https://support.huaweicloud.com/productdesc-mrs/mrs_08_001101.html
设置HiveServer2 : https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2
官方文档:https://cwiki.apache.org/confluence/display/Hive/GettingStarted
B站小视频:https://www.bilibili.com/video/BV1EZ4y1G7iL
08 后续
1、访问的权限控制,如何设置通过密码访问