Как передать задание pyspark с локального компьютера в кластер Yarn / Hadoop, запущенный на экземпляре AWS EC2? - PullRequest
0 голосов
/ 20 февраля 2019

Я создал экземпляр AWS EC2 с запущенным на нем Hadoop-2.7.3 с большинством конфигураций по умолчанию в * -site.xml файлах.В моем файле core-site.xml есть только следующие записи:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>localhost:8020</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/tmp/hadoop-2.7.3</value>
        </property>
</configuration>

и другие, также имеющие похожие записи, я запускаю все на портах по умолчанию.

Теперь я реализовал один базовый код pyspark[на моем локальном компьютере], который я хочу запустить на YARN, присутствующем в моем экземпляре AWS EC2, а также я хочу выполнить определенную обработку данных, присутствующих в HDFS на том же узле.

Я настроил Hadoop на своемлокальный компьютер, использующий winutils.exe, также скачал spark-2.2.0-bin-hadoop2.7 и правильно установил env.переменные для HADOOP_HOME, SPARK_HOME, HADOOP_CONF_DIR [указывающие на core-site.xml и hdfs-site.xml, загруженные из данного экземпляра EC2, также я добавил Global DNS в запись core-site.xml для fs.defaultFS вместо локального хоста],Когда я пытаюсь выполнить следующий код:

spark = SparkSession.builder.master("yarn").appName("myappName").getOrCreate()
df = spark.read.format("csv").option("inferSchema", "true").option("sep", sep).option("header", header).load("hdfs://my.ec2.global.dns.ip:8020/test/data.csv")
print("extractedDF schema : ",extractedDF.printSchema())

с использованием spark-submit с моего локального компьютера:

spark-submit --py-files ../dependencies.zip ProcessingJob.py

Он не подключается к моему экземпляру EC2 и выдает ошибку вроде:

my.ec2.ip:8020 failed on connection exception: java.net.ConnectException: Connection refused: no further information; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

Я могу просматривать все файлы с помощью namenode:

my.ec2.global.dns.ip:50070

Кроме того, я сохранил все порты и доступ к своему экземпляру из любого места для TCP, ICMP,HTTP отовсюду.

Я не уверен, что мне здесь не хватает.

Мне пригодится любая краткая справка.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...