背景
生产环境CDH集群迁移到新的环境,迁移之后使用Hive Client方执行任务一直失败。
问题1:metadata.SessionHiveMetaStoreClient
产生报错:
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
看起来是hive元数据存储有问题,所以查看了一下配置 hive-site.xml
发现没有配置用户名和密码,于是增加配置
在机器上测试执行 hive -e "show databases;"依然报一样的错。于是查看与MetaStore其他有关的配置,突然发现hive.metastore.uris配置的是迁移前的集群配置的地址,于是修改并重启。
这时候执行show databases;可以成功。
问题2:MapReduce任务卡住
本来以为没问题了,这时候,执行insert任务的时候,一直卡住
看了一下执行日志
发现没有执行reduce任务,于是再次查看配置,怀疑是分配相关的还有问题,果然就看到hive.zookeeper.quorum配置还是用的迁移前的地址....于是修改并重启。
重新执行insert代码可以正常执行了
总结
迁移集群一定要检查好配置,尤其是复制黏贴来的!!!
本次相关的配置修改: