1. 程式人生 > >【hadoop】hive 安裝實踐

【hadoop】hive 安裝實踐

1.下載Hive安裝包:

  官網下載:http://hive.apache.org/downloads.html

2.上傳Hive的tar包,並解壓:
建議和hadoop目錄在一級,方便後續使用;

  解壓:tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /home/hadoop/hive

  修改解壓後的檔名稱:mv apache-hive-1.2.1-bin hive-1.2.1

3.安裝MySql:
  MySQL用於儲存Hive的元資料,(安裝教程見之前的文章)

4.修改配置檔案:主要是配置metastore(元資料儲存)儲存方式
  4.1. vi /home/hadoop/hive/hive-1.2.1/conf/hive-site.xml(儲存方式:內嵌Derby方式、本地mysql、遠端mysql)

  4.2 貼上如下內容:

<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包:

  拷貝mysql驅動jar包到Hive的lib目錄下面去,

    下載路徑:https://pan.baidu.com/s/17iHOIjt4XZbRAngGFf_GgA

6.啟動Hive:
 (1)啟動Hive之前需要先把Hadoop叢集啟動起來。

    (2)使用hadoop使用者

  啟動命令:/usr/local/src/hive-1.2.1/bin/hive

  出現如下表示啟動成功:
hive>
  

7、驗證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

8、 建立資料庫, 資料庫的資料檔案被存放在HDFS的/user/hive/warehouse/test_db.db下面

hive> create database test_db;
OK
Time taken: 0.505 seconds

9、在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 '|';

10、上傳資料檔案到hdfs指定目錄,目錄為hive資料庫表文件目錄
  hadoop fs -put hivefile1.txt /user/hive/warehouse/test_db.db/flat1_test

11、使用sql查詢資料
hive> select * from flat1_test;

12、查詢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>