默认情况下,hive的元数据信息存储在内置的Derby数据中。Facebook将hive元数据存储在关系数据库
1、安装好mysql ,sudo apt-get install mysql-server
2、创建mysql用户hadoop
$ mysql -u root -p 进入root用户
mysql> CREATE USER 'hadoop'@'localhost' IDENTIFIED BY 'hadoop';
3、授权:mysql> GRANT ALL PRIVILEGES ON *.* TO'hadoop'@'localhost' WITH GRANT OPTION;
4、登录到hadoop 用户 $ mysql -u hadoop -p
5、创建数据库hive
mysql>create database hive;
6、修改hive中hive-site.xml
7、将mysql jdbc driver拷贝到hive的lib下
8、测试:
hive> create table tmp(info int);
OK
Time taken: 0.66 seconds
hive> show tables;
OK
tmp
Time taken: 0.138 seconds
hive> exit;
hadoop@hadoop-VirtualBox:~/hive-0.10.0$ mysql -u hadoop -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 50
Server version: 5.5.37-0ubuntu0.12.10.1 (Ubuntu)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
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> show tables;
---------------------------
| Tables_in_hive |
---------------------------
| BUCKETING_COLS |
| CDS |
| COLUMNS_V2 |
| DATABASE_PARAMS |
| DBS |
| PARTITION_KEYS |
| 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 |
| TBLS |
---------------------------
19 rows in set (0.01 sec)
mysql> select * from COLUMNS_V2;
------- --------- ------------- ----------- -- -----------
| CD_ID |评论 | COLUMN_NAME |类型_名称 | INTEGER_IDX |
------- --------- ------------- ----------- ----- --------
| 1 |空|信息 |整数 | 0 |
------- --------- ------------- ----------- ----- --------
集合中的 1 行(0.01 秒)
mysql> select * from tbls;
错误 1146 (42S02): 表 'hive.tbls' 不存在
mysql>; select * from TBLS;
-------- ------------- -------- -------------- ---- -------- ----------- ------- ---------- ---------- ----- -------------------------------- --------------------
| TBL_ID |创建时间 |数据库ID |最后访问时间 |业主|保留| SD_ID | TBL_NAME | TBL_类型| VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
-------- ------------- ------- ----------------- - -------- ----------- ------- ---------- ------------- -- -------------------------------- --------------------
| 1 | 1399452288 | 1 | 0 | Hadoop | 0 | 1 | tmp |管理表 |空| NULL |
-------- ------------- ------- ----- - -------- ----------- ------- ---------- ------------- -- -------------------------------- --------------------
集合中的 1 行 ( 0.02 秒)
mysql>退出;