Hive是Hadoop一個程序接口,Hive讓數據分析人員快速上手,Hive使用了類SQL的語法,Hive讓JAVA的世界變得簡單而輕巧,Hive讓Hadoop普及到了程序員以外的人。
從Hive開始,讓分析師們也能玩轉大數據。
裝好hadoop的環境後,我們可以把Hive裝在namenode機器上(c1)。
1
、設置HIVE環境變量
2、進入hive_home/conf下拷貝模板文件爲配置文件
~ cp hive-default.xml.template hive-site.xml
~ cp hive-log4j.properties.template hive-log4j.properties
3、修改hive-site.xml配置文件
把Hive的元數據存儲到MySQL中
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://c1:3306/hive_metadata?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</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>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
4、在hdfs上面,創建目錄
$HADOOP_HOME/bin/hadoop fs -mkidr /tmp
$HADOOP_HOME/bin/hadoop fs -mkidr /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
5、在MySQL中創建數據庫
create database hive_metadata;
grant all on hive_metadata.* to hive@'%' identified by 'hive';
grant all on hive_metadata.* to hive@localhost identified by 'hive';
ALTER DATABASE hive_metadata CHARACTER SET latin1;
6、手動上傳mysql的jdbc庫到hive/lib
~ hive_home/lib
mysql-connector-java-5.1.22-bin.jar
7、#啓動metastore服務
~ bin/hive --service metastore &
Starting Hive Metastore Server
#啓動hiveserver服務
~ bin/hive --service hiveserver &
Starting Hive Thrift Server
#啓動hive客戶端
~ bin/hive shell
Logging initialized using configuration in file:/root/hive-0.9.0/conf/hive-log4j.properties
Hive history file=/tmp/root/hive_job_log_root_201211141845_1864939641.txt
hive> show tables
OK
2. Hive的基本使用
新建表創建數據(文本以tab分隔)
~ vi /home/cos/demo/t_hive.txt
16 2 3
61 12 13
41 2 31
17 21 3
71 2 31
1 12 34
11 2 34
#創建新表
hive> CREATE TABLE t_hive (a int, b int, c int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
#導入數據t_hive.txt到t_hive表
hive> LOAD DATA LOCAL INPATH '/home/cos/demo/t_hive.txt' OVERWRITE INTO TABLE t_hive ;
查看錶和數據
#查看錶
hive> show tables;
OK
t_hive
Time taken: 0.099 seconds
#正則匹配表名
hive>show tables '*t*';
OK
t_hive
Time taken: 0.065 seconds
#查看錶數據
hive> select * from t_hive;
刪除表
DROP TABLE t_hadoop;
5. 數據導出
從HDFS複製到HDFS其他位置
hadoop fs -cp /user/hive/warehouse/t_hive /
通過Hive導出到本地文件系統
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/t_hive' SELECT * FROM t_hive;
#查看本地操作系統
hive> ! cat /tmp/t_hive/000000_0;