hive 数据库迁移记录

服务器更换,需要把hive使用的mysql库迁移到其他服务器上.

整个过程很简单,就是数据库导出导入

1.在原服务器将数据库导出

$ mysqldump -h ip -u username -p metadata4ad > metadata4ad.sql
Enter password: 
tty:[4] jobs:[0] cwd:[/home/ad]
$ ll metadata4ad.sql 
-rw-rw-r-- 1 ad ad 62317790 10-27 10:10 metadata4ad.sql

2.在目标服务器上新建数据库,用户,权限设置

mysql> create database metadata4ad;
Query OK, 1 row affected (0.01 sec)

mysql> create user 'user'@'%' identified by 'password';
Query OK, 0 rows affected (0.02 sec)

mysql> grant ALL privileges on metadata4ad.* to 'user'@'%' with grant option;
Query OK, 0 rows affected (0.02 sec)
mysql>  FLUSH privileges;

3.复制数据库文件到目标服务器

$scp metadata4ad.sql  dst_ip:~/

4.目标服务器上,把数据库文件导入数据库

到sql存放目录,进入数据库

$mysql -uad -p
mysql>use metadata4ad
mysql> source metadata4ad.sql
mysql> show tables;
+---------------------------+
| Tables_in_metadata4ad     |
+---------------------------+
| BUCKETING_COLS            |
| CDS                       |
| COLUMNS_V2                |
| DATABASE_PARAMS           |
| DBS                       |
| DELEGATION_TOKENS         |
| IDXS                      |
| INDEX_PARAMS              |
| MASTER_KEYS               |
| PARTITIONS                |
| PARTITION_KEYS            |
| PARTITION_KEY_VALS        |
| PARTITION_PARAMS          |
| PART_COL_PRIVS            |
| PART_COL_STATS            |
| PART_PRIVS                |
| 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                   |
+---------------------------+

5.如果hive中配置了权限验证,还需要在hive中给用户配置权限

 比如给 hadoop 用户配置所有权限

hive> grant all to user hadoop;
OK
Time taken: 0.389 seconds

   只配置操作某个数据的权限

hive> grant create on database dbname to user hadoop;  //只给了在数据库dbname中创建表的权限

hive> grant all on database dbname to user hadoop;  //在数据库dbname中有所有权限

权限:

       HIVE支持以下权限:

权限名称 含义
ALL 所有权限
ALTER 允许修改元数据(modify metadata data of object)---表信息数据
UPDATE 允许修改物理数据(modify physical data of object)---实际数据
CREATE 允许进行Create操作
DROP 允许进行DROP操作
INDEX 允许建索引(目前还没有实现)
LOCK 当出现并发的使用允许用户进行LOCK和UNLOCK操作
SELECT 允许用户进行SELECT操作
SHOW_DATABASE 允许用户查看可用的数据库

 

迁移完成.

 

posted @ 2016-06-24 15:30  骑小象去远方  阅读(1398)  评论(0编辑  收藏  举报