官网
Apache Hive TMhttps://hive.apache.org/
下载安装包
上传
[ssn@ssn9520 ~]$ cd software/
[ssn@ssn9520 software]$ rz
解压
[ssn@ssn9520 software]$ tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /home/ssn/app/
修改环境变量
[ssn@ssn9520 ~]$ vi .bashrc
追加
export HIVE_HOME=/home/ssn/app/apache-hive-3.1.2-bin
export PATH=$HIVE_HOME/bin:$PATH
[ssn@ssn9520 ~]$ source .bashrc
整合mysql
a.hive-site.xml 需要自己添加
我只配置了访问路径 用户名 密码 和连接数据库驱动
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--连接数据的用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--连接数据的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<!--mysql数据库的访问路径,没有路径则自动创建-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<!--连接数据库的驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--元数据是否校验-->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--是否自动创建核心文件-->
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<!--thrift服务器绑定的主机-->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop104</value>
</property>
<!--默认的存储地址-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://hadoop102:9000/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<!--设置显示表头字段名-->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
</configuration>
[ssn@ssn9520 conf]# pwd
/home/ssn/app/apache-hive-3.1.2-bin/conf
[ssn@ssn9520 conf]# vi hive-site.xml
b.连接mysql数据库的驱动包系统没有内置,需要手动下载,地址如下
[ssn@ssn9520 lib]$ rz
已上传成功
c.在hive-env.sh.template配置hive_home,如何之前按照步骤配置过环境变量,这一步可以跳过
[ssn@ssn9520 conf]$ vi hive-env.sh.template
初始化
[ssn@ssn9520 bin]$schematool -dbtype mysql -initSchema
运行之后报错:
/home/ssn/app/hadoop/share/hadoop/common/lib hadoop中guava包版本如图
/home/ssn/app/apache-hive-3.1.2-bin/lib
hive中 guava版本如图
解决方法:将低版本的删除掉,然后将高版本的拷贝过来
然后登录Mysql
mysql -uroot -p
新建Hive元数据库
mysql> create database metastore;
mysql> quit;
初始化Hive元数据库
schematool -initSchema -dbType mysql -verbose
运行
./hive
[ssn@ssn9520 bin]$ ./beeline
beeline> !connect jdbc:hive2://localhost:10000 scott tiger
解决方案:
原因:hiveserver2增加了权限控制,需要在hadoop的配置文件中配置
解决方法:在hadoop的core-site.xml中添加如下内容,然后重启hadoop,再使用beeline连接即可
参考官网: Apache Hadoop 3.3.1 – Proxy user - Superusers Acting On Behalf Of Other Users
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
补充:修改hive日志存放目录
进入HIVE的conf目录
复制hive-log4j2.properties.template为hive-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
vi hive-log4j2.properties
修改目标文件地址为自己想存放的地址 本人在HIVE的目录下创建了个logs文件夹,存放在此处
故修改目的地址为上图地址
修改成功之后,重启hive
测试:
进入logs文件夹
tail -20f hive.log
已修改成功