2016-06-22 3 views
0

У нас есть кластер Hadoop, работающий в AWS Elastic MapReduce (EMR) с помощью Spark 1.6.1. Никаких проблем, связанных с кластерным мастером и отправкой задач Spark, но мы хотели бы предоставить их из другого независимого экземпляра EC2.Использование искровой подачи снаружи из кластера EMR-кластера

В другом «внешнем» экземпляре EC2 установлены группы безопасности, позволяющие всем TCP-трафику с экземплярами экземпляра EMR экземпляра EMR & ведомых экземпляров. Он имеет двоичную установку Spark, загружаемую непосредственно с сайта Apache.

Скопировав и т.д. папку в// Hadoop/CONF от ведущего к этому экземпляру и установить $ HADOOP_CONF_DIR соответственно, при попытке подать пример SparkPi, я бегу в следующем номере разрешения:

$ /usr/local/spark/bin/spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi /usr/local/spark/lib/spark-examples-1.6.1-hadoop2.6.0.jar 
16/06/22 13:58:52 INFO spark.SparkContext: Running Spark version 1.6.1 
16/06/22 13:58:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
16/06/22 13:58:52 INFO spark.SecurityManager: Changing view acls to: jungd 
16/06/22 13:58:52 INFO spark.SecurityManager: Changing modify acls to: jungd 
16/06/22 13:58:52 INFO spark.SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions:  Set(jungd); users with modify permissions: Set(jungd) 
16/06/22 13:58:52 INFO util.Utils: Successfully started service 'sparkDriver' on port 34757. 
16/06/22 13:58:52 INFO slf4j.Slf4jLogger: Slf4jLogger started 
16/06/22 13:58:52 INFO Remoting: Starting remoting 
16/06/22 13:58:53 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://[email protected]:39241] 
16/06/22 13:58:53 INFO util.Utils: Successfully started service 'sparkDriverActorSystem' on port 39241. 
16/06/22 13:58:53 INFO spark.SparkEnv: Registering MapOutputTracker 
16/06/22 13:58:53 INFO spark.SparkEnv: Registering BlockManagerMaster 
16/06/22 13:58:53 INFO storage.DiskBlockManager: Created local directory at /tmp/blockmgr-300d738e-d7e4-4ae9-9cfe-4e257a05d456 
16/06/22 13:58:53 INFO storage.MemoryStore: MemoryStore started with capacity 511.1 MB 
16/06/22 13:58:53 INFO spark.SparkEnv: Registering OutputCommitCoordinator 
16/06/22 13:58:53 INFO server.Server: jetty-8.y.z-SNAPSHOT 
16/06/22 13:58:53 INFO server.AbstractConnector: Started [email protected]:4040 
16/06/22 13:58:53 INFO util.Utils: Successfully started service 'SparkUI' on port 4040. 
16/06/22 13:58:53 INFO ui.SparkUI: Started SparkUI at http://172.31.61.189:4040 
16/06/22 13:58:53 INFO spark.HttpFileServer: HTTP File server directory is /tmp/spark-5e332986-ae2a-4bde-9ae4-edb4fac5e1d7/httpd-e475fd1b-c5c8-4f31-9699-be89fff4a69c 
16/06/22 13:58:53 INFO spark.HttpServer: Starting HTTP Server 
16/06/22 13:58:53 INFO server.Server: jetty-8.y.z-SNAPSHOT 
16/06/22 13:58:53 INFO server.AbstractConnector: Started [email protected]:43525 
16/06/22 13:58:53 INFO util.Utils: Successfully started service 'HTTP file server' on port 43525. 
16/06/22 13:58:53 INFO spark.SparkContext: Added JAR file:/usr/local/spark/lib/spark-examples-1.6.1-hadoop2.6.0.jar at http://172.31.61.189:43525/jars/spark-examples-1.6.1-hadoop2.6.0.jar with timestamp 1466603933454 
16/06/22 13:58:53 INFO client.RMProxy: Connecting to ResourceManager at ip-172-31-60-166.ec2.internal/172.31.60.166:8032 
16/06/22 13:58:53 INFO yarn.Client: Requesting a new application from cluster with 2 NodeManagers 
16/06/22 13:58:53 INFO yarn.Client: Verifying our application has not requested more than the maximum memory capability of the cluster (11520 MB per container) 
16/06/22 13:58:53 INFO yarn.Client: Will allocate AM container, with 896 MB memory including 384 MB overhead 
16/06/22 13:58:53 INFO yarn.Client: Setting up container launch context for our AM 
16/06/22 13:58:53 INFO yarn.Client: Setting up the launch environment for our AM container 
16/06/22 13:58:53 INFO yarn.Client: Preparing resources for our AM container 
16/06/22 13:58:54 ERROR spark.SparkContext: Error initializing SparkContext. 
org.apache.hadoop.security.AccessControlException: Permission denied: user=jungd, access=WRITE, inode="/user/jungd/.sparkStaging/application_1466437015320_0014":hdfs:hadoop:drwxr-xr-x 
at   org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:319) 
at  org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:292) 
at  org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:213) 

It не имеет значения, отправляя с использованием режима развертывания кластера. Этот пользователь является локальным пользователем на «внешнем» экземпляре EC2 (у нас есть несколько учетных записей разработчиков), который не существует на главном или подчиненном кластере (и даже локально, домашние каталоги пользователей находятся в/home, not/пользователь).

Я затрудняюсь выяснить, что происходит. Любая помощь очень ценится.

+0

Обновление: похоже, что он работает как ожидалось, если я создаю локального пользователя «hadoop» и запускаю в качестве этого пользователя функцию spark-submit или pyspark, хотя это не то, что мы хотим. – DavidJ

ответ

0

Несколько вещей, необходимых для запуска искрового отправить из машины, кроме мастера:

  • пользователей, соответствующие пользователям подавших должны быть созданы в HDFS
    • , например, с помощью Hue консоли или напрямую, создав папки/user/NAME и установив разрешения с помощью инструмента командной строки hadoop fs на ведущем устройстве
  • Все необходимые порты между внешней машиной и ведущее устройство кластера & должно быть открыто в обоих направлениях (или, альтернативно, весь трафик TPC).
    • Если в среде AWS EC2 EMR группы безопасности машины, ведущий и ведомые устройства могут разрешать из других групп явно.

Он также может быть необходимо создать пользователей в качестве учетных записей Linux на хозяина.

Смежные вопросы