gpt4 book ai didi

hadoop - 为什么在 Ambari 从 1.6.0 迁移到 2.0.0 时调用 hive Metatool updatelocation 以将位置移动到不需要的地方?

转载 作者:可可西里 更新时间:2023-11-01 16:56:00 24 4
gpt4 key购买 nike

我正在将我的 HDP2.1 hadoop 集群迁移到 HDP2.2.4。第一步是将 ambari 从 1.6.0 迁移到 2.0.0。
完成这一步后,我重新启动了我的服务。

通过 Ambari 2.0 启动“HiveServer2”失败,而 sudo service hive-server2 start、后续的 Hive 请求和 Ambari Hive 服务检查工作。

它失败了,因为它试图在 python 配置步骤中使用如下命令将我的非默认数据库位置迁移到 apps/hive/warehouse:

hive --config/etc/hive/conf.server --service metatool -updateLocation hdfs://cluster/apps/hive/warehouse hdfs://cluster/user/foo/DATABASE

此命令因不明原因而失败(见下文),但关键是我不希望这种情况发生,因为 HDFS 文件没有移动我看不到重新定位表的意义!

为什么 Ambari 这样做,我怎样才能防止这种情况发生(除了编辑 python ambari 文件之外)?

更新位置无法记录行,例如:-bash:第 1 行:hdfs://cluster/apps/hive/warehouse
: 没有那个文件或目录

但列出的目录确实存在。

此更新由 ambari 的 /var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py 完成(无评论解释目的):

def check_fs_root():
import params
fs_root_url = format("{fs_root}{hive_apps_whs_dir}")
metatool_cmd = format("hive --config {hive_server_conf_dir} --service metatool")
cmd = as_user(format("{metatool_cmd} -listFSRoot 2>/dev/null", env={'PATH' : params.execute_path }), params.hive_user) + " | grep hdfs:// | grep -v '.db$'"
code, out = shell.call(cmd)
if code == 0 and fs_root_url.strip() != out.strip():
cmd = format("{metatool_cmd} -updateLocation {fs_root}{hive_apps_whs_dir} {out}")
Execute(cmd,
user=params.hive_user,
environment= {'PATH' : params.execute_path }
)

最佳答案

查看此 JIRA 是否有助于解决您遇到的问题...

https://issues.apache.org/jira/browse/AMBARI-10360

关于hadoop - 为什么在 Ambari 从 1.6.0 迁移到 2.0.0 时调用 hive Metatool updatelocation 以将位置移动到不需要的地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29915588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com