1.下載Hive安裝包:html
官網下載:http://hive.apache.org/downloads.htmljava
2.上傳Hive的tar包,並解壓:
建議和hadoop目錄在一級,方便後續使用;mysql
解壓:tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /home/hadoop/hivesql
修改解壓後的文件名稱:mv apache-hive-1.2.1-bin hive-1.2.1數據庫
3.安裝MySql:
MySQL用於存儲Hive的元數據,(安裝教程見以前的文章)apache
4.修改配置文件:主要是配置metastore(元數據存儲)存儲方式
4.1. vi /home/hadoop/hive/hive-1.2.1/conf/hive-site.xml(存儲方式:內嵌Derby方式、本地mysql、遠端mysql)ide
4.2 粘貼以下內容:oop
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?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>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> <description>password to use against metastore database</description> </property> </configuration>
5.拷貝jar包:ui
拷貝mysql驅動jar包到Hive的lib目錄下面去,this
下載路徑:https://pan.baidu.com/s/17iHOIjt4XZbRAngGFf_GgA
6.啓動Hive:
(1)啓動Hive以前須要先把Hadoop集羣啓動起來。
(2)使用hadoop用戶
啓動命令:/usr/local/src/hive-1.2.1/bin/hive
出現以下表示啓動成功:
hive>
七、驗證Hive運行正常:啓動Hive之後輸入下面的命令:
hive> show databases;
OK
default
test_db
Time taken: 0.567 seconds, Fetched: 2 row(s)
hive> use default;
OK
Time taken: 0.068 seconds
hive> show tables;
OK
Time taken: 0.086 seconds
八、 建立數據庫, 數據庫的數據文件被存放在HDFS的/user/hive/warehouse/test_db.db下面
hive> create database test_db;
OK
Time taken: 0.505 seconds
九、在test_db裏建立表,表的數據文件被存放在HDFS的/user/hive/warehouse/test_db.db/t_test下面;
而且表的數據文件字段以「|」分割開;
use test_db;
create table flat1_test (mobile string,opr_type string,lastupdatetime string,monthly string,sp_code string,oper_code string,unknown string,subtime string)
row format delimited
fields terminated by '|';
十、上傳數據文件到hdfs指定目錄,目錄爲hive數據庫表文件目錄
hadoop fs -put hivefile1.txt /user/hive/warehouse/test_db.db/flat1_test
十一、使用sql查詢數據
hive> select * from flat1_test;
十二、查詢Hive的元數據,進入mysql中查詢
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | hive | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec) mysql> use hive; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> mysql> show tables; +---------------------------+ | Tables_in_hive | +---------------------------+ | BUCKETING_COLS | | CDS | | COLUMNS_V2 | | DATABASE_PARAMS | | DBS | | FUNCS | | FUNC_RU | | GLOBAL_PRIVS | | IDXS | | INDEX_PARAMS | | PARTITIONS | | PARTITION_KEYS | | PARTITION_KEY_VALS | | PARTITION_PARAMS | | PART_COL_PRIVS | | PART_COL_STATS | | PART_PRIVS | | ROLES | | SDS | | SD_PARAMS | | SEQUENCE_TABLE | | SERDES | | SERDE_PARAMS | | SKEWED_COL_NAMES | | SKEWED_COL_VALUE_LOC_MAP | | SKEWED_STRING_LIST | | SKEWED_STRING_LIST_VALUES | | SKEWED_VALUES | | SORT_COLS | | TABLE_PARAMS | | TAB_COL_STATS | | TBLS | | TBL_COL_PRIVS | | TBL_PRIVS | | VERSION | +---------------------------+ 35 rows in set (0.01 sec) mysql> select * from DBS; +-------+-----------------------+-----------------------------------------------------------+---------+------------+------------+ | DB_ID | DESC | DB_LOCATION_URI | NAME | OWNER_NAME | OWNER_TYPE | +-------+-----------------------+-----------------------------------------------------------+---------+------------+------------+ | 1 | Default Hive database | hdfs://XXXXXXXXXX:9000/user/hive/warehouse | default | public | ROLE | | 6 | NULL | hdfs://XXXXXXXXXX:9000/user/hive/warehouse/test_db.db | test_db | hadoop | USER | +-------+-----------------------+-----------------------------------------------------------+---------+------------+------------+ 2 rows in set (0.00 sec) mysql>