Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在CDH中启用Spark Thrift

如何在CDH中启用Spark Thrift

作者头像
Fayson
修改于 2018-04-01 11:28:46
修改于 2018-04-01 11:28:46
6.1K1
举报
文章被收录于专栏:Hadoop实操Hadoop实操

1.文档编写目的


CDH 自带的Spark 不支持Spark Thrift,因为spark-assembly jar中缺少Hive thrift相关的依赖包,导致CDH用户没法使用JDBC的方式连接Spark并使用Spark SQL。Apache Spark 1.6之后spark-assembly jar 中包含了 Hive 相关的依赖包了,而恰好 CDH5.13 的 spark也是 1.6,所以可以直接使用Apache Spark 1.6 之后的spark-assembly jar替换CDH的。

本次测试选用的spark-assembly jar 包是Apache Spark1.6.3版本,而CDH中的Spark是1.6.0。本篇文章主要讲述如何在CDH中启用Spark Thrift。

  • 内容概述

1.部署spark-assembly Jar包

2.部署Spark ThriftServer启动和停止脚本

3.Spark ThriftServer启动与停止

4.总结

  • 测试环境

1.CM和CDH版本为5.13.0

2.采用root用户操作

  • 前置条件

1.Spark1.6.0 On Yarn模式

2.部署Spark-assembly Jar包


1.下载spark-1.6.3-bin-hadoop2.6.tgz,下载地址如下:

代码语言:txt
AI代码解释
复制
https://www.apache.org/dyn/closer.lua/spark/spark-1.6.3/spark-1.6.3-bin-hadoop2.6.tgz

2.将下载的spark-1.6.3-bin-hadoop2.6.tgz上传至集群的任意节点并解压,这里以cdh02节点为例

代码语言:txt
AI代码解释
复制
[root@cdh02 ~]# tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz 

3.将解压出来的spark-assembly-1.6.3-hadoop2.6.0.jar拷贝至CDH的jars目录

代码语言:txt
AI代码解释
复制
[root@cdh02 spark-1.6.3-bin-hadoop2.6]# scp /root/spark-1.6.3-bin-hadoop2.6/lib/spark-assembly-1.6.3-hadoop2.6.0.jar /opt/cloudera/parcels/CDH/jars/

4.替换CDH中spark默认的spark-assembly jar包

代码语言:txt
AI代码解释
复制
[root@cdh02 lib]# cd /opt/cloudera/parcels/CDH/lib/spark/lib
[root@cdh02 lib]# rm -rf spark-assembly-1.6.0-cdh5.13.0-hadoop2.6.0-cdh5.13.0.jar
[root@cdh02 lib]# ln -s ../../../jars/spark-assembly-1.6.3-hadoop2.6.0.jar spark-assembly-1.6.0-cdh5.13.0-hadoop2.6.0-cdh5.13.0.jar

5.将spark-assembly-1.6.3-hadoop2.6.0.jar包上传至HDFS目录

代码语言:txt
AI代码解释
复制
[root@cdh02 lib]# sudo -u spark hadoop fs -mkdir -p /user/spark/share/lib
[root@cdh02 lib]# sudo -u spark hadoop fs -put /opt/cloudera/parcels/CDH/jars/spark-assembly-1.6.3-hadoop2.6.0.jar /user/spark/share/lib
[root@cdh02 lib]# sudo -u spark hadoop fs -chmod 755 /user/spark/share/lib/spark-assembly-1.6.3-hadoop2.6.0.jar

6.在CM上对Spark进行配置,配置如下:

保存配置并重启Spark服务。

7.修改/etc/spark/conf/ classpath.txt文件在末尾增加如下内容

代码语言:txt
AI代码解释
复制
/opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/jars/spark-lineage_2.10-1.6.0-cdh5.13.0.jar

由于CDH5.11以后版本,Navigator2.10增加了Spark的血缘分析,所以这里需要添加spark-lineage_2.10-1.6.0-cdh5.13.0.jar包,否则连接Spark会报错找不到com.cloudera.spark.lineage.ClouderaNavigatorListener类。

3.部署Spark ThriftServer启动和停止脚本


1.拷贝Spark ThriftServer启动和停止脚本

将 spark-1.6.3-bin-hadoop2.6/sbin/目录下的 start-thriftserver.sh 和 stop-thriftserver.sh 脚本拷贝到/opt/cloudera/parcels/CDH/lib/spark/sbin目录下,并设置执行权限。

代码语言:txt
AI代码解释
复制
[root@cdh02 sbin]# scp start-thriftserver.sh stop-thriftserver.sh /opt/cloudera/parcels/CDH/lib/spark/sbin/
[root@cdh02 sbin]# chmod +x /opt/cloudera/parcels/CDH/lib/spark/sbin/*thriftserver.sh
[root@cdh02 sbin]# ll /opt/cloudera/parcels/CDH/lib/spark/sbin/

2.修改 load-spark-env.sh 脚本,这个脚本是启动 spark 相关服务时加载环境变量信息的

代码语言:txt
AI代码解释
复制
[root@ip-172-31-5-190 sbin]# cd /opt/cloudera/parcels/CDH/lib/spark/bin
[root@ip-172-31-5-190 bin]# pwd
/opt/cloudera/parcels/CDH/lib/spark/bin
[root@ip-172-31-5-190 bin]# 

将注释掉exec "$SPARK_HOME/bin/$SCRIPT""$@",因为在start-thriftserver.sh脚本中会执行这个命令

4.启动与停止Spark ThriftServer


1.启动Spark ThriftServer服务

代码语言:txt
AI代码解释
复制
[root@ip-172-31-5-190 sbin]# ./start-thriftserver.sh

检查端口是否监听

代码语言:txt
AI代码解释
复制
[root@ip-172-31-5-190 sbin]# netstat -an |grep 10000

注意:为了防止跟HiveServer2的10000端口冲突,可以自己修改Spark ThriftServer的启动端口。

通过Yarn查看

2.停止服务

代码语言:txt
AI代码解释
复制
[root@ip-172-31-5-190 sbin]# ./stop-thriftserver.sh 

检查端口是否已停止

5.测试Spark Thrift


1.使用beeline通过JDBC连接Spark,可以发现连接的是Spark SQL

代码语言:txt
AI代码解释
复制
[root@ip-172-31-5-190 ~]# beeline
beeline> !connect jdbc:hive2://ip-172-31-5-190:10000
Enter username for jdbc:hive2://ip-172-31-5-190:10000: hive
Enter password for jdbc:hive2://ip-172-31-5-190:10000:

2.运行SQL测试

代码语言:txt
AI代码解释
复制
0: jdbc:hive2://ip-172-31-5-190:10000> show tables;
0: jdbc:hive2://ip-172-31-5-190:10000> select count(*) from test_table;
0: jdbc:hive2://ip-172-31-5-190:10000> select * from test;
0: jdbc:hive2://ip-172-31-5-190:10000> select * from test_table;
0: jdbc:hive2://ip-172-31-5-190:10000> select count(test_table.s2) from test_table join test on test_table.s1=test.s1;

3.在Yarn的8088中查看Spark任务,可以发现都是通过Spark执行的。

6.总结


  • CDH默认不支持Spark Thrift,需要使用Spark原生的spark-assembly jar包替换CDH自带的jar包
  • CDH5.11版本以后,Navigator2.10增加了Spark的血缘分析,所以需要将spark-lineage的jar加载的Spark的运行环境。否则连接Spark会报错找不到com.cloudera.spark.lineage.ClouderaNavigatorListener类。CDH5.10或之前版本不用加载这个jar包。参考: https://www.cloudera.com/documentation/enterprise/release- notes/topics/cn_rn_known_issues.html#spark

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
你好,博主,请问spark2.2.0的怎么在CDH中启用Spark Thrift呢?
你好,博主,请问spark2.2.0的怎么在CDH中启用Spark Thrift呢?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql客户端
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH中启用Spark Thrift》,本篇文章Fayson主要介绍如何在Kerberos环境下的CDH集群中部署Spark1.6的Thrift Server服务和Spark SQL客户端。 内容概述 1.部署Spark Thrift 2.启
Fayson
2018/07/11
2K2
如何在Kerberos环境下的CDH集群部署Spark2.1的Thrift及spark-sql客户端
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH中启用Spark Thrift》和《如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql客户端》,本篇文章Fayson主要介绍如何在非Kerberos环境下的CDH集群中部署Spark2.1的T
Fayson
2018/07/11
2.2K0
0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
受前段时间Oracle官宣的从2019年1月之后将不再提供免费的的JDK商业版本的影响,Cloudera开始开发基于OpenJDK的Hadoop平台,参考Fayson之前的文章《Java收费,Hadoop怎么办?》。今年11月29日,Cloudera才发布不久的CDH5.16.1正式提供OpenJDK的支持,参考Fayson之前的文章《0466-CDH5.16.1和CM5.16.1的新功能》和《0486-如何将Kerberos的CDH5.16.1从Oracle JDK 1.8迁移至OpenJDK 1.8》。同时12月19日发布的《0487-CDH6.1的新功能》和《0488-Cloudera Manager6.1的新功能》,也开始支持OpenJDK。本文Fayson主要介绍如何将CDH6.1从Oracle JDK迁移到OpenJDK。
Fayson
2019/11/28
1.1K0
Hive2.2.0如何与CDH集群中的Spark1.6集成
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 在前面的文章Fayson介绍了《如何在CDH集群中安装Hive2.3.3》,本篇文章主要介绍Hive2.2.0服务如何与CDH集群中的Spark1.6集成,Hive on Spark对于Hive和Spark的版本都有严格的要求,Fayson本文使用的是Hive2.2.0版本做测试,具体版本的
Fayson
2018/07/12
1.3K0
如何在Kerberos环境下的CDH集群部署Spark2.1的Thrift及spark-sql客户端
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH中启用Spark Thrift》,《如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql客户端》,《如何在Kerberos环境下的CDH集群部署Spark2.1的Thrift及spark-sql
Fayson
2018/07/11
2.6K7
如何使用Hue创建Spark1和Spark2的Oozie工作流
使用Hue可以方便的通过界面制定Oozie的工作流,支持Hive、Pig、Spark、Java、Sqoop、MapReduce、Shell等等。Spark?那能不能支持Spark2的呢,接下来本文章就主要讲述如何使用Hue创建Spark1和Spark2的Oozie工作流。
Fayson
2018/03/29
5.1K1
如何使用Hue创建Spark1和Spark2的Oozie工作流
如何在CDH集群外配置Kerberos环境的Gateway节点
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH集群外配置非Kerberos环境的Gateway节点》,本篇文章主要介绍如何在CDH集群外配置Kerberos环境的Gateway节点。 内容概述 1.部署环境说明 2.部署Gateway节点及测试 3.总结 测试环境 1.CM和CDH
Fayson
2018/07/12
1.9K0
如何在CDH集群启用Kerberos
本文档中将KDC服务安装在Cloudera Manager Server所在服务器上(KDC服务可根据自己需要安装在其他服务器)
Fayson
2018/03/29
6.9K3
如何在CDH集群启用Kerberos
如何在CDH未启用认证的情况下安装及使用Sentry
CDH平台中的安全,认证(Kerberos/LDAP)是第一步,授权(Sentry)是第二步。如果要启用授权,必须先启用认证。但在CDH平台中给出了一种测试模式,即不启用认证而只启用Sentry授权。但强烈不建议在生产系统中这样使用,因为如果没有用户认证,授权没有任何意义形同虚设,用户可以随意使用任何超级用户登录HiveServer2或者Impala,并不会做密码校验。注:本文档仅适用于测试环境。
Fayson
2018/03/29
8.7K0
如何在CDH未启用认证的情况下安装及使用Sentry
0486-如何将Kerberos的CDH5.16.1从Oracle JDK 1.8迁移至OpenJDK 1.8
受前段时间Oracle官宣的从2019年1月之后将不再提供免费的的JDK商业版本的影响,Cloudera开始开发基于OpenJDK的Hadoop平台,参考Fayson之前的文章《Java收费,Hadoop怎么办?》。今年11月29日,Cloudera才发布不久的CDH5.16.1正式提供OpenJDK的支持,参考Fayson之前的文章《0466-CDH5.16.1和CM5.16.1的新功能》。本文Fayson主要介绍如何将CDH从Oracle JDK迁移到OpenJDK。
Fayson
2018/12/29
1.1K0
0645-6.2.0-为什么我在CDH6上使用Spark2.4 Thrift失败了
Fayson在前面的文章中介绍过什么是Spark Thrift,Spark Thrift的缺陷,以及Spark Thrift在CDH5中的使用情况,参考《0643-Spark SQL Thrift简介》。
Fayson
2019/06/04
3.4K0
0645-6.2.0-为什么我在CDH6上使用Spark2.4 Thrift失败了
CentOS6.5安装CDH5.13
Cloudera前一段时间发布了CDH5.13版本,5.13的新功能可以参考前一篇文章CDH5.13和CM5.13的新功能,本文章主要讲述如何在CentOS6.5安装CDH5.13,集群安装的准备工作大家可以参考之前的文章CDH安装前置准备,请务必保证安装前已经仔细阅读了CDH安装前置准备,并按照文档所述做好了前置准备,包括基础环境准备相关如yum源,ntp配置等。
Fayson
2018/03/29
2.7K1
CentOS6.5安装CDH5.13
如何禁用CDH集群Kerberos
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- Fayson在前面的文章介绍了如何为CDH集群启用Kerberos,在集群启用Kerberos后,会对现有环境的部分代码做改造,有些人觉得使用起来不方便,想取消Kerberos。本篇文章Fayson主要介绍如何禁用CDH集群的Kerberos及禁用后对各组件服务的测试。 注意:本文
Fayson
2018/07/12
5.6K0
如何使用Oozie API接口向Kerberos环境的CDH集群提交Spark作业
在CDH集群外的节点向集群提交Spark作业的方式有多种,前面Fayson介绍了Livy相关的文章主要描述如何在集群外节点通过RESTful API接口向CDH集群提交Spark作业以及《如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业》,本篇文章主要介绍使用Oozie的API接口向Kerberos集群提交Spark作业。
Fayson
2018/03/29
2K0
如何在CDH中安装Kudu&Spark2&Kafka
在CDH的默认安装包中,是不包含Kafka,Kudu和Spark2的,需要单独下载特定的Parcel包才能安装相应服务。本文档主要描述在离线环境下,在CentOS6.5操作系统上基于CDH5.12.1集群,使用Cloudera Manager通过Parcel包方式安装Kudu、Spark2和Kafka的过程。
Fayson
2018/03/29
5.9K0
如何在CDH中安装Kudu&Spark2&Kafka
如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业
在CDH集群外的节点向集群提交Spark作业的方式有多种,前面Fayson介绍了Livy相关的文章主要描述如何在集群外节点通过RESTful API接口向CDH集群提交Spark作业,本篇文章我们借助于oozie-client的API接口向非Kerberos集群提交Spark作业。
Fayson
2018/03/30
1.5K0
如何使用Beeline连接Impala
Beeline是HiveServer2提供的一个新的命令行工具,基于SQLLine CLI的JDBC客户端。Beeline有两种模式:嵌入和远程模式。嵌入模式类似于运行Hive CLI,而远程模式可以通过thrift连接。支持连接Hive、MySQL、Oracle、Impala等。本篇文章主要讲述如何使用Beeline连接Impala。
Fayson
2018/03/29
5K0
如何使用Beeline连接Impala
如何在启用Sentry的CDH集群中使用UDF
在前面的文章Fayson介绍过UDF的开发及使用《如何在Hive&Impala中使用UDF》,大多数企业在使用CDH集群时,考虑数据的安全性会在集群中启用Sentry服务,这样就会导致之前正常使用的UDF函数无法正常使用。本篇文章主要讲述如何在Sentry环境下使用自定义UDF函数。
Fayson
2018/03/29
4K5
如何在启用Sentry的CDH集群中使用UDF
如何在CDH启用Kerberos的情况下安装及使用Sentry(一)
本文档主要讲述如何在启用Kerberos的CDH集群中安装配置及使用Sentry。
Fayson
2018/03/29
3.5K2
如何在CDH启用Kerberos的情况下安装及使用Sentry(一)
如何修改Kerberos的CDH集群的HOSTNAME
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在集群安装初期由于未规范集群HOSTNAME,带来集群管理的不便,现需要将CDH集群的HOSTNAME统一规范化,在修改HOSTNAME的过程中需要注意什么?本篇文章Fayson主要介绍如何修改Kerberos环境下的CDH集群的HOSTNAME。修改集群所有主机的hostna
Fayson
2018/07/12
1.5K0
推荐阅读
相关推荐
如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql客户端
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档