gpt4 book ai didi

hadoop - 使用 zkcli.sh bash 通过 oozie shell 操作将 solr 配置从 hdfs 发送到 zookeeper

转载 作者:可可西里 更新时间:2023-11-01 14:31:16 26 4
gpt4 key购买 nike

每次我尝试将 solr 配置发送给 zookeeper 时,我都会在下面遇到异常。

作为 confdir,我输入了这个地址:“hdfs://some_address/user/Peter/dir_with_date”。

在 bash 脚本后面的 jars 中实现时,我看到有一个 Paths.get 方法,它将我的带有配置的字符串转换为没有双斜杠的字符串(“hdfs:/some_ad...”)。

Exception in thread "main" java.io.IOException: Path hdfs:/some_address/user/Peter/dir_with_date does not exist
at org.apache.solr.common.cloud.ZkConfigManager.uploadToZK(ZkConfigManager.java:56)
at org.apache.solr.common.cloud.ZkConfigManager.uploadConfigDir(ZkConfigManager.java:120)
at org.apache.solr.cloud.ZkCLI.main(ZkCLI.java:220)

是我做错了什么还是这些 zkcli 不适合从 hdfs 读取数据?处理这种情况的最佳方法是什么(构建自定义 jar)?

最佳答案

如果您查看“ZkConfigManager::uploadToZK()”的代码,此处显示:https://github.com/apache/incubator-ranger/blob/master/ranger_solrj/src/main/java/org/apache/solr/common/cloud/ZkConfigManager.java ,您可以观察到异常发生在:

if (!Files.exists(rootPath))
throw new IOException("Path " + rootPath + " does not exist");

期望 Pathjava.nio.file.Path 而不是 org.apache.hadoop.fs.Path (hdfs 路径)。

因为您传递的是 hdfs 路径,所以会抛出异常。

您应该传递本地文件系统的路径(即“/some_address/user/Peter/dir_with_date”应该是本地文件路径)。

此外,查看此 wiki,它提供了使用 zkcli 上传配置的示例:https://cwiki.apache.org/confluence/display/solr/Using+ZooKeeper+to+Manage+Configuration+Files

关于hadoop - 使用 zkcli.sh bash 通过 oozie shell 操作将 solr 配置从 hdfs 发送到 zookeeper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34400286/

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