Hive是数据仓库绕不开的一个组件,这里记录下自己部署到linux所需要的命令和需要注意的问题。当然因为这是很久之前的笔记了,很多细节的操作可能没记录下。仅供参考。
1.下载安装包
官网下载地址:hive.apache.org/downloads.h...
要注意hive需要对应的版本的hadoop支持。
2.解压、重命名
需要将我们的安装包解压,当然重命名这步可选
csharp
[root@dave software]# tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C ./hive
[root@dave hive]# mv apache-hive-3.1.2-bin/ hive-3.1.2
3.配置环境变量
我因为是自己用,直接在/etc/profile
设置的系统变量。
bash
#HIVE_HOME
export HIVE_HOME=/root/software/hive-3.1.2
export PATH=${HIVE_HOME}/bin:$PATH
最后一定不要忘了,让你的变量生效。
csharp
[root@dave hive]# source /etc/profile
4.查看hive运行的日志:
ini
property.hive.log.level = INFO
property.hive.root.logger = DRFA
property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
property.hive.log.file = hive.log
property.hive.perflogger.log.level = INFO
从以上代码可以看到,日志位置在:/tmp/root
5.hive启动:
csharp
[root@dave bin]# hive
这里我出现了启动报错:
css
Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
这里就是因为我们没有元数据库metadata
。
6.hive初始化元数据库(metastore):
这里一般有两个可以选择,一个是derby
这个有bug,一般用于测试,因为他只有一个线程可以连接,不可能正常使用。
schematool -dbType derby -initSchema
第二个就是最常用的mysql
了。下面就是初始化步骤:
1.创建 hive-site.xml,填入
xml
<?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://dave/myhive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
</configuration>
上面的
jdbc:mysql://dave/myhive?createDatabaseIfNotExist=true
搞成你自己的mysql和对应的为hive创建的表。root
和123456
也记得换成你的mysql的用户名和密码
2.关联mysql driver jar:上传mysql-connector-java-5.1.27-bin.jar
我这里提供一个吧。找到mysql的文件夹,找那个jar包 链接:pan.baidu.com/s/1Rh00kYKM... 提取码:1024
bash
[root@dave lib]# pwd
/root/software/hive/hive-3.1.2/lib
[root@dave lib]# rz
在这个位置,上传这个jar包就行
3.初始化mysql:
schematool -dbType mysql -initSchema
这时候在mysql
其实就可以看见myhive
了:
sql
[root@dave conf]# mysql -uroot -p123456
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myhive |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
然后我们再启动hive
,也不再报错了: