Я пытаюсь настроить куст на Tez , следуя формальному документу и руководству по установке Tez . В общих чертах моя среда и конфигурация следующие: -
- Apache Версия Hadoop / YARN
3.1.2
- Apache Версия Hive
3.1.2
- Apache Версия Tez
0.9.2
- версия openjdk
1.8.0_242
- ОС: версия CentOS
7.7.1908
и версия Debian 10 (buster)
Пока что Я добился правильного запуска YARN/Spark/Hive
и Hive(mr)
с bin/hive
и bin/beeline
. Затем я перехожу к следующему шагу для настройки 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
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 Server 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
1057 * упоминается как 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