1. 程式人生 > >Hive-安裝

Hive-安裝

下載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

解壓

[[email protected] app]# tar -zxvf hive-1.1.0-cdh5.9.3.tar.gz -C /opt/

內嵌模式安裝

這種安裝模式的元資料是內嵌在Derby資料庫中的,只能允許一個會話連線,資料會存放到HDFS上。這種模式安裝不需要配置,需要hadoop已經啟動。進入安裝目錄的bin目錄下執行以下命令即可啟動

[[email protected] 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目錄下

[[email protected]
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>[email protected]</value>
	</property>
</configuration>

進入bin目錄

[[email protected] bin]# ./schematool -dbType mysql -initSchema

[[email protected] 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';