【问题标题】:Alluxio + Hive on EMREMR 上的 Alluxio + Hive
【发布时间】:2018-12-11 12:10:53
【问题描述】:

我在 EMR 5.19.0 集群上安装了 Alluxio 1.8,并且可以使用 /usr/local/alluxio/bin/alluxio fs ls / 查看我的 S3 表。

但是,当我启动 hive 并发出 hive> [[DDL w/ LOCATION = alluxio://master_host:19998/my_table ]]],我得到以下信息:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.RuntimeException: java.lang.ClassNotFoundException: Class alluxio.hadoop.FileSystem not found

有没有办法解决这个问题?我尝试使用--auxpath 指向/usr/local/alluxio/client/alluxio-1.8.1-client.jar 和hdfs 上的jar 副本来启动hive,但没有成功。

有什么帮助吗?

【问题讨论】:

    标签: hive amazon-emr alluxio


    【解决方案1】:

    我发布了一个blog 谈论错误消息java.lang.ClassNotFoundException: Class alluxio.hadoop.FileSystem not found 的原因。以下是一些提示,希望对您有所帮助:

    • 对于 Hive,在conf/hive-env.sh 中设置环境变量HIVE_AUX_JARS_PATH
    export HIVE_AUX_JARS_PATH=/<PATH_TO_ALLUXIO>/client/alluxio-1.8.1-client.jar:${HIVE_AUX_JARS_PATH}
    

    我猜这相当于你设置--auxpath 所做的事情。

    • 根据您的 Hive 设置(例如,MR 或 Spark 或 Tez 上的 Hive),您可能还需要确保运行时也能够访问客户端 jar。以 Hive on MR 为例,您可能还需要将 Alluxio 客户端 jar 的路径附加到 mapreduce.application.classpathyarn.application.classpath 以确保 MR 作业的每个任务都可以访问此 jar。

    【讨论】:

    • 我可以通过在 EMR 配置中配置 hive-env 将 HIVE_AUX_JARS_PATH 设置为 /usr/local/alluxio/client/alluxio-1.8.1-client.jar 来取得进展。虽然我仍然无法创建临时表,但我得到了`失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。 MetaException(消息:得到异常:alluxio.exception.status.UnavailableException 无法连接到 FileSystemMasterClient @ :44 次尝试后 19998)`
    • @rongenre,你能检查一下这个问题的解决方案是否有帮助吗? stackoverflow.com/questions/52810985/…
    • 模拟处理了部分问题,但我遇到了进一步的下游问题。当我得到解决方案时会更新。
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多