摘要:hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。 虽然是分布式软件,但我们只需要在一台机器上部署即可
环境准备
健康完善的hadoop集群环境、MySql
安装
Hive下载链接,下载bin包 hive下载
配置修改
版本统一
确保hadoop_home/share/hadoop/common/lib目录下的的guava包版本与hive_home/lib目录下的guava包版本一致。 因为hadoop在多台机器上部署,而hive在一台机器上部署,所以推荐用hadoop的guava覆盖hive
hive.sh
路径:hive_home/conf/hive.sh
export HADOOP_HOME=$HADOOP_HOME
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib
hive-site.xml
路径:hive_home/conf/hive-site.xml
没有就新建一个
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- H2S运行绑定host -->
<property>
<name>hive.serve2.thrift.bind.host</name>
<value>nn</value>
</property>
<!-- 远程部署matestore 地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://nn:9083</value>
</property>
<!-- 关闭元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- mysql配置(不要换行) -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://nots.fun:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<!--mysql驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<!-- 账号 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- 密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
jdbc驱动
在官网进行下载,放入hive下的lib包 jdbc驱动下载
hive环境变量
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
hive启动
初始化
schematool -initSchema -dbType mysql -verbos 完成后会在数据库创建74张表
在hdfs创建hive存储文件(选做,后面会自动创建)
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
linux使用screen启动m服务
metastore
screen -S metastore --创建screen
hive --service metastore --启动服务
ctrl+a+d 退出screen
hiveserver2
screen -S hiveserver2 --创建screen
hive --service hiveserver2 --启动服务
ctrl+a+d 退出screen
启动连接
连接地址为:jdbc:hive2://主机地址:10000 用户密码为启动hive的主机用户密码
问题
如果出现未经授权的超级用户报错,尝试在hive-site.xml添加
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
hive.server2.enable.doAs设置成false,则yarn作业获取到的hiveserver2用户都为hive用户。 设置成true则为实际的用户名