我有一个启用了 SearchGuard 的 ElasticSearch 集群。我正在尝试使用 Spark 将数据推送到 ElasticSearch 中。
操作系统 - CentOS7 ElasticSearch 版本 - 6.4.1 Spark - 2.3.0 Java - openjdk-1.8.0 Yarn - 2.7.3 HDFS - 2.7.3 HDP - 2.6.5.0
ElasticSearch 已通过 PEM 密钥使用 SearchGuard 进行保护。chain-ca.pem 已添加到所有 Spark 节点上的信任库中。我已在 PySpark 代码中添加了所需的配置。
es_write_conf = {
"es.nodes" : "esm1,esm2,esm3",
"es.port" : "9200",
"es.resource" : str(topic+"_"+year_week+"/"+topic),
"es.input.json": "true",
"es.nodes.ingest.only": "true",
"es.net.http.auth.user": "admin",
"es.net.http.auth.pass": "admin",
"es.net.ssl":"true",
"es.net.ssl.cert.allow.self.signed":"true",
"es.net.ssl.keystore.location":"file:///usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/lib/security/cacerts",
"es.net.ssl.keystore.pass":"changeit"
}
Run Code Online (Sandbox Code Playgroud)
我在 hdfs 用户上使用 Spark-submit 运行此命令:
spark-submit --master local[4] --jars /home/hdfs/jars/elasticsearch-hadoop-6.4.1.jar,/home/hdfs/jars/spark-streaming-kafka-0-8-assembly_2.11-2.3.1.jar /home/hdfs/code/ingestion.py demo_machine001
Run Code Online (Sandbox Code Playgroud)
产生了这个错误。 …