web-dev-qa-db-ja.com

Spark-SubmitYARNクラスターモードを使用するときにHiveサイトがありません

HDP 2.5.3を使用して、YARNコンテナのクラスパスの問題をデバッグしようとしています。

HDPにはSpark 1.6と2.0.0の両方が含まれているため、いくつかの競合するバージョンがあります

私がサポートするユーザーは、YARN clientモードでHiveクエリを使用してSpark2を正常に使用できますが、clusterモードからは、テーブルが見つからないなどのエラーが発生します。これは、メタストア接続がないためです。 tが確立されました。

--driver-class-path /etc/spark2/conf:/etc/Hive/confの設定または--files /etc/spark2/conf/Hive-site.xmlの後にspark-submitを渡すことは機能すると思いますが、Hive-site.xmlconfフォルダーから既にロードされていないのはなぜですか?

Hortonworks docs によると、Hive-site$SPARK_HOME/confに配置する必要があります。

たとえば、hdfs-site.xmlcore-site.xml、およびHADOOP_CONF_DIRの一部である他のファイルが表示されます。これは、YARNUIコンテナ情報からのものです。

2232355    4 drwx------   2 yarn     hadoop       4096 Aug  2 21:59 ./__spark_conf__
2232379    4 -r-x------   1 yarn     hadoop       2358 Aug  2 21:59 ./__spark_conf__/topology_script.py
2232381    8 -r-x------   1 yarn     hadoop       4676 Aug  2 21:59 ./__spark_conf__/yarn-env.sh
2232392    4 -r-x------   1 yarn     hadoop        569 Aug  2 21:59 ./__spark_conf__/topology_mappings.data
2232398    4 -r-x------   1 yarn     hadoop        945 Aug  2 21:59 ./__spark_conf__/taskcontroller.cfg
2232356    4 -r-x------   1 yarn     hadoop        620 Aug  2 21:59 ./__spark_conf__/log4j.properties
2232382   12 -r-x------   1 yarn     hadoop       8960 Aug  2 21:59 ./__spark_conf__/hdfs-site.xml
2232371    4 -r-x------   1 yarn     hadoop       2090 Aug  2 21:59 ./__spark_conf__/hadoop-metrics2.properties
2232387    4 -r-x------   1 yarn     hadoop        662 Aug  2 21:59 ./__spark_conf__/mapred-env.sh
2232390    4 -r-x------   1 yarn     hadoop       1308 Aug  2 21:59 ./__spark_conf__/hadoop-policy.xml
2232399    4 -r-x------   1 yarn     hadoop       1480 Aug  2 21:59 ./__spark_conf__/__spark_conf__.properties
2232389    4 -r-x------   1 yarn     hadoop       1602 Aug  2 21:59 ./__spark_conf__/health_check
2232385    4 -r-x------   1 yarn     hadoop        913 Aug  2 21:59 ./__spark_conf__/rack_topology.data
2232377    4 -r-x------   1 yarn     hadoop       1484 Aug  2 21:59 ./__spark_conf__/ranger-hdfs-audit.xml
2232383    4 -r-x------   1 yarn     hadoop       1020 Aug  2 21:59 ./__spark_conf__/commons-logging.properties
2232357    8 -r-x------   1 yarn     hadoop       5721 Aug  2 21:59 ./__spark_conf__/hadoop-env.sh
2232391    4 -r-x------   1 yarn     hadoop        281 Aug  2 21:59 ./__spark_conf__/slaves
2232373    8 -r-x------   1 yarn     hadoop       6407 Aug  2 21:59 ./__spark_conf__/core-site.xml
2232393    4 -r-x------   1 yarn     hadoop        812 Aug  2 21:59 ./__spark_conf__/rack-topology.sh
2232394    4 -r-x------   1 yarn     hadoop       1044 Aug  2 21:59 ./__spark_conf__/ranger-hdfs-security.xml
2232395    8 -r-x------   1 yarn     hadoop       4956 Aug  2 21:59 ./__spark_conf__/metrics.properties
2232386    8 -r-x------   1 yarn     hadoop       4221 Aug  2 21:59 ./__spark_conf__/task-log4j.properties
2232380    4 -r-x------   1 yarn     hadoop         64 Aug  2 21:59 ./__spark_conf__/ranger-security.xml
2232372   20 -r-x------   1 yarn     hadoop      19975 Aug  2 21:59 ./__spark_conf__/yarn-site.xml
2232397    4 -r-x------   1 yarn     hadoop       1006 Aug  2 21:59 ./__spark_conf__/ranger-policymgr-ssl.xml
2232374    4 -r-x------   1 yarn     hadoop         29 Aug  2 21:59 ./__spark_conf__/yarn.exclude
2232384    4 -r-x------   1 yarn     hadoop       1606 Aug  2 21:59 ./__spark_conf__/container-executor.cfg
2232396    4 -r-x------   1 yarn     hadoop       1000 Aug  2 21:59 ./__spark_conf__/ssl-server.xml
2232375    4 -r-x------   1 yarn     hadoop          1 Aug  2 21:59 ./__spark_conf__/dfs.exclude
2232359    8 -r-x------   1 yarn     hadoop       7660 Aug  2 21:59 ./__spark_conf__/mapred-site.xml
2232378   16 -r-x------   1 yarn     hadoop      14474 Aug  2 21:59 ./__spark_conf__/capacity-scheduler.xml
2232376    4 -r-x------   1 yarn     hadoop        884 Aug  2 21:59 ./__spark_conf__/ssl-client.xml

ご覧のとおり、spark-submitが取るためのHive-siteは間違いなくありますが、conf/Hive-site.xmlはありません。

[spark@asthad006 conf]$ pwd && ls -l
/usr/hdp/2.5.3.0-37/spark2/conf
total 32
-rw-r--r-- 1 spark spark   742 Mar  6 15:20 Hive-site.xml
-rw-r--r-- 1 spark spark   620 Mar  6 15:20 log4j.properties
-rw-r--r-- 1 spark spark  4956 Mar  6 15:20 metrics.properties
-rw-r--r-- 1 spark spark   824 Aug  2 22:24 spark-defaults.conf
-rw-r--r-- 1 spark spark  1820 Aug  2 22:24 spark-env.sh
-rwxr-xr-x 1 spark spark   244 Mar  6 15:20 spark-thrift-fairscheduler.xml
-rw-r--r-- 1 Hive  hadoop  918 Aug  2 22:24 spark-thrift-sparkconf.conf

したがって、HADOOP_CONF_DIRが分離されているため、HiveサイトをHive_CONF_DIRに配置することになっていないと思いますが、私の質問は、Spark2にHive-site.xmlを取得せずに実行時にパラメータとして手動で渡す必要がありますか?

[〜#〜] edit [〜#〜]当然、私はHDPを使用しているので、Ambariを使用しています。以前のクラスター管理者はすべてのマシンにSpark2クライアントをインストールしたため、潜在的なSparkドライバーである可能性のあるすべてのYARNNodeManagerは同じ構成ファイルを持つ必要があります

7
cricket_007

spark property --spark.yarn.dist.filesを使用して、そこでHive-site.xmlへのパスを指定できます。

3
Artur Sukhenko

clustermode構成は、マシンのconfディレクトリから読み取られます。このディレクトリは、spark-submitに使用されるものではなく、driverコンテナを実行します。

1
user8554772

これに関する問題が見つかりました

Hiveコンテキストを作成する前にorg.Apache.spark.sql.SQLContextを作成すると、Hiveコンテキストを作成するときにHive-site.xmlが適切に選択されません。

ソリューション:別のSQLコンテキストを作成する前に、Hiveコンテキストを作成します。

0
Naveen Krishnan