在集群中访问Kudu的方式有多种,可以通过Impala使用JDBC的方式,也可以通过Kudu提供的Client API方式,参考Fayson前面的文章《如何使用Java API访问CDH的Kudu》和《如何使用Java代码访问Kerberos环境下的Kudu》。在做Spark开发时也有访问Kudu的需求,Kudu API访问是一种方式,这里Fayson使用KuduContext实现对Kudu的读写操作。
因为业务需要,雪球数据团队基于HDP 3.1.5(Hadoop 3.1.1+Hive 3.1.0+Tez 0.9.1)搭建了一个新的集群,HDP 3.1.5默认使用Hive3 on Tez作为ETL计算引擎,但是在使用Hive3 on Tez中,我们遇到很多问题:
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 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
Spark是在借鉴了MapReduce之上发展而来的,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷。Spark主要包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件。
在一个CDSW环境中,由于其中一个租户经常提交大型Spark作业将YARN上租户所在的资源池资源用到95%以上,从而影响到同一租户下其他用户提交作业的运行。这种情况下我们没办法直接找到这些大型作业的实际提交人,是因为我们在为CDSW做多租户配置的时候会将登录CDSW的某一批用户统一绑定到同一个租户下(这样设计的目的主要是为了简化YARN的租户管理,而不用为每个用户创建资源池队列),所以导致在YARN的界面上看到的都是同一个租户,而无法对应到实际CDSW的用户以及这个人提交的大型作业。本文主要描述通过修改Spark的配置来将作业的实际提交人的用户名展示到Spark UI,非CDSW的YARN的多租户管理也会碰到类似问题。
越来越多的用户使用Spark对接HBase,对接HBase的方式有多种,通过HBase-client API实现,也有直接Spark On HBase的方式实现,比较常见的有华为的Spark-SQL-on-HBase,Hortonworks的Apache HBase Connector和Cloudera提供的SparkOnHBase,目前Cloudera的SparkOnHBase已提交的HBase的主干版本。本篇文章Fayson主要在Spark2环境下使用Cloudera的SparkOnHBase访问HBase。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 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
在Spark2代码中使用hbase-spark依赖包访问HBase时,编写的代码无法完成编译,在编译的过程中提示如下错误:
VisualVM是我们平时最常用的Java应用监控和性能分析工具,功能很丰富。我们有时会利用它来监控Spark作业,主要是Driver和Executor的运行情况。VisualVM支持jstatd和JMX两种方式连接远程JVM,本文简单叙述一下方法。
在CDH集群中spark1和Spark2版本可以共存,为了更好的体验及使用Spark新版本的API或修改已知旧版本的bug,现需要将CDH集群中Spark2的版本升级至Spark2.2最新,本篇文章主要介绍如何通过Cloudera Manager将Spark2.1版本升级至Spark2.2。
Fayson在前面的文章中介绍过什么是Spark Thrift,Spark Thrift的缺陷,以及Spark Thrift在CDH5中的使用情况,参考《0643-Spark SQL Thrift简介》。
目前Oozie 的 SparkAction 仅支持Spark1.6, 而并不支持Spark2, 这是 CDH Spark2已知的局限性(https://www.cloudera.com/documentation/spark2/latest/topics/spark2_known_issues.html#ki_oozie_spark_action
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH集群外配置非Kerberos环境的Gateway节点》、《如何在CDH集群外配置Kerberos环境的GateWay节点》和《如何在CDH集群外配置非Kerberos环境的Spark2和Kafka客户端环境》,配置Gateway中并未提
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面的文章《如何在CDH集群外配置Kerberos环境的GateWay节点》和《如何在CDH集群外配置非Kerberos环境的GateWay节点》中Fayson介绍了在不将集群外节点添加到CM管理中实现各组件客户端访问CDH集群功能,本篇文章Fayson主要在前文章实现的基础上配
在前面的文章Fayson介绍了一些关于Spark2Streaming的示例如《Spark2Streaming读Kerberos环境的Kafka并写数据到HBase》、《Spark2Streaming读Kerberos环境的Kafka并写数据到Kudu》及《Spark2Streaming读Kerberos环境的Kafka并写数据到Hive》。本篇文章Fayson主要介绍如何使用Spark2Streaming访问非Kerberos环境的Kafka并将接收到的数据写入HBase。
使用Hue可以方便的通过界面制定Oozie的工作流,支持Hive、Pig、Spark、Java、Sqoop、MapReduce、Shell等等。Spark?那能不能支持Spark2的呢,接下来本文章就主要讲述如何使用Hue创建Spark1和Spark2的Oozie工作流。
大部分用户在使用CDH集群做Spark开发的时候,由于开发环境的JDK版本比CDH集群默认使用的JDK1.7.0_67-cloudera版本新,可能会出现Spark代码依赖的Java API不兼容问题,解决这个问题方法有两个:一是升级CDH集群的JDK版本;二是指定Spark运行环境JDK版本。本文章主要讲述如何通过Cloudera Manager来指定Spark1和Spark2的运行环境(包含JDK环境、Spark Local Dir等的配置)。
前面Fayson介绍了多种方式在CDH集群外的节点向集群提交Spark作业,文章中均采用Spark1来做为示例,本篇文章主要介绍如何是用Oozie API向Kerberos环境的CDH集群提交Spark2作业。
在使用PySpark的SparkSQL读取HDFS的文本文件创建DataFrame时,在做数据类型转换时会出现一些异常,如下:
Apache负载均衡配置详解,首先需要配置apache的反向代理,可以参考文章: apache反向代理配置
在CDH集群中提交Spark作业,大家也都知道Spark的Driver和Executor之间通讯端口是随机的,Spark会随选择1024和65535(含)之间的端口,因此在集群之间不建议启用防火墙。本篇文章Fayson主要介绍如何指定Spark2作业中Driver和Executor使用指定范围内的端口进行通讯。
在我CDH5.11集群中,默认安装的spark是1.6版本,这里需要将其升级为spark2.x版本。经查阅官方文档,发现spark1.6和2.x是可以并行安装的,也就是说可以不用删除默认的1.6版本,可以直接安装2.x版本,它们各自用的端口也是不一样的。我尝试了安装spark2.0版本和spark2.1版本,均告成功。这里做一下安装spark2.1版本的步骤记录。
Jupyter Notebook是一个Web应用程序,允许你创建和分享,包含实时的代码,可视化和解释性文字。常用于数据的清洗和转换、数值模拟、统计建模、机器学习和更多,支持40多种语言。python ,R,go,scala等。Jupyter Notebook是Python中的一个包,在Fayson前面的文章《如何在CDH集群上部署Python3运行环境及运行Python作业》介绍了在集群中部署Anaconda,该Python环境自带了Jupyter的包。本篇文章Fayson主要介绍如何在非安全的CDH集群中部署Jupyter Notebook并与Spark2集成。
在前面的文章《CDH5.13和CM5.13的新功能》中Fayson介绍过Cloudera发布CDH5.13时,同时也发布了Kafka3.0版本(即社区0.11版),目前社区最新版本为1.0。由于Kafka3.0和Spark2.2需要JDK8的支持,所以在升级Kafka3.0和Spark2.2版本时必须先升级JDK版本,可以参考《如何将CDH集群JAVA升级至JDK8》和《如何将Kerberos环境下CDH集群JAVA升级至JDK8》,本文Fayson主要介绍在CDH集群中如何升级Kakfa3.0和Spark2.2。
工作流的执行命令参考博客:https://www.jianshu.com/p/6cb3a4b78556,也可以键入oozie help查看帮助
Fayson在前一篇文章《如何在非安全的CDH集群中部署Jupyter并集成Spark2》中介绍了Jupyter Notebook的部署与Spark2集成。Jupyter提供的类似单机版Web服务,不能供给多个用户使用,对于个人用户可以满足需求,对于企业用户则相对麻烦。本篇文章Fayson主要介绍如何使用JupyterHub部署支持多用户的Jupyter Notebook服务并与集群的Spark2集成。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了在Kerberos环境下《Spark2Streaming读Kerberos环境的Kafka并写数据到Kudu》,本篇文章Fayson主要介绍如何使用Spark2Streaming访问Kerberos环境的Kafka并将接收到的Kafka数据写入HBa
在前面的文章Fayson介绍了在Kerberos环境下《Spark2Streaming读Kerberos环境的Kafka并写数据到Kudu》,本篇文章Fayson主要介绍如何使用Spark2 Streaming访问非Kerberos环境的Kafka并将接收到的数据写入Kudu。
hue是一个Apache Hadoop ui系统,本篇文章介绍如何使用hue创建一个ozzie的pyspark action的workflow, 该workflow仅包含一个spark action。注意,本文使用的是python语言的pyspark。 编写一个python操作spark的程序。 demo.py from pyspark.sql import SparkSession spark = SparkSession.builder.enableHiveSupport().appName( "de
在CDH的默认安装包中,是不包含Kafka,Kudu和Spark2的,需要单独下载特定的Parcel包才能安装相应服务。本文档主要描述在离线环境下,在CentOS6.5操作系统上基于CDH5.12.1集群,使用Cloudera Manager通过Parcel包方式安装Kudu、Spark2和Kafka的过程。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面Fayson介绍了在Kerberos和非Kerberos环境下使用JAVA通过JDBC访问Hive和Impala《如何使用java代码通过JDBC连接Hive》和《如何使用java代码通过JDBC连接Impala》,本篇文章Fayson主要介绍如何在Kerberos环境下使
在CDSW中启动一个Session然后运行代码,第一次能够正常运行,在第一次运行完成后不关闭Session,在同一个Session中再次运行代码,此时就会出现报错,主要的报错信息为“Delegation Token can be issued only with kerberos or web authentication”,报错的截图如下:
问题导读 1.你认为spark该如何入门? 2.你认为spark入门编程需要哪些步骤? 3.本文介绍了spark哪些编程知识?
在CDH5.12.1集群中,默认安装的spark是1.6版本,这里需要将其升级为spark2.1版本。经查阅官方文档,发现spark1.6和2.x是可以并行安装的,也就是说可以不用删除默认的1.6版本,可以直接安装2.x版本,它们各自用的端口也是不一样的。
继上一章介绍如何使用R连接Hive与Impala后,Fayson接下来讲讲如何在CDH集群中提交R的Spark作业,Spark自带了R语言的支持,在此就不做介绍,本文章主要讲述如何使用Rstudio提供的sparklyr包,向CDH集群的Yarn提交R的Spark作业。
前面Fayson有很多篇文章介绍CDH各个版本的安装部署,在安装部署的前置条件中说明需要在统一的操作系统版本进行部署。部分用户早期在RedHat7以下版本部署CDH集群,在后续集群扩容时使用了RedHat7版本的操作系统,对于这种跨操作系统安装部署或扩容CDH集群如何解决?本篇文章Fayson主要介绍如何跨操作系统扩容CDH集群。
打开hue.ini文件,找到【yarn_clusters】【default】,修改spark_history_server_url值。
在使用CDH集群中经常会有一些特定顺序的作业需要在集群中运行,对于需要多个作业顺序执行的情况下,如何能够方便的构建一个完整的工作流在CDH集群中执行,前面Fayson也讲过关于Hue创建工作流的一系列文章具体可以参考《如何使用Hue创建Spark1和Spark2的Oozie工作流》、《如何使用Hue创建Spark2的Oozie工作流(补充)》、《如何在Hue中创建Ssh的Oozie工作流》。本篇文章主要讲述如何使用Hue创建一个以特定顺序运行的Oozie工作流。本文工作流程如下:
这种方式需要先安装 docker-compose, docker-compose 的安装网上已经有非常多的资料,请自行安装即可
Fayson在前面文章《如何在非安全的CDH集群中部署Jupyter并集成Spark2》及《如何在非安全的CDH集群中部署多用户JupyterHub服务并集成Spark2》中介绍了Jupyter与JupyterHub的部署与Spark2集成。JupyterHub的用户默认是基于OS系统用户,对于用户的管理和维护都需要在服务器上进行操作不便于管理。本篇文章Fayson主要介绍在JupyterHub中如何与OpenLDAP服务集成。
在CDH集群中提交Spark作业,大家也都知道Spark的Driver和Executor之间通讯端口是随机的,Spark会随选择1024和65535(含)之间的端口,因此在集群之间不建议启用防火墙。在前面Fayson介绍了《如何指定Spark2作业中Driver和Executor使用指定范围内端口》,本篇文章Fayson主要介绍如何指定Spark1作业中Driver和Executor使用指定范围内的端口进行通讯。
前面的文章介绍了《Kerberos原理--经典对话》、《Kerberos基本概念及原理汇总》、《基于ambari的Kerberos安装配置》、《Windows本地安装配置Kerberos客户端》,已经成功安装了Kerberos KDC server,也在Ambari上启用了Kerberos,接下来我们再来研究一下如何使用Kerberos。
安装环境:CentOS-7.0.1708 安装方式:源码安装 软件:jdk-6u45-linux-x64.bin 下载地址:http://www.Oracle.com/technetwork/Java/javase/downloads/java-archive-downloads-javase6-419409.html
1.文档编写目的 在早些时间Cloudera已正式的发布CDS3《0814-基于CDP7.1.3的Spark3.0正式发布》。在CDP私有云基础上,Spark3服务与现有的Spark2服务共存,两个服务的配置不冲突,可以共用共一个Yarn服务。Spark History服务的端口是Saprk2的18088和Spark3的18089。CDS3.2在支持GPU的同时,也引入了RAPIDS Accelerator for Apache Spark来加速CDP集群上Apache Spark3的性能。本篇文章主要介绍
在前面的文章Fayson介绍了一些关于Spark2Streaming的示例如《Spark2Streaming读Kerberos环境的Kafka并写数据到HBase》、《Spark2Streaming读Kerberos环境的Kafka并写数据到Kudu》及《Spark2Streaming读Kerberos环境的Kafka并写数据到Hive》,本篇文章Fayson主要介绍如何使用Spark2Streaming访问Kerberos环境的Kafka并将接收到的Kafka数据逐条写入HDFS。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了一些关于SparkStreaming的示例《如何使用Spark Streaming读取HBase的数据并写入到HDFS》、《SparkStreaming读Kafka数据写HBase》和《SparkStreaming读Kafka数据写Kudu》以上文章
在CDH集群中是通过Hue中的Oozie来进行作业调度的,同样Oozie也支持多种调度Action。为了防止业务用户使用存在风险的Action(如:Shell Action可以通过编写Shell命令获取操OS的信息问题),现需要将Hue中部分存在风险的Action禁用,本篇文章主要介绍如何禁用Hue中Oozie的部分Action。
Fayson在前面的文章《0483-如何指定PySpark的Python运行环境》介绍了使用Spark2-submit提交时指定Python的运行环境。也有部分用户需要在PySpark代码中指定Python的运行环境,那本篇文章Fayson主要介绍如何在代码中指定PySpark的Python运行环境。
前面Fayson讲过《如何使用Hue创建Spark1和Spark2的Oozie工作流》和《如何使用Hue创建Spark2的Oozie工作流(补充)》,在创建Oozie工作流时会遇到需要登录到其它服务器上去执行脚本或命令,这个时候就会用到Oozie的Ssh Action。本文主要介绍如何创建Ssh Action的Oozie工作流。
领取专属 10元无门槛券
手把手带您无忧上云