Hive2 安裝配置

1、環境依賴html

Hive必須運行在Hadoop之上,則須要先安裝Hadoop環境java

http://my.oschina.net/u/204498/blog/519789mysql

2、安裝Hivesql

1.下載Hiveshell

http://apache.mirrors.ionfish.org/hive/ 數據庫

我安裝的是apache-hive-1.2.1-bin.tar.gzapache

[hadoop@hftclclw0001 ~]$ pwd
/home/hadoop

[hadoop@hftclclw0001 ~]$ wget http://apache.mirrors.ionfish.org/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz

[hadoop@hftclclw0001 ~]$ ll
total 637256
drwx------ 10 hadoop root      4096 Oct 27 02:22 apache-hive-1.2.1-bin
-rw-------  1 hadoop root  92834839 Jun 26 18:34 apache-hive-1.2.1-bin.tar.gz
drwx------  3 hadoop root      4096 Oct 27 09:05 data
drwx------ 11 hadoop root      4096 Oct 21 03:20 hadoop-2.7.1
-rw-------  1 hadoop root 210606807 Oct 20 09:00 hadoop-2.7.1.tar.gz
drwx------  2 hadoop root      4096 Oct 23 02:08 install-sqoop
drwx------ 13 hadoop root      4096 Oct 20 09:22 spark-1.5.1-bin-hadoop2.6
-rw-------  1 hadoop root 280901736 Oct 20 09:19 spark-1.5.1-bin-hadoop2.6.tgz
drwx------ 22 hadoop root      4096 Oct 23 02:08 sqoop-1.99.6-bin-hadoop200
-rw-------  1 hadoop root  68177818 May  5 22:34 sqoop-1.99.6-bin-hadoop200.tar.gz

[hadoop@hftclclw0001 ~]$ cd apache-hive-1.2.1-bin/conf/

[hadoop@hftclclw0001 conf]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/conf

[hadoop@hftclclw0001 conf]$ vi hive-env.sh
...
...
HADOOP_HOME=/home/hadoop/hadoop-2.7.1                             =>配置Hadoop_Home

export HIVE_CONF_DIR=/home/hadoop/apache-hive-1.2.1-bin/conf      =>配置HIVE_conf_home
export HIVE_AUX_JARS_PATH=/home/hadoop/apache-hive-1.2.1-bin/lib/ 


#我使用了mysql做爲metastore ,則須要在lib目錄下添加mysql的驅動
[hadoop@hftclclw0001 lib]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/lib

[hadoop@hftclclw0001 lib]$ ll | grep mysql
-rw-------  1 hadoop root   848401 Oct 27 01:48 mysql-connector-java-5.1.25-bin.jar


[hadoop@hftclclw0001 conf]$ vi hive-site.xml
[hadoop@hftclclw0001 conf]$ cat hive-site.xml 
<?xml version="1.0"?>
<configuration>
	<property>
    		<name>hive.metastore.local</name>
    		<value>false</value>                                    =>metastore個人mysql不是在該server上
    	</property>
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://{ip:port}/{databases}</value>        => mysql服務的ip和端口號
	</property>
	<property>
		<name>javax.jdo.option.ConnectionDriveName</name>
		<value>com.mysql.jdbc.Driver</value>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>{username}</value>
	</property>
	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>{password}</value>
	</property>
	<property>
		<name>hive.metastore.warehouse.dir</name>
		<value>/hive/warehouse</value>                      =>hive的倉庫目錄,須要在HDFS上建立,並修改權限
	</property>
	
	<property>
	        <name>hive.metastore.uris</name>
                <value>thrift://{ip}:{port}</value>                 =>本機ip和端口號,啓動metastore服務
	</property>
</configuration>


[hadoop@hftclclw0001 conf]$ vi hive-log4j.properties                => Log4j的配置,能夠修改日誌目錄

...

2.啓動metastoreide

[hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin

[hadoop@hftclclw0001 bin]$ ./hive --service metastore &

[hadoop@hftclclw0001 bin]$ ps ax|grep metastore
...
...

3.啓動HiveServer2oop

[hadoop@hftclclw0001 bin]$ pwd
/home/hadoop/apache-hive-1.2.1-bin/bin

[hadoop@hftclclw0001 bin]$ ./hive --service hiveserver2 &

[hadoop@hftclclw0001 bin]$ ps ax|grep HiveServer2
...
...

4.啓動shell 或是 beelineui

[hadoop@hftclclw0001 bin]$ ./hive shell
...
...

3、metastore

http://www.cloudera.com/content/www/en-us/documentation/archive/cdh/4-x/4-2-0/CDH4-Installation-Guide/cdh4ig_topic_18_4.html

1.內置模式:將數據保存在內置的Derby數據庫中,這種方式最簡單,可是Derby每次只能訪問一個數據文件。

Drive ==>  Metastore  ==> Derby

2.本地模式:將元數據保存在本地的獨立數據庫(如mysql)等

Driver ===> Metastore

Driver ===> Metastore       ===> DB

Driver ===> Metastore

每一個server都須要配置metastore,並啓動metastore服務

3.遠程模式:使用thrift訪問metastore

Client1

Client2   ===> Metastore ===> DB

Client3 

4.配置:

如上述配置,咱們已經啓動了metastore服務在上述hftclclw0001機器上,

咱們在另外一臺server上,如hftclcld0001機器上,安裝hive,配置如上述配置一直,僅僅修改hive-site.xml以下:

<?xml version="1.0"?>
<configuration>
    	<property>
	        <name>hive.metastore.uris</name>
                <value>thrift://{ip}:{port}</value>            =>hftclclw0001機器的ip和端口號
	</property>
</configuration>

即咱們經過thrift協議,訪問hftclclw0001上面的metastore,並訪問hive的元數據

[root@hftclcld0001 apache-hive-1.2.1-bin]# pwd
/home/hadoop/apache-hive-1.2.1-bin

[root@hftclcld0001 apache-hive-1.2.1-bin]# ./bin/hive shell
hive> 

hive> show databases;
OK
default
hive                                            =>能訪問到hive的metastore,訪問到元數據(咱們以前建立的)
human_resources
Time taken: 0.388 seconds, Fetched: 3 row(s)
hive>
相關文章
相關標籤/搜索