前言:在实际大数据分析项目中,使用 SparkSQL 时,往往启动一个 SparkThriftserver 服务,分配较多资源(Executor数目和内存、CPU),不同的用户启动客户端比如 beeline 连接它,编写SQL语句分析数据,方便集中管理。
至于关系嘛,如图所示:注意上方“红框的 hiveserver2 架构”和“绿框的 Spark Thriftserver 架构”中间有一些东西是重叠共用的。
首先需要启动 hive 的 metastore 服务。
nohup /export/server/hive/bin/hive --service metastore 2>&1 > /tmp/hive-metastore.log &metastore 进程会占用 9083 端口。Spark Thriftserver 不需要 启动hiveserver2 进程。启动Spark的thriftserver服务。注意不要选取10000端口,因为10000端口通常作为 hiveserver2 进程的端口。比如选用10001如果在企业中可以申请很多资源。比如向 yarn 申请200C:
/export/server/spark/sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=10001 --hiveconf hive.server2.thrift.bind.host=node1 --master yarn --num-executors 50 --executor-cores 4 --executor-memory 12G此处如果自测练习,就少一点:
SPARK_HOME=/export/server/spark $SPARK_HOME/sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=10001 --hiveconf hive.server2.thrift.bind.host=node1.itcast.cn --master local[2]启动客户端 beeline 去连接上面的 Spark Thriftserver。进入 beeline 客户端:
/export/server/spark/bin/beeline #进入后 !connect jdbc:hive2://node1:10001连接数据库需要用户名和密码,就是 Linux 的用户名和密码。如果不输入用户名和密码,则是以匿名用户 anonymous 登录的,后期有时写表数据时会权限不足。最好用 root 和密码登录,不会有权限限制问题。也可以在 Pycharm 中配置客户端连接 Spark 的 thriftserver 服务。如何查看mestore进程是否占用了9083端口号?
先[ jps ]或[ ps -ef | grep 关键词] 得到进程号。再 netstat -antp | grep 进程号,返回端口号。



