Pyspark - считывает данные из эластичного поискового кластера на EMR - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь прочесть данные изasticsearch из pyspark.В Spark я использовал apiasticsearch-hadoop api.Кластер es находится на aws emr, для входа в который требуются учетные данные. Мой скрипт выглядит следующим образом:

from pyspark import SparkContext, SparkConf sc.stop() 
conf = SparkConf().setAppName("ESTest") sc = SparkContext(conf=conf) 
es_read_conf = { "es.host" : "vhost", "es.nodes" : "node", "es.port" : "443",
"es.query": '{ "query": { "match_all": {} } }',
"es.input.json": "true", "es.net.https.auth.user": "aws_access_key", 
"es.net.https.auth.pass": "aws_secret_key", "es.net.ssl": "true", 
"es.resource" : "index/type", "es.nodes.wan.only": "true" 
}

es_rdd = sc.newAPIHadoopRDD( inputFormatClass="org.elasticsearch.hadoop.mr.EsInputFormat", 
keyClass="org.apache.hadoop.io.NullWritable", 
valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable", conf=es_read_conf)

Pyspark продолжает выдавать ошибку:

py4j.protocol.Py4JJavaError:Произошла ошибка при вызове z: org.apache.spark.api.python.PythonRDD.newAPIHadoopRDD.

: org.elasticsearch.hadoop.rest.EsHadoopInvalidRequest: [HEAD] для [index] не удалось;servernode: 443] вернул [403 | Forbidden:]

Я проверил все, что имело смысл, кроме записей о пользователях и паролях, будут ли работать здесь ключ доступа и секретный ключ aws?Мы не хотим использовать пользователя консоли и пароль здесь в целях безопасности.Есть ли другой способ сделать то же самое?

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