赞
踩
在启用 Kudu-HMS 集成之前,要确保 Kudu 和 HMS 现有表的视图一致。这可能需要重命名Kudu表以符合Hive命名约束。在启用与 Hive Metastore 集成之前应升级现有 Kudu 表。
在升级过程中,Kudu群集仍然可用。Kudu 和 Hive Metastore 中的表可能会更改或重命名。
可以使用以下命令记录所有外部表并将其删除。这减少了与 Kudu 表发生命名冲突,导致升级过程中出现错误。升级完成后,重新创建外部表。
[root@node01 ~]# sudo -u kudu kudu hms list cdh01:7051,cdh02:7051,cdh03:7051
[root@node01 ~]# sudo -u kudu kudu hms precheck cdh01:7051,cdh02:7051,cdh03:7051
$ sudo -u kudu kudu table rename_table cdh01:7051,cdh02:7051,cdh03:7051 <conflicting_table_name> <new_table_name>
[root@node01 ~]# sudo -u kudu kudu hms check cdh01:7051,cdh02:7051,cdh03:7051 --hive_metastore_uris=thrift://hive-metastore:9083 --ignore_other_clusters=false
[root@node01 ~]# sudo -u kudu kudu hms fix cdh01:7051,cdh02:7051,cdh03:7051 --hive_metastore_uris=thrift://hive-metastore:90 --dryrun=true --ignore_other_clusters=false
[root@node01 ~]# sudo -u kudu kudu hms fix cdh01:7051,cdh02:7051,cdh03:7051 --hive_metastore_uris=thrift://hive-metastore:90 --dryrun=true --ignore_other_clusters=false
<property> <name>hive.metastore.transactional.event.listeners</name> <value> org.apache.hive.hcatalog.listener.DbNotificationListener, org.apache.kudu.hive.metastore.KuduMetastorePlugin </value> </property> <property> <name>hive.metastore.disallow.incompatible.col.type.changes</name> <value>false</value> </property> <property> <name>hive.metastore.notifications.add.thrift.objects</name> <value>true</value> </property>
--hive_metastore_uris=<HMS Thrift URI(s)>
--hive_metastore_sasl_enabled=<value of the Hive Metastore's hive.metastore.sasl.enabled configuration>
--hive_metastore_sasl_enabled
设置为 true 时,--hive_metastore_kerberos_principal
必须与 Hive Metastore 中 hive.metastore.kerberos.principal
匹配注意:
如果 Hive Metastore 使用了 Apache Sentry 配置了细粒度的授权并且启用Sentry HDFS Sync功能时,Kudu 管理员需要能够访问和修改 HMS 为 Kudu 创建的目录。需要将 Kudu 管理员用户添加到 Hive 服务用户组中,usermod -aG hive kudu
。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。