[root@bd-130 ~]# beeline -u 'jdbc:hive2://192.X.X.X:10000/default' -n hive -p hive
首先,我们在hive命令行执行show databases;可以看到有以下几个数据库:
然后,我们在impala同样执行show databases;可以看到:
目前的数据库都是一样的(除系统外)。
下面,我们在hive里面执行create database qyk_test;创建一个数据库,如下:
然后,我们使用qyk_test这个数据库创建一张表,执行
create table user_info(id bigint, account string, name string, age int)
row format delimited fields terminated by '\t';
如下:
此时,我们已经在hive这边创建好了,然后直接在impala这边执行show databases;可以看到:
连qyk_test这个数据库都没有。
接下来,我们在impala执行INVALIDATE METADATA;
然后再查询可以看到:
数据库和表都会同步过来。
总结:
如果在hive里面做了新增、删除数据库、表或者数据等更新操作,需要执行在impala里面执行INVALIDATE METADATA;
命令才能将hive的数据同步impala;
如果直接在impala里面新增、删除数据库、表或者数据,会自动同步到hive,无需执行任何命令。