我将使用spark-sql cli来替换hive cli shell,并按照命令运行spark-sql cli,(我们正在使用纱线Hadoop集群,hive-site.xml已经复制到/ CONF)
&GT。火花SQL 然后shell打开并正常工作,
我执行类似的查询,
./ spark-sql>通过devicetype从mytable group中选择devicetype,count(*);
命令执行成功,结果正确。但我注意到性能非常慢。
从火花作业ui,http://myhost:4040,我注意到只有1个Executor被标记使用,所以这可能是原因。
我尝试修改spark-sql脚本并在exec命令中添加-num-executors 500,但它没有帮助。
所以任何人都可以帮忙解释原因?
感谢。
答案 0 :(得分:1)
请参阅文档:http://spark.apache.org/docs/latest/sql-programming-guide.html
spark-sql
是一个只在本地模式下工作的SQL CLI工具,这就是为什么你只看到一个执行器
如果您想拥有SQL的集群版本,则应该启动thriftserver
并使用beeline
工具(与Spark一起使用)通过JDBC连接到它。您可以在官方文档http://spark.apache.org/docs/latest/sql-programming-guide.html
开始:
export HIVE_SERVER2_THRIFT_PORT=<listening-port>
export HIVE_SERVER2_THRIFT_BIND_HOST=<listening-host>
./sbin/start-thriftserver.sh \
--master <master-uri> \
...
连接:
./bin/beeline
beeline> !connect jdbc:hive2://<listening-host>:<listening-port>
答案 1 :(得分:0)
直线
\> !connect jdbc:hive2://localhost:10002/default;transportMode=http;httpPath=cliservice
10002是我的火花节俭服务器的端口。
将其更改为您的。 你可以从你的节俭日志中找到你的节俭港口。