Как подключиться к кусту, установленному на экземпляре ec2, из клея aws? - PullRequest
0 голосов
/ 27 марта 2019

Я хочу получить доступ к мета-хранилищу улья, выполнив задание на свечу в AWS Glue Это требует от меня установки ip экземпляра улья и доступа к нему. С моего местного работает, но не с AWS Glue.

Я попытался получить доступ к Hive, используя следующий фрагмент кода:

spark_session = (
    glueContext.spark_session
    .builder
    .appName('example-pyspark-read-and-write-from-hive')
    .config(
        "hive.metastore.uris",
        "thrift://172.16.12.34:9083",
        conf=SparkConf()
    )
    .enableHiveSupport()
    .getOrCreate()
)

Я также просмотрел различные документы, но никто не мог сказать, как мне подключиться к экземпляру ec2 через определенный порт.

Код:

import sys

from awsglue.context import GlueContext
from awsglue.job import Job
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark import SparkConf, SparkContext
from pyspark.conf import SparkConf
from pyspark.context import SparkConf, SparkContext
from pyspark.sql import (DataFrameReader, DataFrameWriter, HiveContext,
                         SparkSession)

"""
SparkSession ss = SparkSession
.builder()
.appName(" Hive example")
.config("hive.metastore.uris", "thrift://localhost:9083")
.enableHiveSupport()
.getOrCreate();
"""
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
sc = SparkContext()
glueContext = GlueContext(sc)
spark_session = (
    glueContext.spark_session
    .builder
    .appName('example-pyspark-read-and-write-from-hive')
    .config(
        "hive.metastore.uris",
        "thrift://172.16.12.34:9083",
        conf=SparkConf()
    )
    .enableHiveSupport()
    .getOrCreate()
)
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
data = [('First', 1), ('Second', 2), ('Third', 3), ('Fourth', 4), ('Fifth', 5)]
df = spark_session.createDataFrame(data)
df.write.saveAsTable('example_2')
job.commit()

Я ожидаю получить таблицу, написанную в Hive, но вместо этого получаю следующую ошибку от Glue:

An error occurred while calling o239.saveAsTable. No Route to Host from ip-172-31-14-64/172.31.14.64 to ip-172-31-15-11.ap-south-1.compute.internal:8020 failed on socket timeout exception: java.net.NoRouteToHostException: No route to host; 
...