前提条件
安装好Hadoop集群和Spark,安装好数据库mysql或者postgresql。
数据库的安装请参考我写的这篇博客数据库安装
下载安装包
从清华大学镜像网站下载最新的hive安装包 apache-hive-2.3.6-bin.tar.gz
。
下载后解压并建立软连接,修改 /etc/profile
文件。比较简单就不在这里赘述。
export HIVE_HOME=/usr/local/src/hive
修改配置文件
用安装好的mysql作为hivemetastore。假设slave1机器安装了mysql。在我实验的情况下,MariaDB作为hive metastore后执行show tables;
时会报错,mysql和postgresql是正常的。我们采用mysql作为hivemetastore。
修改${HIVE_HOME}/conf/hive-env.sh
文件指定HADOOP_HOME
HADOOP_HOME=/usr/local/src/hadoop
将数据驱动包拷贝到${HIVE_HOME}/lib
目录下
在${HIVE_HOME}/conf
目录下新增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.ConnectionURL</name>
<value>jdbc:mysql://slave1:3306/hive?createDatabaseIfNotExist=true</value>
<description/>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description/>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description/>
</property>
</configuration>
在HDFS集群上初始化HIVE所需的目录
hdfs dfs -mkdir -p /tmp
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /user/hive/warehouse
然后执行命令 schematool -initSchema -dbType mysql --verbose
来初始化元数据。
初始化完成后可看见在mysql的hive数据库里有很多hive的表
验证
执行hive
命令,进去后执行show tables
如果没问题就行。
也可以执行 dfs -ls /tmp
即HDFS的shell命令,如下所示
后面博客再讲述如何用beeline的方式去连接hive。
因为HIVECLI的命令方式已经过时了,更好的方式是启动HiveServer2
服务后用beeline
的方式去连接。