下载hive
官网下载地址:http://www-us.apache.org/dist/hive/
cdh下载地址:http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.9.3.tar.gz
解压
[root@localhost app]# tar -zxvf hive-1.1.0-cdh5.9.3.tar.gz -C /opt/
内嵌模式安装
这种安装模式的元数据是内嵌在Derby数据库中的,只能允许一个会话连接,数据会存放到HDFS上。这种模式安装不需要配置,需要hadoop已经启动。进入安装目录的bin目录下执行以下命令即可启动
[root@localhost bin]# ./hive
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_181/bin:/opt/erlang/bin:/root/bin:/opt/jdk1.8.0_181/bin:/opt/erlang/bin:/opt/hadoop-2.6.0-cdh5.9.3/bin)
18/09/16 09:34:45 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Logging initialized using configuration in jar:file:/opt/hive-1.1.0-cdh5.9.3/lib/hive-common-1.1.0-cdh5.9.3.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive>
本地模式安装
这种安装方式和嵌入式的区别在于,不再使用内嵌的Derby作为元数据的存储介质,而是使用其他数据库比如MySQL来存储元数据。
这种方式是一个多用户的模式,运行多个用户client连接到一个数据库中。这种方式一般作为公司内部同时使用Hive。
这里有一个前提,每一个用户必须要有对MySQL的访问权利,即每一个客户端使用者需要知道MySQL的用户名和密码才行。
下面开始正式搭建,这里要求hadoop系统已经正常启动,且MySQL数据库已经正确安装。
使用mysql作为元数据,所以下载mysql驱动包到lib目录下
[root@localhost lib]# wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.40/mysql-connector-java-5.1.40.jar
进入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://localhost:3306/hive?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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>LZC@lzc1996</value>
</property>
</configuration>
进入bin目录
[root@localhost bin]# ./schematool -dbType mysql -initSchema
[root@localhost bin]# ./hive #执行该语句前一定要先设置$HADOOP_HOME
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_181/bin:/opt/erlang/bin:/root/bin:/opt/jdk1.8.0_181/bin:/opt/erlang/bin:/opt/hadoop-2.6.0-cdh5.9.3/bin)
18/09/16 09:49:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Logging initialized using configuration in jar:file:/opt/hive-1.1.0-cdh5.9.3/lib/hive-common-1.1.0-cdh5.9.3.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive>
本地模式安装完成后,进入mysql可以看到多了一个hive数据库,里面会有很多表。
创建表,列与列之间以'/t'分隔
create table test(uid string,name string)row format delimited fields terminated by '/t';