Spark中ThriftServer、HiveServer2、MetaStore、Beeline之间的关系

前言:在实际大数据分析项目中,使用 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 进程号,返回端口号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹长大大

客官,赏个银子吧,别下次一定了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值