У меня кластер AWS EMR со Spark. Я могу подключиться к нему (искра):
- из главного узла после SSHing в него
- из другого кластера AWS EMR
Но НЕ МОЖЕТ подключиться к нему:
- с моей локальной машины (macOS Mojave)
- от не-EMR машин, таких как Метабаза и Redash
Я прочитал ответы на этот вопрос . Я проверил, что права доступа к папкам и дисковое пространство в порядке на всех узлах. Я предполагаю, что сталкиваюсь с подобной проблемой, о которой Джеймс Вежба просит в комментариях. Однако мне не хватает репутации, чтобы добавить туда комментарий. Кроме того, это может быть другой проблемой, учитывая, что она специфична для AWS EMR.
После SSHing подключение к главному узлу работает нормально.
# SSHed to master node
$ ssh -i ~/identityfile hadoop@ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com
# on master node
$ /usr/lib/spark/bin/beeline -u 'jdbc:hive2://localhost:10001/default'
# it connects fine and I can run commands, for e.g., 'show databases;'
# Beeline version 1.2.1-spark2-amzn-0 by Apache Hive
Соединение с этим узлом также работает нормально с главного узла другого кластера EMR.
Однако соединение не работает с моей локальной машины (macOS Mojave), Метабаза и Redash .
Моя локальная машина:
# installed hive (for beeline)
$ brew install hive
# Beeline version 3.1.1 by Apache Hive
# connect directly
# I have checked that all ports are open for my IP
$ beeline -u 'jdbc:hive2://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:10001/default'
# ERROR: ConnectException: Operation timed out
#
# this connection timeout probably has something to do with spark accepting only localhost connections
# I have allowed all the ports in AWS security group for my IP
# connect via port forwarding
# open a port
$ ssh -i ~/identityfile -Nf -L 10001:localhost:10001 hadoop@ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com
$ beeline -u 'jdbc:hive2://localhost:10001/default'
# Failed to connect to localhost:10001
# Required field 'client_protocol' is unset!
$ beeline -u 'jdbc:hive2://localhost:10001/;transportMode=http'
# org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response
У меня настроена метабаза и Redash в ec2.
метабаза & rarr; подключиться с помощью источника данных Spark SQL & rarr; результаты в
java.sql.SQLException: org.apache.spark.SparkException: java.io.IOException: Failed to create local dir in /mnt/tmp/blockmgr*
Redash & rarr; подключиться с помощью источника данных Hive & rarr; приводит к той же ошибке.