2017-08-13 7 views
0

TeveでHiveに関する問題が発生しています。TezでHiveからMapReduceジョブを実行できません

SELECT COUNT(*) FROM Transactions;

:のように、このテーブルで集計関数を使用しようとしているか(*)をカウントするとき、私はテーブルを選択することができ

はすべての問題

SELECT * FROM Transactions;

ずにハイブに存在するが、私はHive.logファイルにログインしています

2017-08-13T10:04:27,892 INFO [4a5b6a0c-9edb-45ea-8d49-b2f4b0d2b636メイン] conf.HiveConf:ログIDに渡されたデフォルト値を使用して:4a5b6a0c-9edb-45ea-8d49-b2f4b0d2b636 2017-08 -13T10:04:27,910情報[4a5b6a0c-9edb-45ea-8d49-b2f4b0d2b636メイン] session.SessionState:tezセッションを閉じるエラー java.lang.RuntimeException:java.util.concurrent.ExecutionException:org.apache.tez.dag。 api.SessionNotRunning:TezSessionはすでにシャットダウンされています。アプリケーションapplication_1498057873641_0017は、appattempt_1498057873641_0017_000002のAM ContainerがexitCodeで終了したため、2回失敗しました。 この試みに失敗しました。診断:java.io.FileNotFoundException:ファイル/ tmp/hadoop-hadoop/nm-local-dir/filecacheは存在しません。 より詳細な出力を確認するには、アプリケーショントラッキングページを確認してください。http://hadoop-master:8090/cluster/app/application_1498057873641_0017次に、各試行のログへのリンクをクリックします。 。アプリケーションに失敗しました。 at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.isOpen(TezSessionState.java:173)〜[hive-exec-2.1.1.jar:2.1.1] at org.apache.hadoop。 hive.ql.exec.tez.TezSessionState.toString(TezSessionState.java:135)〜[hive-exec-2.1.1.jar:2.1.1] at java.lang.String.valueOf(String.java:2994) 〜[?:1.8.0_131] at java.lang.StringBuilder.append(StringBuilder.java:131)〜[?:1.8.0_131] at org.apache.hadoop.hive.ql.exec.tez.TezSessionPoolManager。 closeIfNotDefault(TezSessionPoolManager.java:346)〜[hive-exec-2.1.1.jar:2.1.1] at org.apache.hadoop.hive.ql.session.SessionState.close(SessionState.java:1524)[ハイブ-exec-2.1.1.jar:2.1.1] at org.apache.hadoop.hive.cli.CliSessionState.close(CliSessionState.java:66)[hive-cli-2.1.1.jar:2.1.1] at org.apache.had oop.hive.cli.CliDriver.processCmd(CliDriver.java:133)[hive-cli-2.1.1.jar:2.1.1] at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java :399)[hive-cli-2.1.1.jar:2.1.1] at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776)[hive-cli-2.1.1.jar :2.1.1] at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)[hive-cli-2.1.1.jar:2.1.1] at org.apache.hadoop。 hive.cli.CliDriver.main(CliDriver.java:641)[hive-cli-2.1.1.jar:2.1.1] at sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)〜[?:1.8.0_131] sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)で 〜[:?1.8.0_131] sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)で 〜[:?1.8.0_131] at java.lang.reflect.Method.invoke(Method.java:498)〜[?:1.8.0_131] at org.apache.hadoop.util.RunJar.run(RunJar.java:234)[hadoop-common (RunJar.java:148)[hadoop-common-2.8.0.jar :?] 原因:java.util。 concurrent.ExecutionException:org.apache.tez.dag.api.SessionNotRunning:TezSessionはすでにシャットダウンされています。アプリケーションapplication_1498057873641_0017は、exitCodeで終了したappattempt_1498057873641_0017_000002のAMコンテナのため2回失敗しました:-1000 この試行に失敗しました。診断:java.io.FileNotFoundException:ファイル/ tmp/hadoop-hadoop/nm-local-dir/filecacheが存在しない 出力の詳細については、アプリケーション追跡ページを確認してください。http://hadoop-master:8090/cluster/app/application_1498057873641_0017次に、各試行のログへのリンクをクリックします。 。アプリケーションに失敗しました。 のjava.util.concurrent.FutureTask.report(FutureTask.java:122)〜[?:1.8.0_131] のjava.util.concurrent.FutureTask.get(FutureTask.java:206)〜[?:1.8。 0_131] at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.isOpen(TezSessionState.java:168)〜[hive-exec-2.1.1.jar:2.1.1] ... 17もっと見る 原因:org.apache.tez.dag.api.SessionNotRunning:TezSessionはすでにシャットダウンしています。アプリケーションapplication_1498057873641_0017は、appattempt_1498057873641_0017_000002のAM ContainerがexitCodeで終了したため、2回失敗しました。 この試みに失敗しました。診断:java.io.FileNotFoundException:ファイル/ tmp/hadoop-hadoop/nm-local-dir/filecacheは存在しません。 より詳細な出力を確認するには、アプリケーショントラッキングページを確認してください。http://hadoop-master:8090/cluster/app/application_1498057873641_0017次に、各試行のログへのリンクをクリックします。 。アプリケーションに失敗しました。 at org.apache.tez.client.TezClient.waitTillReady(TezClient.java:914)〜[tez-api-0.8.4.jar:0.8.4] at org.apache.tez.client.TeClient.waitTillReady( TezClient.java:883)〜[tez-api-0.8.4.jar:0.8.4] at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.startSessionAndContainers(TezSessionState.java:416)〜[ hive-exec-2.1.1.jar:2.1.1] (org.apache.hadoop.hive.ql.exec.tez.TezSessionState.access)$ 000(TezSessionState.java:97)〜[hive-exec-2.1.1 .jar:2.1.1] at org.apache.hadoop.hive.ql.exec.tez.TezSessionState $ 1.call(TezSessionState.java:333)〜[hive-exec-2.1.1.jar:2.1.1] at org.apache.hadoop.hive.ql.exec.tez.TezSessionState $ 1.call(TezSessionState.java:329)〜[hive-exec-2.1.1.jar:2.1.1] at java.util.concurrent .FutureTask.run(FutureTask.java:266)〜[?:1.8.0_131]java.lang.Thread.run(Thread.java:748)で〜[:?1.8.0_131]

私はすべてのクラスタノードで逃したディレクトリを作成することで、この問題を解決「を/ tmp/Hadoopの、Hadoopの/ nm-local-dir/filecache」と入力します。

2017-08-13T10:06:35567 INFO [メイン] optimizer.ColumnPrunerProcFactory:RS 3 oldColExprMap:{SELECT COUNT(*) FROM Transactions;をやろうとしたときに

は、その後、私は以下のように、Hive.logでエラーが発生しましたVALUE._col0 = Column [_col0]} 2017-08-13T10:06:35,568 INFO [main] optimizer.ColumnPrunerProcFactory:RS 3 newColExprMap:{VALUE._col0 = Column [_col0]} 2017-08-13T10:06: 35,604 INFO [213ea036-8245-4042-a5a1-ccd686ea2465 main] Configuration.deprecation:mapred.input.dir.recursiveは推奨されていません。代わりに、mapreduce.input.fileinputformat.input.dir.recursiveを使用してください。 2017-08-13T10:06:35,658 INFO [main] annotation.StatsRulesProcFactory:STATS-GBY [2]:行数0になります。 2017-08-13T10:06:35,680 INFO [main] parse.TezCompiler:サイクルフリー:1に設定されているレデューサーの数: 2017-08-13T10:06:35,679 INFO [main] optimizer.SetReducerParallelism: true 2017-08-13T10:06:35,689 INFO [213ea036-8245-4042-a5a1-ccd686ea2465 main] Configuration.deprecation:mapred.job.nameは推奨されていません。代わりに、mapreduce.job.nameを使用してください。 2017-08-13T10:06:35,741 INFO [main] parse.CalcitePlanner:完了プランの生成 2017-08-13T10:06:35,742 INFO [main] ql.Driver:セマンティック分析が完了しました 2017-08-13T10:06:35,742 INFO [main] ql.Driver:Returning Hiveスキーマ:スキーマ(fieldSchemas:[FieldSchema(name:c0、type:bigint、comment:null)]、プロパティ:null) 2017- 08-13T10:06:35,744 INFO [main] exec.ListSinkOperator:演算子の初期化LIST_SINK [7] 2017-08-13T10:06:35,745 INFO [main] ql.Driver:コンパイルコマンドの完了(queryId = hadoop_20170813100633_31ca0425-6aca-434c) -8039-48bc0e761095);撮影時間:2131秒 2017-08-13T10:06:35,768 INFO [main] ql.Driver:コマンド実行中(queryId = hadoop_20170813100633_31ca0425-6aca-434c-8039-48bc0e761095):トランザクションからcount(*)を選択 2017-08-13T10: 06:35,768情報[main] ql.Driver:クエリID = hadoop_20170813100633_31ca0425-6aca-434c-8039-48bc0e761095 2017-08-13T10:06:35,768 [main] ql.Driver:総ジョブ数= 1 2017-08- [メイン] ql.Driver:シリアルモードで[ステージ1:MAPRED]開始タスク 2017-08-13T10:06:35,789 INFO [main] tez.TezSessionPoolManager:現在のユーザー:hadoop、セッションユーザー:hadoop 2017-08-13T10:06:35,789 INFO [main] tez.TezSessionPoolManager:現在のキュー名がnullです。受信キュー名がヌルです 2017-08-13T10:06:35,838 INFO [213ea036-8245-4042-a5a1-ccd686ea2465 main] Configuration.deprecation:mapred.committer.job.setup.cleanup.neededは推奨されていません。代わりに、mapreduce.job.committer.setup.cleanup.neededを使用してください。 2017-08-13T10:06:35,840 INFO [main] ql.Context:新しいスクラッチディレクトリはhdfs:// hadoop-master:8020/tmp/hive/hadoop/213ea036-8245-4042 -a5a1-ccd686ea2465/hive_2017-08-13_10-06-33_614_5648783469307420794-1 2017-08-13T10:06:35,845情報[main] exec.Task:セッションは既に開かれています 2017-08-ファイル:/opt/apache-tez-0.8.4-binからdest:hdfs:// hadoop-master:8020/tmp /他のスレッドやプロセスと同じように見えます。hive/hadoop/_tez_session_dir/213ea036-8245-4042 -a5a1-ccd686ea2465/apache-tez-0.8.4-bin 2017-08-13T10:06:35,850 INFO [main] tez.DagUtils同じファイルを書き込む 2017-08-13T10:06:35,851 INFO [main] tez.DagUtils:ファイルhdfs:// hadoop-master:8020/tmp/hive/hadoop/_tez_session_dir/213ea036-8245-4042を待っている-a5a1-ccd686ea2465/apache-tez-0.8.4-bin(5回試行、5000ms間隔で) 2017-08-13T10:07:00,860エラー[main] tez.DagUtils:アップロード中のjarファイルが見つかりません 2017-08-13T10:07:00,861 ERROR [main] exec.Task:tezグラフの実行に失敗しました。 java.io.IOException:以前のライターがhdfs:// hadoop-master:8020/tmp/hive/hadoop/_tez_session_dir/213ea036-8245-4042 -a5a1-ccd686ea2465/apache-tez-0.8.4-binの書き込みに失敗した可能性があります。 。私はあまりにも書くつもりはないので、失敗する。 (DagUtils.java:1022) at org.apache.hadoop.hive.ql.exec.tez.DagUtils.localizeResource 902) at org.apache.hadoop.hive.ql.exec.tez.DagUtils.localizeTempFilesFromConf(DagUtils.java:845) at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.refreshLocalResourcesFromConf(TezSessionState。 java:466) at org.apache.hadoop.hive.ql.exec.tez.TezTask.updateSession(TezTask.java:294) at org.apache.hadoop.hive.ql.exec.tez.TezTask.execute( (Task.java:155) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:197) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner。 java:100) at org.apache.hadoop.hive.ql.Driver.la (Driver.java:1744) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:2073) をorg.apache.hadoop.hive.ql.Driver.execute(Driver.java:1744) 1453) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1171) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1161) at org。 apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183) at org.apache.hadoop.hive。 (CliDriver.java:776) (org.apache.hadoop.hive.cli.CliDriver.run()) CliDriver.java:714) at org.apache.hadoop.hive.cli.CliDriver.ma in(CliDriver.java:641) at sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar。 (RunJar.java:234) at org.apache.hadoop.util.RunJar.main(RunJar.java:148) 2017-08-13T10:07:00,880 ERROR [main] ql.Driver:FAILED:実行エラー、私は「https://issues.apache.org/jira/browse/AMBARI-9821」ハイブの問題のために、このJIRA課題をチェックが、カウントをやろうとしたときにも、このエラーが直面している

org.apache.hadoop.hive.ql.exec.tez.TezTaskからコード1を返します(*)この表から。

TEZ confファイル:

<configuration> 
    <property> 
     <name>tez.lib.uris</name> 
     <value>hdfs://hadoop-master:8020/user/tez/apache-tez-0.8.4-bin/share/tez.tar.gz</value> 
     <type>string</type> 
    </property> 
</configuration> 

ハイブconfファイル:

<configuration> 
    <property> 
       <name>hive.server2.thrift.http.port</name> 
       <value>10001</value> 
     </property> 
     <property> 
       <name>hive.server2.thrift.http.min.worker.threads</name> 
       <value>5</value> 
     </property> 
     <property> 
       <name>hive.server2.thrift.http.max.worker.threads</name> 
       <value>500</value> 
     </property> 
     <property> 
       <name>hive.server2.thrift.http.path</name> 
       <value>cliservice</value> 
     </property> 
    <property> 
     <name>hive.server2.thrift.min.worker.threads</name> 
     <value>5</value> 
    </property> 
     <property> 
       <name>hive.server2.thrift.max.worker.threads</name> 
       <value>500</value> 
     </property> 
    <property> 
     <name>hive.server2.transport.mode</name> 
     <value>http</value> 
     <description>Server transport mode. "binary" or "http".</description> 
    </property> 
    <property> 
     <name>hive.server2.allow.user.substitution</name> 
     <value>true</value> 
    </property> 
    <property> 
     <name>hive.server2.authentication</name> 
     <value>NONE</value> 
    </property> 
    <property> 
     <name>hive.server2.thrift.bind.host</name> 
     <value>10.100.38.136</value> 
    </property> 
    <property> 
     <name>hive.support.concurrency</name> 
     <description>Enable Hive's Table Lock Manager Service</description> 
     <value>true</value> 
    </property> 
    <property> 
     <name>hive.zookeeper.quorum</name> 
     <description>Zookeeper quorum used by Hive's Table Lock Manager</description> 
     <value>hadoop-master,hadoop-slave1,hadoop-slave2,hadoop-slave3,hadoop-slave4,hadoop-slave5</value> 
    </property> 
    <property> 
     <name>hive.zookeeper.client.port</name> 
     <value>2181</value> 
     <description>The port at which the clients will connect.</description> 
    </property> 
    <property> 
     <name>javax.jdo.option.ConnectionURL</name> 
     <value>jdbc:derby://hadoop-master:1527/metastore_db2</value> 
     <description> 
      JDBC connect string for a JDBC metastore. 
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL. 
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database. 
     </description> 
    </property> 
    <property> 
     <name>hive.metastore.warehouse.dir</name> 
     <value>/user/hive/warehouse</value> 
     <description>location of default database for the warehouse</description> 
    </property> 
    <property> 
       <name>hive.server2.webui.host</name> 
       <value>10.100.38.136</value> 
     </property> 
     <property> 
       <name>hive.server2.webui.port</name> 
       <value>10010</value> 
     </property> 
    <!--<property> 
     <name>hive.metastore.local</name> 
     <value>true</value> 
    </property> 
    <property> 
     <name>hive.metastore.uris</name> 
     <value/> 
     <value>thrift://hadoop-master:9083</value> 
     <value>file:///source/apache-hive-2.1.1-bin/bin/metastore_db/</value> 
     <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> 
    </property>--> 
    <property> 
     <name>javax.jdo.option.ConnectionDriverName</name> 
     <value>org.apache.derby.jdbc.ClientDriver</value> 
     <description>Driver class name for a JDBC metastore</description> 
    </property> 
    <property> 
     <name>javax.jdo.PersistenceManagerFactoryClass</name> 
     <value>org.datanucleus.api.jdo.JDOPersistenceManagerFactory</value> 
     <description>class implementing the jdo persistence</description> 
    </property> 
    <property> 
     <name>datanucleus.autoStartMechanism</name> 
     <value>SchemaTable</value> 
    </property> 
    <property> 
     <name>hive.execution.engine</name> 
     <value>tez</value> 
    </property> 
    <property> 
     <name>javax.jdo.option.ConnectionUserName</name> 
     <value>APP</value> 
    </property> 
    <property> 
     <name>javax.jdo.option.ConnectionPassword</name> 
     <value>mine</value> 
    </property> 
    <!--<property> 
     <name>datanucleus.autoCreateSchema</name> 
      <value>false</value> 
      <description>Creates necessary schema on a startup if one doesn't exist</description> 
    </property> --> 
</configuration> 

はまた、これは糸による診断です:

アプリケーションapplication_1498057873641_0018はappattempt_1498057873641_0018_000002用AMコンテナによる2回失敗しexitCodeで終了しました:-103 この試行に失敗しました。診断s:コンテナ[pid = 31779、containerID = container_1498057873641_0018_02_000001]が仮想メモリの制限を超えて実行されています。現在の使用法:169.3 MBの1 GBの物理メモリが使用されています。 2.6 GBの2.1 GBの仮想メモリが使用されています。コンテナを殺す。 container_1498057873641_0018_02_000001ためのプロセスツリーのダンプ: | - PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS)SYSTEM_TIME(MILLIS)VMEM_USAGE(バイト)RSSMEM_USAGE(ページ)FULL_CMD_LINE | - 31786 31779 31779 31779(ジャワ)587 61 2710179840 43031/opt/jdk-8u131/jdk1.8.0_131/bin/java -Xmx819m -Djava.io.tmpdir =/tmp/hadoop-hadoop/nm-local-dir/usercache/hadoop/appcache/application_1498057873641_0018/container_1498057873641_0018_02_000001/tmp -server - Djava.net.preferIPv4Stack = true -Dhadoop.metrics.log.level = WARN -XX:+ PrintGCDetails -verbose:gc -XX:+ PrintGCTimeStamps -XX:+ UseNUMA -XX:+ UseParallelGC -Dlog4j.configuratorClass = org.apache。/opt/hadoop/hadoop-2.8.0/logs/userlogs/application_1498057873641_0018/container_1498057873641_0018_02_000001 -Dtez.root .logger = INFO、CLA -Dsun .nio.ch.bugLevel = org.apache.tez.dag.app.DAGAppMaster - セッション | - 31779 31777 31779 31779(bash)0 0 115838976 306/bin/bash -c/opt/jdk-8u131/jdk1。/tmp/hadoop-hadoop/nm-local-dir/usercache/hadoop/appcache/application_1498057873641_0018/container_1498057873641_0018_02_000001/tmp -server -Djava.net.preferIPv4Stack = true - Dhadoop.metrics.log.level = WARN -XX:+ PrintGCDetails -verbose:gc -XX:+ PrintGCTimeStamps -XX:+ UseNUMA -XX:+ UseParallelGC -Dlog4j.configuratorClass = org.apache.tez.common.TezLog4jConfigurator -Dlog4j。 configuration = tez-container-log4j.properties -Dyarn.app.container.log.dir =/opt/hadoop/hadoop-2.8.0/logs/userlogs/application_1498057873641_0018/container_1498057873641_0018_02_000001 -Dtez.root.logger = INFO、CLA -Dsun .nio.ch.bugLevel = '' org.apache.tez.dag.app.DAGAppMaster - セッション1> /opt/hadoop/hadoop-2.8.0/logs/userlogs/application_1498057873641_0018/container_1498057873641_0018_02_000001/stdout 2>/opt /ハdoop/hadoop-2.8.0/logs/userlogs/application_1498057873641_0018/container_1498057873641_0018_02_000001/stderr 要求に応じてコンテナが強制終了されました。終了コードが143 コンテナがゼロ以外の終了コードで終了143 詳細な出力については、アプリケーション追跡ページを確認してください。http://hadoop-master:8090/cluster/app/application_1498057873641_0018次に、各試行のログへのリンクをクリックします。 。アプリケーションに失敗しました。

答えて

1

ほとんどの場合、https://issues.apache.org/jira/browse/HIVE-16398を打つことになります。 回避策として、/ usr/hdp // hive/conf/hive-envに以下を追加する必要があります。sh

# Folder containing extra libraries required for hive compilation/execution can be controlled by: 
if [ "${HIVE_AUX_JARS_PATH}" != "" ]; then 
if [ -f "${HIVE_AUX_JARS_PATH}" ]; then 
export HIVE_AUX_JARS_PATH=${HIVE_AUX_JARS_PATH} 
elif [ -d "/usr/hdp/current/hive-webhcat/share/hcatalog" ]; then 
export HIVE_AUX_JARS_PATH=/usr/hdp/current/hive-webhcat/share/hcatalog/hive-hcatalog-core.jar 
fi 
elif [ -d "/usr/hdp/current/hive-webhcat/share/hcatalog" ]; then 
export HIVE_AUX_JARS_PATH=/usr/hdp/current/hive-webhcat/share/hcatalog/hive-hcatalog-core.jar 
fi 
関連する問題