簡體   English   中英

Hive on Tez:無法找到或加載主類 400

[英]Hive on Tez: Could not find or load main class 400

我正在嘗試按照正式文檔Tez 安裝指南在 Tez上配置Hive 通過概述,我的環境和配置如下:-

  1. Apache Hadoop/YARN 版本3.1.2
  2. Apache Hive 版本3.1.2
  3. Apache Tez 版本0.9.2
  4. openjdk 版本1.8.0_242
  5. 操作系統:CentOS 版本7.7.1908和 Debian 版本10 (buster)

到目前為止,我已經實現了使用bin/hivebin/beeline正確啟動YARN/Spark/HiveHive(mr) 然后我轉到下一步Hive on Tez配置Hive on Tez作為以下信息:-

環境變量

export TEZ_CONF_DIR=/opt/tez/conf
export TEZ_JARS=/opt/tez/*:/opt/tez/lib/*
export HADOOP_CLASSPATH=$TEZ_CONF_DIR:$TEZ_JARS:$(hadoop classpath)

高密度文件系統

hdfs dfs -mkdir -p /apps/tez \
&& hdfs dfs -put /opt/tez/* /apps/tez \
&& hdfs dfs -chmod g+w /apps/tez

tez-site.xml

<configuration>
    <property>
        <name>tez.lib.uris</name>
        <value>${fs.defaultFS}/apps/tez/,${fs.defaultFS}/apps/tez/lib/</value>
    </property>
    <property>
        <name>tez.use.cluster.hadoop-libs</name>
        <value>false</value>
    </property>
</configuration>

hive-site.xml

<configuration>
    <property>
        <name>hive.execution.engine</name>
        <value>tez</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:postgresql://metastore-db:5432/metastore</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>org.postgresql.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>some-user</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>some-password</value>
    </property>
</configuration>

啟動 Hive 服務器 2

${HIVE_HOME}/bin/hiveserver2 --hiveconf hive.server2.enable.doAs=false

Resource Manager UI顯示了一個應用程序,其狀態為FAILED ,連同hiveserver2一起向我顯示如下錯誤:-

Failing this attempt.Diagnostics: [2020-03-10 08:28:06.410]Exception from container-launch.
Container id: container_1583471849377_0012_02_000001
Exit code: 1

[2020-03-10 08:28:06.413]Container exited with a non-zero exit code 1. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
Error: Could not find or load main class 400


[2020-03-10 08:28:06.414]Container exited with a non-zero exit code 1. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
Error: Could not find or load main class 400


For more detailed output, check the application tracking page: 
http://node-master:61688/cluster/app/application_1583471849377_0012 
Then click on links to logs of each attempt.
. Failing the application.

我也有機會訪問 YARN 上的應用程序日志

stderr提到Error: Could not find or load main class 400

launch_container.sh提到為

echo "Launching container"
exec /bin/bash -c "$JAVA_HOME/bin/java  \
-Xmx1228m \
-Djava.io.tmpdir=$PWD/tmp \
-server \
-Djava.net.preferIPv4Stack=true \
-Dhadoop.metrics.log.level=WARN  \

400 \ # <---- Suspected which may be related to the above error.

-Dlog4j.configuratorClass=org.apache.tez.common.TezLog4jConfigurator \
-Dlog4j.configuration=tez-container-log4j.properties \
-Dyarn.app.container.log.dir=/opt/hadoop/logs/userlogs/application_1583471849377_0012/container_1583471849377_0012_02_000001 \
-Dtez.root.logger=INFO,CLA \
-Dsun.nio.ch.bugLevel='' \
org.apache.tez.dag.app.DAGAppMaster \
--session \
1>/opt/hadoop/logs/userlogs/application_1583471849377_0012/container_1583471849377_0012_02_000001/stdout \
2>/opt/hadoop/logs/userlogs/application_1583471849377_0012/container_1583471849377_0012_02_000001/stderr "

我不知道錯誤Could not find or load main class 400來自哪里,唯一可能相關的錯誤是在上面提到的launch_container.sh中。

你能幫忙建議如何解決這個問題嗎? 難道我做錯了什么?

編輯:

顯示長行的要點是

https://gist.github.com/charleech/8cd615c0236626882c7a3ea7532ad4d5

就我而言,400 類來自文件 $HADOOP_HOME/etc/hadoop/mapred-site.xml 上的配置參數,它確實出現在 launch_container.sh 中。 我在文件中編輯了以下屬性。

<property>
    <name>yarn.app.mapreduce.am.command-opts</name>
    <!-- <value>400</value> -->
    <value>-Xmx256m</value>
</property>

您可以在此 cloudera doc上找到有關此參數的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM