# MapReduce服务 MRS > 企业级大数据集群云服务 ## 开发指南(LTS版) - [MRS组件应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010000.md): MRS是企业级大数据存储、查询、分析的统一平台,能够帮助企业快速构建海量数据信息处理系统,通过对海量信息数据的分析挖掘,发现全新价值点和企业商机。MRS提供了各组件的常见业务场景样例程序,开发者用户可基于样例工程进行相关数据应用的开发与编译,样例工程依赖的jar包直接通过华为云开源镜像站下载,其他社区开源jar包可从各Maven公共仓库下 - [HBase访问多ZooKeeper场景安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010001.md): 在同一个客户端进程内同时访问FusionInsight ZooKeeper和第三方的ZooKeeper时,为了避免访问连接ZooKeeper认证冲突,提供了样例代码使HBase客户端访问FusionInsight ZooKeeper和客户应用访问第三方ZooKeeper。以下为“src/main/resources”目录下提供的与认证相关 - [获取MRS应用开发样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010002.md): MRS样例工程构建流程包括三个主要步骤:下载样例工程的Maven工程源码和配置文件,请参见获取MRS样例工程。配置华为镜像站中SDK的Maven镜像仓库,请参见配置华为开源镜像仓。根据用户自身需求,构建完整的Maven工程并进行编译开发。MRS样例工程下载地址为https://github.com/huaweicloud/huaweicl - [HBase](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010005.md): 使用MRS集群内的ZooKeeper包“zookeeper*.jar”。使用exclusions排除掉hbase-client里面的zookeeper。 - [HDFS](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010006.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [Kafka](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010007.md): Kafka不建议使用开源版本的包。 - [Spark](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010008.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [MRS组件jar包版本与集群对应关系说明](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010009.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [MRS组件应用安全认证说明](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_020001.md): 开启了Kerberos认证的安全模式集群,进行应用开发时需要进行安全认证。使用Kerberos的系统在设计上采用“客户端/服务器”结构与AES等加密技术,并且能够进行相互认证(即客户端和服务器端均可对对方进行身份认证)。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。应用客户端(Ap - [准备MRS应用开发用户](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_020002.md): 开发用户用于运行样例工程。进行不同服务的组件开发时,需要赋予不同的用户权限。填写角色的名称,例如developrole,单击“确定”保存角色。参考如何判断某个服务是否使用了Ranger鉴权,确认服务是否启用了Ranger鉴权?是,执行3。否,编辑角色,根据服务的权限控制类别添加业务开发时需要的权限,参见表1。权限列表服务所需添加权限HDF - [Flink应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050002.md): Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。Flink技术栈如图1所示。Flink - [Flink应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050004.md): Flink开发流程参考如下步骤: - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果使用Linux环境调测程序,需在准备安装集群客户端的Linux节点并获取相关配置文件。在节点中安装客户端,例如客户端安装目录为“/opt/hadoopclient”。客户端安装可参考配置Flink应用安全认证 - [导入并配置Flink样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050008.md): Flink针对多个场景提供样例工程,包含Java样例工程和Scala样例工程等,帮助客户快速学习Flink工程。针对Java和Scala不同语言的工程,其导入方式相同。以下操作步骤以导入Java样例代码为例。操作流程如图1所示。在安全模式下,获取“src\flink-examples”下的样例工程flink-examples-securi - [配置Flink应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050010.md): 在安全集群环境下,各个组件之间的相互通信不能够简单地互通,而需要在通信之前进行相互认证,以确保通信的安全性。用户在提交Flink应用程序时,需要与Yarn、HDFS等之间进行通信。那么提交Flink的应用程序中需要设置安全认证,确保Flink程序能够正常运行。当前Flink系统支持认证和加密传输,要使用认证和加密传输,用户需要安装Flin - [Flink DataStream样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050013.md): 假定用户有某个网站周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Flink的DataStream应用程序实现如下功能:DataStream应用程序可以在Windows环境和Linux环境中运行。实时统计总计网购时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符 - [Flink DataStream样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050014.md): 统计连续网购时间超过2个小时的女性网民信息,将统计结果直接打印。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.flink.examples.FlinkStreamJavaExample:执行之后打印结果如下所示:执行如图1所示。 - [Flink DataStream样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050015.md): 实时统计连续网购时间超过2个小时的女性网民信息,将统计结果直接打印出来。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.flink.examples.FlinkStreamScalaExample:执行之后打印结果如下所示:执行如图1所示。 - [Flink Kafka样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050017.md): 假定某个Flink业务每秒就会收到1个消息记录。基于某些业务要求,开发的Flink应用程序实现功能:实时输出带有前缀的消息内容。Flink样例工程的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户),并从Kafka组件接收数据。确保集群安装完成,包括HDFS、Yarn、Flink和Kafka。创建Topic。 - [Flink Kafka样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050018.md): 在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。用户在开发前需要使用对接安全模式的Kafka,则需要引入FusionInsight的kafka-clients-*.jar,该jar包可在Kafka的客户端目录下获取。下面列出producer和consumer主要逻辑代码作为演示。完整代码参见c - [Flink Kafka样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050019.md): 在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。用户在开发前需要使用对接安全模式的Kafka,则需要引入FusionInsight的kafka-clients-*.jar,该jar包可在kafka客户端目录下获取。下面列出producer和consumer主要逻辑代码作为演示。完整代码参见co - [Flink开启Checkpoint样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050021.md): 假定用户需要每隔1秒钟统计4秒钟窗口中数据的量,并做到状态严格一致性,即:当应用出现异常并恢复后,各个算子的状态能够处于统一的状态。使用自定义算子每秒钟产生大约10000条数据。产生的数据为一个四元组(Long,String,String,Integer)。数据经统计后,统计结果打印到终端输出。打印输出的结果为Long类型的数据。sour - [Flink开启Checkpoint样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050022.md): 假定用户需要每隔1秒钟统计4秒钟窗口中数据的量,并做到状态严格一致性。快照数据该数据在算子制作快照时用于保存到目前为止算子记录的数据条数。import java.io.Serializale; // 该类作为快照的一部分,保存用户自定义状态 public class UDFState implements Serializable { - [Flink开启Checkpoint样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050023.md): 假定用户需要每隔1秒钟统计4秒钟窗口中数据的量,并做到状态严格一致性。发送数据形式case class SEvent(id: Long, name: String, info: String, count: Int)快照数据该数据在算子制作快照时用于保存到目前为止算子记录的数据条数。// 用户自定义状态 class UDFState ex - [Flink Job Pipeline样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050026.md): 本章节适用于MRS 3.6.0-LTS.1之前版本。下面列出的主要逻辑代码作为演示。完整代码请参阅:com.huawei.bigdata.flink.examples.UserSource。com.huawei.bigdata.flink.examples.TestPipeline_NettySink。com.huawei.bigdata - [Flink Job Pipeline样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050027.md): 本章节适用于MRS 3.6.0-LTS.1之前版本。下面列出的主要逻辑代码作为演示。完整代码请参阅:com.huawei.bigdata.flink.examples.UserSource。com.huawei.bigdata.flink.examples.TestPipeline_NettySink。com.huawei.bigdata - [Flink Join样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050033.md): 假定某个Flink业务1每秒就会收到1条消息记录,消息记录某个用户的基本信息,包括名字、性别、年龄。另有一个Flink业务2会不定时收到1条消息记录,消息记录该用户的名字、职业信息。基于某些业务要求,开发的Flink应用程序实现功能:实时地以根据业务2中消息记录的用户名字作为关键字,对两个业务数据进行联合查询。业务1的数据存储在Kafka - [Flink Join样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050034.md): 在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。用户在开发前需要使用对接安全模式的Kafka,则需要引入FusionInsight的kafka-clients-*.jar,该jar包可在Kafka客户端目录下获取。下面列出producer和consumer,以及Flink Stream SQL - [编译并调测Flink应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050036.md): 在程序代码完成开发后,编译jar包并上传至Linux客户端环境中运行应用。使用Scala或Java语言开发的应用程序在Flink客户端的运行步骤是相同的。基于YARN集群的Flink应用程序不支持在Windows环境下运行,只支持在Linux环境下运行。编译方式有以下两种:方法一:选择“Maven > 样例工程名称 > Lifecycle - [查看Flink应用调测结果](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050037.md): Flink应用程序运行完成后,您可以查看运行结果数据,也可以通过Flink WebUI查看应用程序运行情况。查看Flink应用运行结果数据。当用户查看执行结果时,需要在Flink的web页面上查看Task Manager的Stdout日志。当执行结果输出到文件或者其他,由Flink应用程序指定,您可以通过指定文件或其他获取到运行结果数据。 - [Flink Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050040.md): 由于Flink开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Flink主要使用到如下这几个类:StreamExecutionEnvironment:是Flink流处理的基础,提供了程序的执行环境。DataStream:Flink用类DataStream来表示程序中的流式数据。用户可以认为它们是含有重复数据 - [Flink Scala API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050041.md): 由于Flink开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Flink主要使用到如下这几个类:StreamExecutionEnvironment:是Flink流处理的基础,提供了程序的执行环境。DataStream:Flink用特别的类DataStream来表示程序中的流式数据。用户可以认为它们是含有重 - [Flink REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050042.md): Flink具有可用于查询正在运行的作业的状态和统计信息以及最近完成作业的监视API。该监视API由Flink自己的WEB UI使用。监视API是REST API,可接受HTTP GET请求并使用JSON数据进行响应。REST API是访问Web服务器的一套API。当前在Flink中,Web服务器是JobManager的一个模块,和JobM - [Flink Savepoints CLI介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050043.md): Savepoints在持久化存储中保存某个checkpoint,以便用户可以暂停自己的应用进行升级,并将状态设置为savepoint的状态,并继续运行。该机制利用了Flink的checkpoint机制创建流应用的快照,并将快照的元数据(meta-data)写入到一个额外的持久化文件系统中。如果需要使用savepoints的功能,强烈推荐用 - [Flink Client CLI介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050044.md): Flink常用的CLI如下所示:yarn-session.sh可以使用yarn-session.sh启动一个常驻的Flink集群,接受来自客户端提交的任务。启动一个有3个TaskManager实例的Flink集群示例如下:bin/yarn-session.shyarn-session.sh的其他参数可以通过以下命令获取:bin/yarn- - [如何处理用户在使用chrome浏览器时无法显示任务状态的title](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050047.md): 用户在使用chrome浏览器浏览Flink Web UI页面时无法显示title。此处以Tasks为例进行分析,用户将鼠标置于Tasks的彩色小方框上,无法显示彩色小框的title说明,如图1所示。正常的显示界面如图2所示。如果用户遇到chrome浏览器无法显示title,步骤如下:请检查本机是否同时运行会影响chrome浏览器冒泡提示的 - [如何处理IE10/11页面算子的文字部分显示异常](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050048.md): 如何处理IE10/11页面显示异常,每个算子的文字部分没有显示出来的问题?如图1所示,Overview显示为空白。Flink中用了foreignObject元素来代理绘制svg矢量图,但是IE 10/11不支持foreignObject导致算子显示异常。推荐使用chrome浏览器。 - [如何处理Checkpoint设置RocksDBStateBackend方式时Checkpoint慢](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050049.md): 如何处理checkpoint设置RocksDBStateBackend方式,且当数据量大时,执行checkpoint会很慢的问题?由于窗口使用自定义窗口,这时窗口的状态使用ListState,且同一个key值下,value的值非常多,每次新的value值到来都要使用RocksDB的merge()操作;触发计算时需要将该key值下所有的va - [如何处理blob.storage.directory配置/home目录时启动yarn-session失败](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050050.md): 当用户设置blob.storage.directory为“/home”时,用户没有权限在“/home”下创建blobStore-UUID的文件,导致yarn-session启动失败。修改Flink客户端配置文件conf/flink-conf.yaml,配置blob.storage.directory: /home/testdir/test - [如何处理非static的KafkaPartitioner类对象构造FlinkKafkaProducer010运行时报错](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050051.md): Flink内核升级到1.3.0之后,当Kafka调用带有非static的KafkaPartitioner类对象为参数的FlinkKafkaProducer010去构造函数时,运行时会报错。报错内容如下:Flink的1.3.0版本,为了兼容原有那些使用KafkaPartitioner的API接口,如FlinkKafkaProducer010 - [如何处理新创建的Flink用户提交任务报ZooKeeper文件目录权限不足](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050052.md): 创建一个新的Flink用户,提交任务,ZooKeeper目录无权限导致提交Flink任务失败,日志中报如下错误:首先查看ZooKeeper中/flink_base的目录权限是否为:'world,'anyone: cdrwa;如果不是,请修改/flink_base的目录权限为:'world,'anyone: cdrwa,然后继续根据步骤二排 - [如何处理无法直接通过URL访问Flink Web](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050053.md): 无法通过http://JobManager IP:JobManager的端口访问Web页面。由于浏览器所在的计算机IP地址未加到Web访问白名单导致。用户可以通过修改客户端的配置文件“conf/flink-conf.yaml”来解决问题。确认配置项“jobmanager.web.ssl.enabled”的值是否是“false”,若不是,请 - [如何查看System.out.println打印的调试信息或将调试信息输出至指定文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050054.md): Flink业务代码中添加了System.out.println调试信息打印,该如何查看此调试日志?避免与运行日志混在一起打印,如何将业务日志单独输出至指定文件?Flink所有的运行日志打印都会打印至Yarn的本地目录下,默认所有Log都会输出至Yarn container本地目录下taskmanager.log,所有调用System.ou - [如何处理Flink任务配置State Backend为RocksDB时报错GLIBC版本问题](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050055.md): Flink任务配置State Backend为RocksDB时,运行报如下错误:运行的系统和编译环境所在的系统版本不同,造成GLIBC的版本不兼容。使用strings /lib64/libpthread.so.0 | grep GLIBC命令查看GLIBC是否版本低于2.12。如果GLIBC版本太低,则需要使用含有较高版本的(此处为2.1 - [FlinkServer REST API样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050057.md): 本样例调用FlinkServer的RestAPI创建租户。准备用户认证文件:登录Manager下载用户凭证,获取“user.keytab”和“krb5.conf”文件。准备待创建的租户信息,如“tenantId”为“92”,“tenantName”为“test92”,“remark”为“test tenant remark1”。如果是在W - [FlinkServer REST API样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050058.md): 通过调用FlinkServer RestAPI创建租户。具体代码参见com.huawei.bigdata.flink.examples.TestCreateTenants。 - [Flink HBase样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050060.md): 本章节适用于MRS 3.2.0及以后版本。本样例介绍通过Flink API作业读写HBase数据。准备HBase配置文件,通过Manager下载集群配置,获取“hbase-site.xml”文件。写HBase:通过参数指定“hbase-site.xml”文件的父目录,Flink Sink可以获取到HBase的Connection。通过Co - [Flink HBase样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050061.md): 通过调用Flink API读写HBase数据。下面列出WriteHBase和ReadHBase主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.WriteHBase和com.huawei.bigdata.flink.examples.ReadHBase。WriteHBase主要逻辑代码p - [Flink Hudi样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050063.md): 本章节适用于MRS 3.3.0及以后版本。本样例中Job每秒生成1条数据,将数据写入到Hudi表中,再读取并打印Hudi表中的数据。写Hudi:通过一个随机生成数据类来生成数据。将生成的数据转化为DataStream。将数据写入到Hudi表中。同步数据到Hive(适用于MRS 3.6.0-LTS及之后版本)。通过一个随机 - [Flink Hudi样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050064.md): 通过调用Flink API读写Hudi数据。下面列出WriteIntoHudiWithSyncHive、WriteIntoHudi和ReadFromHudi主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.WriteIntoHudiWithSyncHive、com.huawei.bigd - [Flink Jar作业提交SQL样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050066.md): 当作业的SQL语句修改频繁时,可使用Flink Jar的方式提交Flink SQL语句,以减少用户工作量。本场景适用于MRS 3.2.1及以后版本。使用当前样例提交并执行指定的SQL语句,多个语句之间使用分号分隔。 - [Flink Jar作业提交SQL样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050067.md): 提交SQL的核心逻辑如下,目前只支持提交CREATE和INSERT语句。完整代码参见com.huawei.bigdata.flink.examples.FlinkSQLExecutor。需将当前样例需要的依赖包,即编译之后lib文件下面的jar包复制到客户端的lib文件夹内。以对接普通模式Kafka提交SQL为例: - [使用代理用户访问FlinkServer REST API样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050068.md): 通过代理用户调用FlinkServer RestAPI。以FlinkServer管理员权限的用户访问API来获取普通用户权限。本章节适用于MRS 3.3.0及以后版本。以租户用户为“test92”,租户ID为“92”,获取具有FlinkServer管理员权限的用户名为“flinkserveradmin”的代理访问API为例,以下代码为完整 - [PyFlink样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050071.md): 假定业务平台需要提交Flink任务到MRS集群,业务平台主要使用的语言是Python,提供Python读写Kafka作业和Python提交SQL作业的样例。本场景适用于MRS 3.3.0及以后的集群版本。 - [PyFlink样例程序代码说明](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050072.md): 下面列出pyflink-kafka.py的主要逻辑代码作为演示,在提交之前需要确保“file_path” 为要运行的SQL的路径。完整代码参见“flink-examples/pyflink-example/pyflink-kafka”中的“pyflink-kafka.py”。import os import logging import - [使用Python提交Flink普通作业](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050073.md): yarn-application模式:将上述文件和“flink-connector-kafka-实际版本号.jar”包上传到“客户端安装目录/Flink/flink/yarnship”。yarn-application模式:修改为:file://"+os.getcwd()+"/../../../../yarnship/flink-conn - [使用Python提交Flink SQL作业](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050077.md): yarn-application模式:将上述文件上传到“客户端安装目录/Flink/flink/yarnship”。yarn-session模式:将上述文件上传到“客户端安装目录/Flink/flink/conf/ssl”。yarn-application模式:修改为os.getcwd() + "/../../../../yarnship - [导入并配置Flink SpringBoot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050078.md): 该章节内容适用于MRS 3.3.0及之后版本。为了运行FusionInsight MRS产品Flink组件的SpringBoot接口样例代码,需要完成下面的操作。当前支持GaussDB(DWS)样例工程。该章节以在Linux环境下开发GaussDB(DWS) SpringBoot方式连接Flink服务的应用程序为例。执行GaussDB(D - [调测Flink SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050079.md): 该章节内容适用于MRS 3.3.0及之后版本。当输出“BUILD SUCCESS”,表示编译成功,如下图所示。编译成功后将会在样例工程的target下生成含有“flink-dws-sink-example-1.0.0-SNAPSHOT”字段的Jar包。yarn-session.sh -t ssl/ -nm "session-spring1 - [Flink Join样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050080.md): 本章节适用于MRS 3.3.0及以后版本。在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。用户在开发前需要使用对接安全模式的Kafka,则需要引入FusionInsight的kafka-clients-*.jar,该jar包可在Kafka客户端目录下获取。下面列出producer和consum - [场景说明](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050084.md): 本样例中将Iceberg源表数据写入到Iceberg目标表中。读取Iceberg源表数据DataStream 。将获取的数据写入Iceberg目标表中。 - [场景说明](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050084_0.md): 本样例中将Iceberg源表数据写入到Iceberg目标表中。读取Iceberg源表数据DataStream 。将获取的数据写入Iceberg目标表中。 - [Java样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050085.md): 通过调用Flink API读写Iceberg数据。下面列出ReadFromIcebergToIceberg主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.ReadFromIcebergToIceberg。ReadFromIcebergToIceberg主要逻辑代码:public cla - [Java样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_050085_0.md): 通过调用Flink API读写Iceberg数据。下面列出ReadFromIcebergToIceberg主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.ReadFromIcebergToIceberg。ReadFromIcebergToIceberg主要逻辑代码:public cla - [HBase应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080002.md): HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase设计目标是用来解决关系型数据库在处理海量数据时的局限性。HBase使用场景有如下几个特点:处理海量数据(TB或PB级别以上)。具有高吞吐量。在海量数据中实现高效的随机读取。具有很好的伸缩能力。能够同时处理结构化和非结构化的数据。不需要完全拥有传统关系型数据库所具备 - [HBase应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080004.md): 本文档主要基于Java API对HBase进行应用开发。开发流程中各阶段的说明如图1和表1所示。 - [准备HBase应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080006.md): 在进行二次开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。下载并解压客户端软件包。MRS 3.3.0 - [导入并配置HBase样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080007.md): 获取HBase开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。确保本地PC的时间与MRS集群的时间差要小于5分钟,若无法确定,请联系系统管理员。MRS集群的时间可通过FusionInsight Manager页面右下角查看。打开IntelliJ IDEA,选择“Configure”。Quick Start在下拉框中选择“ - [HBase数据读写示例安全认证(单集群场景)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080009.md): 在安全集群环境下,各个组件之间的相互通信不能够简单地互通,而需要在通信之前进行相互认证,以确保通信的安全性。HBase应用开发需要进行ZooKeeper和Kerberos安全认证。用于ZooKeeper认证的文件为jaas.conf,用于Kerberos安全认证文件为keytab文件和krb5.conf文件。具体使用方法在样例代码的“RE - [HBase数据读写样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080011.md): 假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,如表1所示,A业务操作流程如下:创建用户信息表。在用户信息中新增用户的学历、职称等信息。根据用户编号查询用户姓名和地址。根据用户姓名进行查询。查询年龄段在[20-29]之间的用户信息。数据统计,统计用户信息表的人员数、年龄最大值、年龄最小值、平均年龄。用户销户,删除用户信息表 - [配置HBase应用输出日志](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080014.md): 将HBase客户端的日志单独输出到指定日志文件,与业务日志分开,方便分析定位HBase的问题。如果进程中已经有log4j的配置,需要将hbase-example\src\main\resources\log4j.properties中RFA与RFAS相关的配置复制到已有的log4j配置中。以下为代码示例: - [初始化HBase配置](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080015.md): HBase通过login方法来获取配置项。包括用户登录信息、安全认证信息等配置项。MRS 3.3.0-LTS之前版本:下面代码片段在com.huawei.bigdata.hbase.examples包的“TestMain”类的init方法中。private static void init() throws IOException { - [创建HBase客户端连接](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080016.md): HBase通过ConnectionFactory.createConnection(configuration)方法创建Connection对象。传递的参数为上一步创建的Configuration。Connection封装了底层与各实际服务器的连接以及与ZooKeeper的连接。Connection通过ConnectionFactory类 - [创建HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080017.md): HBase通过org.apache.hadoop.hbase.client.Admin对象的createTable方法来创建表,并指定表名、列族名。创建表有两种方式(强烈建议采用预分Region建表方式):快速建表,即创建表后整张表只有一个Region,随着数据量的增加会自动分裂成多个Region。预分Region建表,即创建表时预先分配 - [删除HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080018.md): HBase通过org.apache.hadoop.hbase.client.Admin的deleteTable方法来删除表。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的dropTable方法中。注[1] 只有表被disable时,才能被删除掉,所以deleteTable - [修改HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080019.md): HBase通过org.apache.hadoop.hbase.client.Admin的modifyTable方法修改表信息。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testModifyTable方法中。注[1] modifyTable只有表被disable时,才能 - [向HBase表中插入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080020.md): HBase是一个面向列的数据库,一行数据,可能对应多个列族,而一个列族又可以对应多个列。通常,写入数据的时候,需要指定要写入的列(含列族名称和列名称)。HBase通过HTable的put方法来Put数据,可以是一行数据也可以是数据集。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSampl - [删除HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080021.md): HBase通过Table实例的delete方法来Delete数据,可以是一行数据也可以是数据集。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testDelete方法中。如果被删除的cell所在的列族上设置了二级索引,也会同步删除索引数据。 - [使用Get API读取HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080022.md): 要从表中读取一条数据,首先需要实例化该表对应的Table实例,然后创建一个Get对象。也可以为Get对象设定参数值,如列族的名称和列的名称。查询到的行数据存储在Result对象中,Result中可以存储多个Cell。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testG - [使用Scan API读取HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080023.md): 要从表中读取数据,首先需要实例化该表对应的Table实例,然后创建一个Scan对象,并针对查询条件设置Scan对象的参数值,为了提高查询效率,最好指定StartRow和StopRow。查询结果的多行数据保存在ResultScanner对象中,每行数据以Result对象形式存储,Result中存储了多个Cell。以下代码片段在com.hua - [使用Filter过滤器读取HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080024.md): HBase Filter主要在Scan和Get过程中进行数据过滤,通过设置一些过滤条件来实现,如设置RowKey、列名或者列值的过滤条件。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testSingleColumnValueFilter方法中。当前二级索引不支持使用Su - [创建HBase表二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080025.md): 一般都通过调用org.apache.hadoop.hbase.hindex.client.HIndexAdmin中方法进行HBase二级索引的管理,该类中提供了创建索引的方法。二级索引不支持修改,如果需要修改,请先删除旧的然后重新创建。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSamp - [删除HBase二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080026.md): 一般都通过调用org.apache.hadoop.hbase.hindex.client.HIndexAdmin中方法进行HBase二级索引的管理,该类中提供了索引的查询和删除等方法。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的dropIndex方法中。 - [基于二级索引查询HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080027.md): 针对添加了二级索引的用户表,您可以通过Filter来查询数据。其数据查询性能高于针对无二级索引用户表的数据查询。HIndex支持的Filter类型为“SingleColumnValueFilter”,“SingleColumnValueExcludeFilter”以及“SingleColumnValuePartitionFilter”。H - [创建HBase表Region](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080030.md): 一般通过org.apache.hadoop.hbase.client.HBaseAdmin进行多点分割。注意:分割操作只对空Region起作用。本例使用multiSplit进行多点分割将HBase表按照“-∞~A”、“A~D”、“D~F”、“F~H”、“H~+∞”分为五个Region。以下代码片段在com.huawei.bigdata.h - [创建Phoenix表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080036.md): Phoenix依赖HBase作为其后备存储,支持标准SQL和JDBC API的强大功能,使得SQL用户可以访问HBase集群。以下代码片段在com.huawei.bigdata.hbase.examples包的“PhoenixSample”类的testCreateTable方法中。 - [向Phoenix表中插入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080037.md): 使用Phoenix实现写数据。以下代码片段在com.huawei.bigdata.hbase.examples包的“PhoenixSample”类的testPut方法中。 - [读取Phoenix表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080038.md): 使用Phoenix实现读数据。以下代码片段在com.huawei.bigdata.hbase.examples包的“PhoenixSample”类的testSelect方法中。 - [HBase访问多个ZooKeeper样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080039.md): 在同一个客户端进程内同时访问FusionInsight ZooKeeper和第三方的ZooKeeper,其中HBase客户端访问FusionInsight ZooKeeper,客户应用访问第三方ZooKeeper。以下代码片段在“hbase-zk-example\src\main\java\com\huawei\hadoop\hbase\ - [在本地Windows环境中调测HBase应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080042.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和IP地址映射,主机名和IP地址请保持一一对应。放置好配置文件,并 - [在Linux环境中调测HBase应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080045.md): HBase应用程序支持在已安装或未安装HBase客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。MRS 3.6.0-LTS及之后版本的HBase客户端仅支持JDK 17和JDK 8,如果需要在Linux中调测JDK 21版本的程序,仅支持非客户端运行方式,具体操作请参见未安装客户端 - [Phoenix SQL查询样例介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080049.md): Phoenix是构建在HBase之上的一个SQL中间层,提供一个客户端可嵌入的JDBC驱动,Phoenix查询引擎将SQL输入转换为一个或多个HBase scan,编译并执行扫描任务以产生一个标准的JDBC结果集。客户端hbase-example/conf/hbase-site.xml中配置存放查询中间结果的临时目录,如果客户端程序在Li - [HBase Shell接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080054.md): 您可以使用Shell在服务端直接对HBase进行操作。HBase的Shell接口同开源社区版本保持一致,请参见https://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/Shell命令执行方法:进入HBase客户端任意目录,执行以下命令。hbase shell进入HBa - [HBase Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080055.md): 建议使用org.apache.hadoop.hbase.Cell作为KV数据对象,而不是org.apache.hadoop.hbase.KeyValue。建议使用Connection connection = ConnectionFactory.createConnection(conf)来创建连接,废弃HTablePool。建议使用or - [Sqlline接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080056.md): 用户可以直接使用sqlline.py在服务端对HBase进行SQL操作。Phoenix的sqlline接口与开源社区保持一致。详情请参见https://phoenix.apache.org/。此版本不包含开源社区中Phoenix二级索引特性。 - [HBase JDBC API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080057.md): Phoenix实现了大部分的java.sql接口,SQL语法紧跟ANSI SQL标准。其支持处理函数可参见:https://phoenix.apache.org/docs/functions其支持语法可参见:https://phoenix.apache.org/docs/features/secondary-indexes - [HBase Web UI接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080058.md): Web UI展示了HBase集群的状态,其中包括整个集群概况信息、RegionServer和Master的信息、快照、运行进程等信息。通过Web UI提供的信息可以对整个HBase集群的状况有一定的了解。请联系管理员获取具有访问Web UI权限的业务账号及其密码。登录FusionInsight Manager页面。选择“集群 > 待操作集 - [运行HBase应用开发程序产生ServerRpcControllerFactory异常如何处理](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080060.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [BulkLoad和Put应用场景有哪些](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080061.md): HBase支持使用bulkload和put方式加载数据,在大部分场景下bulkload提供了更快的数据加载速度,但bulkload并不是没有缺点的,在使用时需要关注bulkload和put适合在哪些场景使用。bulkload是通过启动MapReduce任务直接生成HFile文件,再将HFile文件注册到HBase,因此错误地使用bulkl - [HBase服务数据读写示例安全认证(多集群互信场景)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080062.md): 当不同的多个Manager系统下安全模式的集群需要互相访问对方的资源时,管理员可以设置互信的系统,使外部系统的用户可以在本系统中使用。每个系统用户安全使用的范围定义为“域”,不同的Manager系统需要定义唯一的域名。跨Manager访问实际上就是用户跨域使用。集群配置互信具体操作步骤请参考集群互信管理章节。多集群互信场景下,以符合跨域访 - [调用REST接口访问HBase应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080063.md): HBase服务安装时可选部署RESTServer实例,可通过访问HBase REST服务的形式调用HBase相关操作,包括对Namespace、table的操作等。访问HBase REST服务同样需要进行Kerberos认证。该场景下不需要进行初始化配置,仅需要用于Kerberos安全认证的keytab文件和krb5.conf文件。具体使 - [访问HBase ThriftServer认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080064.md): HBase把Thrift结合起来可以向外部应用提供HBase服务。在HBase服务安装时可选部署ThriftServer实例,ThriftServer系统可访问HBase的用户,拥有HBase所有NameSpace和表的读、写、执行、创建和管理的权限。访问ThriftServer服务同样需要进行Kerberos认证。HBase实现了两套T - [使用REST接口查询HBase集群信息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080065.md): 使用REST服务,传入对应host与port组成的url,通过HTTPS协议,获取集群版本与状态信息。获取集群版本信息以下代码片段在“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HBaseRestTest”类的getClusterVersion方 - [使用REST接口获取所有HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080066.md): 使用REST服务,传入对应host与port组成的URL,通过HTTPS协议,获取得到所有table。以下代码片段在“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HBaseRestTest”类的getAllUserTables方法中。privat - [使用REST接口操作Namespace](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080067.md): 使用REST服务,传入对应host与port组成的url以及指定的Namespace,通过HTTPS协议,对Namespace进行创建、查询、删除,获取指定Namespace中表的操作。HBase表以“命名空间:表名”格式进行存储,若在创建表时不指定命名空间,则默认存储在“default”中。其中,“hbase”命名空间为系统表命名空间, - [使用REST接口操作HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080068.md): 使用REST服务,传入对应host与port组成的url以及指定的tableName和jsonHTD,通过HTTPS协议,进行查询表信息,修改表,创建表以及删除表的操作。方法调用// Add a table with specified info. createTable(url, "testRest", "{\"name\": - [通过ThriftServer实例操作HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080069.md): 传入ThriftServer实例所在host和提供服务的port,根据认证凭据及配置文件新建Thrift客户端,访问ThriftServer,进行根据指定namespace获取tablename以及创建表、删除表的操作。方法调用// Get table of specified namespace. getTableNamesByNam - [通过ThriftServer实例向HBase表中写入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080070.md): 传入ThriftServer实例所在host和提供服务的port,根据认证凭据及配置文件新建Thrift客户端,访问ThriftServer,分别使用put和putMultiple进行写数据操作。方法调用// Write data with put. putData(client, TABLE_NAME); // Write data - [通过ThriftServer实例读HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080071.md): 传入ThriftServer实例所在host和提供服务的port,根据认证凭据及配置文件新建Thrift客户端,访问ThriftServer,分别使用get和scan进行读数据操作。方法调用// Get data with single get. getData(client, TABLE_NAME); // Get data with - [如何配置HBase双读功能](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080072.md): HBase客户端应用通过自定义加载主备集群配置项,实现了双读能力。HBase双读作为提高HBase集群系统高可用性的一个关键特性,适用于使用Get读取数据、使用批量Get读取数据、使用Scan读取数据,以及基于二级索引查询。它能够同时读取主备集群数据,减少查询毛刺,具体表现为:高成功率:双并发读机制,保证每一次读请求的成功率。可用性:单集 - [Phoenix命令行操作介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080073.md): Phoenix支持SQL的方式来操作HBase,以下简单介绍使用SQL语句建表/插入数据/查询数据/删表等操作。已安装HBase客户端,例如安装目录为“/opt/client”。以下操作的客户端目录只是举例,请根据实际安装目录修改。在使用客户端前,需要先下载并更新客户端配置文件,确认Manager的主管理节点后才能使用客户端。进入HBas - [install编译构建HBase Jar包失败报错Could not transfer artifact如何处理](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080074.md): 样例代码在进行maven编译构建jar包时,Build Failed,提示错误信息:Could not transfer artifact org.apache.commons:commons-crypto:pom:${commons-crypto.version}hbase-common模块依赖commons-crypto,在hbase - [调用SpringBoot接口访问HBase/Phoenix应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080079.md): 为了运行MRS产品HBase/Phoenix组件的SpringBoot接口样例代码,需要完成下面的操作。该章节内容适用于MRS 3.3.0及之后版本。已获取样例工程运行所需的配置文件及认证文件,详细操作请参见准备HBase应用开发和运行环境。 - [HBase全局二级索引样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080087.md): HBase支持使用全局二级索引加速条件查询,通过本样例,您可以了解如何管理及使用全局二级索引。该样例程序仅适用于MRS 3.3.0及之后版本。假定用户开发一个应用程序,其中一个功能需要记录用户信息及地址,记录数据如下表:合理地设计表结构、行键、列名能充分利用HBase的优势。全局二级索引应用于scan条件查询场景,查询均由索引表完成,无需 - [创建HBase全局二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080088.md): 通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法进行HBase全局二级索引的管理,该类中addIndices用于创建全局二级索引。全局二级索引的创建需要指定索引列、覆盖列(可选)、索引表预分区(可选,建议指定)。在已有存量数据的表上创建全局二级索引,需要创建索 - [查询HBase全局二级索引信息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080089.md): 通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法进行HBase全局二级索引的管理,该类中listIndices用于查询索引信息,可以获取当前用户表所有相关索引的定义及索引状态。以下代码片段在com.huawei.bigdata.hbase.examples包的 - [基于全局二级索引查询HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080090.md): 添加了全局二级索引的用户表,在使用索引条件进行查询时,可以转换为对索引表的范围查询,性能高于针对无二级索引用户表的数据查询。以下代码片段在com.huawei.bigdata.hbase.examples包的“GlobalSecondaryIndexSample”类中。本样例用于查询指定id对应的id、age、name信息,并命中idx_ - [禁用HBase全局二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080091.md): 全局二级索引的索引状态决定了索引是否有效,通过修改索引状态,可以实现索引的禁用、启用、弃用(不再生成索引数据)等功能。通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法可以完成对索引状态的修改。以下代码片段在com.huawei.bigdata.hbase.ex - [删除HBase全局二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_080092.md): 通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法进行HBase全局二级索引的管理,该类中dropIndices用于删除索引。以下代码片段在com.huawei.bigdata.hbase.examples包的“GlobalSecondaryIndexSampl - [HDFS应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090002.md): HDFS(Hadoop Distributed File System)是一个适合运行在通用硬件之上,具备高度容错特性,支持高吞吐量数据访问的分布式文件系统,非常适合大规模数据集应用。HDFS适用于如下场景:处理海量数据(TB或PB级别以上)需要很高的吞吐量需要高可靠性需要很好的可扩展能力HDFS支持使用Java语言进行程序开发,具体的A - [HDFS应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090004.md): 开发流程中各阶段的说明如图1和表1所示。 - [准备HDFS应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。登录FusionInsight Manag - [导入并配置HDFS样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090007.md): HDFS针对多个场景提供样例工程,帮助客户快速学习HDFS工程。以下操作步骤以导入HDFS样例代码为例。操作流程如图1所示。将准备MRS应用开发用户时得到的keytab文件“user.keytab”和krb5.conf文件放到样例工程的“conf”目录下。针对MRS 3.6.0及之后版本集群,如果需要运行SpringBoot对接HDFS样 - [配置HDFS应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090008.md): 访问安全集群环境中的服务,需要先通过Kerberos安全认证。所以HDFS应用程序中需要写入安全认证代码,确保HDFS程序能够正常运行。安全认证有两种方式:命令行认证:提交HDFS应用程序运行前,在HDFS客户端执行如下命令进行认证。kinit 组件业务用户该方式仅适用于Linux操作系统,且安装了HDFS的客户端。提交HDFS应用程序运 - [HDFS样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090011.md): HDFS的业务操作对象是文件,代码样例中所涉及的文件操作主要包括创建文件夹、写文件、追加文件内容、读文件和删除文件/文件夹;HDFS还有其他的业务处理,例如设置文件权限等,其他操作可以在掌握本代码样例之后,再扩展学习。本代码样例讲解顺序为:HDFS初始化创建目录写文件追加文件内容读文件删除文件删除目录多线程设置存储策略Colocation - [初始化HDFS](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090013.md): 在使用HDFS提供的API之前,需要先进行HDFS初始化操作。过程为:加载HDFS服务配置文件,并进行kerberos安全认证。认证通过后,实例化Filesystem。此处kerberos安全认证需要使用到的keytab文件,请提前准备。如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples的Hdf - [创建HDFS目录](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090014.md): 创建目录过程为:调用FileSystem实例的exists方法查看该目录是否存在。如果存在,则直接返回。如果不存在,则调用FileSystem实例的mkdirs方法创建该目录。如下是写文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [创建HDFS文件并写入内容](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090015.md): 写文件过程为:使用FileSystem实例的create方法获取写文件的输出流。使用该输出流将内容写入到HDFS的指定文件中。在写完文件后,需关闭所申请资源。如下是写文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [追加信息到HDFS指定文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090016.md): 追加文件内容,是指在HDFS的某个指定文件后面,追加指定的内容。过程为:使用FileSystem实例的append方法获取追加写入的输出流。使用该输出流将待追加内容添加到HDFS的指定文件后面。在完成后,需关闭所申请资源。如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExampl - [读取HDFS指定文件内容](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090017.md): 获取HDFS上某个指定文件的内容。过程为:使用FileSystem实例的open方法获取读取文件的输入流。使用该输入流读取HDFS的指定文件的内容。在完成后,需关闭所申请资源。如下是读文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [删除HDFS指定文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090018.md): 删除HDFS上某个指定文件。被删除的文件会被直接删除,且无法恢复。所以,执行删除操作需谨慎。如下是删除文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [删除HDFS指定目录](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090019.md): 删除HDFS上某个指定目录。被删除的目录会被直接删除,且无法恢复。所以,执行删除操作需谨慎。如下是删除文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [创建HDFS多线程任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090020.md): 建立多线程任务,同时启动多个实例执行文件操作。如下是删除文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。example.test()方法即为对文件的操作,代码如下: - [配置HDFS存储策略](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090021.md): 为HDFS上某个文件或文件夹指定存储策略。登录MRS集群Manager。登录集群Manager具体操作,请参考访问MRS集群Manager。登录集群Manager具体操作,请参考访问MRS集群Manager。选择“集群 >服务 > HDFS > 配置 > 全部配置”。搜索并查看dfs.storage.policy.enabled的参数值是 - [配置HDFS同分布策略(Colocation)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090023.md): 同分布(Colocation)功能是将存在关联关系的数据或可能要进行关联操作的数据存储在相同的存储节点上。HDFS文件同分布的特性,将那些需进行关联操作的文件存放在相同数据节点上,在进行关联操作计算时避免了到别的数据节点上获取数据,大大降低网络带宽的占用。在使用Colocation功能之前,建议用户对Colocation的内部机制有一定了 - [在本地Windows环境中调测HDFS程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090026.md): 在代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。HDFS应用程序运行完成后,可直接通过运行结果查看应用程序运行情况,也可以通过HDFS日志获取应用运行情况。编译并运行SpringBoot对接HDFS样例:登录HDFS时会使用到如表1所示的配置文件。这些文件均已导入到hdf - [在Linux环境中调测HDFS应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090029.md): HDFS应用程序支持在Linux环境中运行。在程序代码完成开发后,可以上传Jar包至准备好的Linux环境中运行。HDFS应用程序运行完成后,可直接通过运行结果查看应用程序运行情况,也可以通过HDFS日志获取应用运行情况。已安装客户端时:已安装HDFS客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主 - [HDFS Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090034.md): HDFS完整和详细的接口可以直接参考官方网站上的描述:https://hadoop.apache.org/docs/r3.1.1/api/index.html。HDFS常用的Java类有以下几个:FileSystem:是客户端应用的核心类。常用接口参见表1。FileStatus:记录文件和目录的状态信息。常用接口参见表2。DFSColoc - [HDFS C API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090035.md): C语言应用开发代码样例中所涉及的文件操作主要包括创建文件、读写文件、追加文件、删除文件。完整和详细的接口请直接参考官网上的描述以了解其使用方法:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/LibHdfs.html。下面代码片段仅为演示,具体代码 - [HDFS HTTP REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090036.md): REST应用开发代码样例中所涉及的文件操作主要包括创建文件、读写文件、追加文件、删除文件。完整和详细的接口请参考官网上的描述以了解其使用:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/WebHDFS.html。执行下列命令进行用户认证,这里以hd - [HDFS Shell命令介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090037.md): 您可以使用HDFS Shell命令对HDFS文件系统进行操作,例如读文件、写文件等操作。执行HDFS Shell的方法:进入HDFS客户端如下目录,直接输入命令即可。例如:cd /opt/client/HDFS/hadoop/bin./hdfs dfs -mkdir /tmp/input执行如下命令查询HDFS命令的帮助。./hdfs - - [配置Windows通过EIP访问安全模式集群HDFS](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090038.md): 该章节通过指导用户配置集群绑定EIP,并配置HDFS文件的方法,方便用户可以在本地对样例文件进行编译。本章节以运行HdfsExample样例为例进行说明。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 > 用户指南 - [HDFS样例工程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090039.md): MRS样例工程获取地址为https://github.com/huaweicloud/huaweicloud-mrs-example,切换分支为与MRS集群相匹配的版本分支,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。当前MRS提供以下HDFS相关样例工程:HDFS相关样例工程样例工程位置描述hdfs-example-s - [SpringBoot对接HDFS](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_090040.md): 该章节仅适用于MRS 3.6.0及之后版本。通过SpringBoot对接HDFS集群,实现向HDFS读写数据的功能。登录HDFS时会使用到如表1所示的配置文件。这些文件均已导入到“springboot > hdfs-examples”工程的src/main/resource目录。 配置文件文件名称作用core-site.xml配置HDFS - [HetuEngine应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100002.md): HetuEngine是华为自研高性能交互式SQL分析及数据虚拟化引擎。与大数据生态无缝融合,实现海量数据秒级交互式查询;支持跨源跨域统一访问,使能数据湖内、湖间、湖仓一站式SQL融合分析。HSBroker: HetuEngine的服务代理,用作用户租户管理校验,HetuEngine访问URL的获取等。Coordinator:HetuEng - [HetuEngine应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100004.md): 开发流程中各阶段的说明如图1所示: - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。下载客户端到本地并解压。MRS 3.3.0 - [导入并配置HetuEngine样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100009.md): 客户端安装程序目录中包含了HetuEngine开发样例工程,将从工程导入样例开始学习,本文以IntelliJ IDEA 2020.1.3 (Community Edition)为例。确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过Manager页面右下角查看。打开IntelliJ IDEA,选择 - [配置HetuEngine应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100010.md): KeyTab文件认证,需要“jaas-zk.conf”(MRS 3.6.0-LTS之前版本)、“krb5.conf”和“user.keytab”文件。“krb5.conf”和“user.keytab”文件参考MRS组件应用安全认证说明章节获得。MRS 3.6.0-LTS之前版本,“jaas-zk.conf”文件如下定义,principal - [HetuEngine样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100014.md): 通过典型场景,用户可以快速学习和掌握HetuEngine的开发过程,并且对关键的接口函数有所了解。假定用户开发一个应用程序,需要对Hive数据源的A表和MPPDB数据源的B表进行join运算,则可以用HetuEngine来实现Hive数据源数据查询,流程如下:连接HetuEngine JDBC Server。组装SQL语句。SQL语句执行 - [通过HSFabric的KeyTab认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100016.md): 支持客户端跨网段访问。只需要确保业务侧和HetuEngine服务端HSFabric所在业务节点网络互通,且对外开放HSFabric固定的IP和端口。适用于双平面的网络场景。通过KeyTab文件认证方式连接到HetuEngine,组装对应的SQL发送到HetuEngine执行,完成对Hive数据源的增删改查操作。上述代码中各参数说明如表1所 - [在本地Windows环境中调测HetuEngine应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100019.md): 在程序代码完成开发后,可以在Windows环境下进行编译,本地和集群业务平面网络互通时,您可以直接在本地进行调测。-Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true选择“Maven > - [在Linux环境中调测HetuEngine应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100020.md): 在程序代码完成开发后,也可以把代码编译成jar包,上传到Linux环境进行程序功能调试。在Linux环境上调测程序前,需在Linux节点预安装客户端。jdbc驱动包可在集群客户端软件包解压路径“FusionInsight_Cluster_1_Services_ClientConfig\HetuEngine\XXX\”路径下获取“hetu- - [通过HSBroker的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100022.md): 需要确保业务侧和HetuEngine服务端HSBroker、Coordinator(随机分布在Yarn NodeManger)所在业务节点网络互通,且需对外开放Coordinator的IP,端口。能够触发未启动实例或是故障实例自动拉起。通过HSBroker连接方式实现,使用用户名和密码连接到HetuEngine,组装对应的SQL发送到He - [通过HSFabric的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100026.md): 支持客户端跨网段访问。只需要确保业务侧和HetuEngine服务端HSFabric所在业务节点网络互通,且对外开放HSFabric固定的IP和端口。适用于双平面的网络场景。通过HSFabric连接方式实现,使用用户名和密码连接到HetuEngine,组装对应的SQL发送到HetuEngine执行。上述代码中各参数说明如表1所示: - [导入并配置HetuEngine Python3样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100029.md): 为了运行HetuEngine组件的Python3样例代码,需要完成下面的操作。本章节适用于MRS 3.3.0及以后版本。在客户端机器的命令行终端输入python3可查看Python版本号。如下显示Python版本为3.8.2。Python 3.8.2 (default, Jun 23 2020, 10:26:03) [GCC 4.8.5 - [通过HSBroker的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100031.md): 本章节适用于MRS 3.3.0及以后版本。通过HSBroker连接方式实现,使用用户名和密码连接到HetuEngine,组装对应的SQL发送到HetuEngine执行。上述代码中各参数说明如下表所示: - [通过HSFabric的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100032.md): 通过HSFabric连接方式实现,使用用户名和密码连接到HetuEngine,组装对应的SQL发送到HetuEngine执行。上述代码中各参数说明下表所示: - [通过HSFabric的KeyTab认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100033.md): 通过HSFabric实现KeyTab文件认证方式连接到HetuEngine,组装对应的SQL发送到HetuEngine执行,完成对Hive数据源的增删改查操作。上述代码中各参数说明如下表所示: - [调测HetuEngine Python3应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100034.md): 本章节适用于MRS 3.3.0及以后版本。在python3程序代码完成开发后,可以在Windows环境或者上传到Linux环境进行调测,和集群业务平面网络互通时,可以直接在本地进行调测。参考导入并配置HetuEngine Python3样例工程章节,获取样例代码,获取hetu-jdbc-XXX.jar文件,并复制到自定义目录中。参考通过H - [调测SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100035.md): 程序代码开发完成后,通过Windows环境进行编译生成Jar包。该Jar包既可在本地Windows环境进行调测,也可部署至Linux环境执行调测。如果本地与集群业务平面网络互通时,可直接在本地进行调测。MRS 3.6.0-LTS.1及之后版本,“hetu-rest-client-example”样例代码仅支持JDK 17和JDK 21版本 - [调测SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100035_0.md): 程序代码开发完成后,通过Windows环境进行编译生成Jar包。该Jar包既可在本地Windows环境进行调测,也可部署至Linux环境执行调测。如果本地与集群业务平面网络互通时,可直接在本地进行调测。MRS 3.6.0-LTS.1及之后版本,“hetu-rest-client-example”样例代码仅支持JDK 17和JDK 21版本 - [MRS集群各组件JDK支持说明](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_101117.md): 由于旧版本JDK在性能优化、安全补丁及新特性支持上已无法满足当前集群的运行需求,MRS对最新版本集群中各组件运行的JDK版本进行了升级,可有效提升集群的稳定性、运行效率,并降低潜在的安全风险。MRS集群内各组件服务端的Java进程均默认运行在JDK 21下,集群各组件对JDK支持情况请参见表1。该章节仅适用于MRS 3.6.0及之后版本。 - [Hive应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110002.md): Hive是一个开源的,建立在Hadoop上的数据仓库框架,提供类似SQL的HQL语言操作结构化数据,其基本原理是将HQL语言自动转换成Mapreduce任务或Spark任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。Hive主要特点如下:通过HQL语言非常容易地完成数据提取、转换和加载(ETL)。通过HQL完成海量结构化数 - [Hive应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110005.md): 开发流程中各阶段的说明如图1和表1所示。 - [准备Hive应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110007.md): Hive组件可以使用Java(JDBC和HCatalog)、Python、Python3接口进行应用开发,要准备的开发和运行环境分别如下表所示。Python开发工具的详细安装配置可参见配置Hive Python样例工程。Python3开发工具的详细安装配置可参见配置Hive Python3样例工程。进行应用开发时,需要同时准备代码的运行调 - [导入并配置Hive JDBC样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110008.md): 为了运行MRS产品Hive组件的JDBC接口样例代码,需要完成下面的操作。以在Windows环境下开发JDBC方式连接Hive服务的应用程序为例。MRS 3.6.0-LTS及之后版本,Hive支持使用Kerberos认证和用户名密码认证两种方式。如果使用Kerberos认证,客户端需要提供开发用户的“user.keytab”和krb5.c - [导入并配置Hive HCatalog样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110009.md): 为了运行MRS产品Hive组件的HCatalog接口样例代码,需要完成下面的操作。以在Windows环境下开发HCatalog方式连接Hive服务的应用程序为例。在IntelliJ IDEA的菜单栏中,选择“File > Open...”,显示“Open File or Project”对话框。在弹出窗口选择文件夹“hcatalog-ex - [配置Hive Python样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110010.md): 为了运行MRS产品Hive组件的Python接口样例代码,需要完成下面的操作。在客户端机器的命令行终端输入python可查看Python版本号。如下显示Python版本为2.6.6。Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48) [GCC 4.4.6 20120305 (Red Hat - [配置Hive Python3样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110011.md): 为了运行MRS产品Hive组件的Python3接口样例代码,需要完成下面的操作。在客户端机器的命令行终端输入python3可查看Python版本号。如下显示Python版本为3.8.2。Python 3.8.2 (default, Jun 23 2020, 10:26:03) [GCC 4.8.5 20150623 (Red Hat 4. - [Hive JDBC样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110017.md): 假定用户开发一个Hive数据分析应用,用于管理企业雇员信息,如表1、表2所示。创建三张表,雇员信息表“employees_info”、雇员联络信息表“employees_contact”、雇员信息扩展表“employees_info_extended”。雇员信息表“employees_info”的字段为雇员编号、姓名、支付薪水币种、薪水金 - [创建Hive表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110019.md): 本小节介绍了如何使用HQL创建内部表、外部表的基本操作。创建表主要有以下三种方式:自定义表结构,以关键字EXTERNAL区分创建内部表和外部表。内部表,如果对数据的处理都由Hive完成,则应该使用内部表。在删除内部表时,元数据和数据一起被删除。外部表,如果数据要被多种工具(如Pig等)共同处理,则应该使用外部表,可避免对该数据的误操作。删 - [加载数据到Hive表中](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110020.md): 本小节介绍了如何使用HQL向已有的表employees_info中加载数据。从本节中可以掌握如何从本地文件系统、MRS集群中加载数据。以关键字LOCAL区分数据源是否来自本地。在启用了安全服务的集群中执行如下操作,需要在数据库中具有UPDATE权限及对加载数据文件具有owner权限和读写权限。如果加载数据语句中有关键字LOCAL,表明从本 - [查询Hive表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110021.md): 本小节介绍了如何使用HQL对数据进行查询分析。从本节中可以掌握如下查询分析方法:SELECT查询的常用特性,如JOIN等。加载数据进指定分区。如何使用Hive自带函数。如何使用自定义函数进行查询分析,如何创建、定义自定义函数请见创建Hive用户自定义函数。在启用了安全服务的集群中执行如下操作,需要对涉及的表具有与操作对应的权限。配置Hiv - [实现Hive进程访问多ZooKeeper](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110024.md): FusionInsight支持在同一个客户端进程内同时访问FusionInsight ZooKeeper和第三方的ZooKeeper,分别通过“testConnectHive”和“testConnectApacheZK”方法实现。在hive-jdbc-example-multizk包中的“JDBCExample”类中,main方法的代码结 - [调测Hive HCatalog样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110027.md): Hive HCatalog应用程序支持在安装Hive和Yarn客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。已安装Hive和Yarn客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。当输出“ - [调测Hive Python样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110028.md): chmod +x python-examples -R。使用准备MRS应用开发用户章节中创建的开发用户执行以下命令运行客户端程序:kinit -ktkeytab的存储路径 usernamecd python-examplespython pyCLI_sec.py如果出现如下异常:请按照以下方式处理:首先执行如下命令,查询所装操作系统中Li - [调测Hive Python3样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110029.md): chmod +x python3-examples -R。修改“python3-examples/pyCLI_sec.py”时,“hosts”数组支持配置多个HiveServer节点,MRS 3.6.0-LTS及之后版本还支持配置“maxRetryTimes”和“retryInterval”参数。“maxRetryTimes”为重试次数, - [Hive JDBC接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110035.md): Hive JDBC接口遵循标准的JAVA JDBC驱动标准。Hive作为数据仓库类型数据库,其并不能支持所有的JDBC标准API。例如事务类型的操作:rollback、setAutoCommit等,执行该类操作会获得Method not supported的SQLException异常。 - [Hive WebHCat接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110037.md): 以下示例的IP为WebHCat的业务IP,端口为安装时设置的WebHCat HTTP端口。需要在安装客户端的机器上进行kinit认证操作后才可执行示例操作。以下示例均为https协议的示例,若要使用http协议,需要执行以下操作:将REST接口切换成HTTP协议方式,请参见配置基于HTTPS/HTTP协议的REST接口。将示例中的“--i - [使用二次开发程序产生Unable to read HiveServer2异常如何处理](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110040.md): 使用二次开发程序产生异常,提示“Unable to read HiveServer2 configs from ZooKeeper”信息。问题原因使用的krb5.conf、user.keytab文件不是最新的,或者文件与示例代码里填写登录用户不匹配。使用客户端环境的时间与连接的集群时间差大于5分钟。解决措施检查代码下载最新的用户的认证凭据 - [使用IBM JDK产生异常“Problem performing GSS wrap”如何处理](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110041.md): 使用IBM JDK产生异常,提示“Problem performing GSS wrap”信息。问题原因:在IBM JDK下建立的Hive connection时间超过登录用户的认证超时时间(默认一天),导致认证失败。IBM JDK的机制跟Oracle JDK的机制不同,IBM JDK在认证登录后的使用过程中做了时间检查却没有检测外部的时 - [Hive SQL与SQL2003标准有哪些兼容性问题](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110042.md): 本文列举目前已发现的Hive SQL与SQL2003标准兼容性问题。不支持在having中写视图。举例如下:select c_last_name ,c_first_name ,s_store_name ,sum(netpaid) paid from ssales where i_color = 'chi - [配置Windows通过EIP访问安全模式集群Hive](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110043.md): 该章节通过指导用户配置集群绑定EIP,并配置Hive文件的方法,方便用户可以在本地对样例文件进行编译。本章节以运行hive-jdbc-example样例为例进行说明。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 - [调测Hive SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110047.md): 该章节内容适用于MRS 3.3.0及之后版本。当输出“BUILD SUCCESS”,表示编译成功,如下图所示。编译成功后将会在样例工程的target下生成含有“-with-dependencies”字段的Jar包。在Windows环境下执行:cd /d d:\hive-rest-client-examplejava -jar hive-r - [导入并配置SpringBoot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110048.md): 为了运行MRS产品Hive组件的SpringBoot接口样例代码,需要完成下面的操作。该章节以在Windows环境下开发SpringBoot方式连接Hive服务的应用程序为例。该章节内容适用于MRS 3.3.0及之后版本。MRS 3.6.0-LTS及之后版本,Hive支持使用Kerberos认证和用户名密码认证两种方式。如果使用Kerbe - [使用JDBC接口提交数据分析任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110052.md): 本章节介绍如何使用JDBC样例程序完成数据分析任务。使用Hive JDBC接口提交数据分析任务,该样例程序在“hive-examples/hive-jdbc-example”的“JDBCExample.java”中,实现该功能的模块如下:读取HiveServer客户端property文件,其中hiveclient.properties文件 - [HCatalog访问Hive样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110053.md): 本章节介绍如何在MapReduce任务中使用HCatalog分析Hive表数据,读取输入表第一列int类型数据执行count(distinct XX)操作,将结果写入输出表。该样例程序在“hive-examples/hcatalog-example”的“HCatalogExample.java”中,实现该功能的模块如下:实现Mapper类 - [基于Python的Hive样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110054.md): 本章节介绍如何使用Python连接Hive执行数据分析任务。使用Python方式提交数据分析任务,参考样例程序中的“hive-examples/python-examples/pyCLI_sec.py”。该样例程序连接的集群的认证模式是安全模式,运行样例程序之前需要使用kinit命令认证相应权限的Kerberos用户。导入HAConnec - [基于Python3的Hive样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110055.md): 本章节介绍如何使用Python3连接Hive执行数据分析任务。安全模式连接Hive前需要使用集群客户端进行认证,使用kinit命令认证相应权限的Kerberos用户,认证后执行分析任务示例在“hive-examples/python3-examples/pyCLI_sec.py”文件中。导入hive类from pyhive import - [在本地Windows环境中调测Hive JDBC样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110056.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和公网IP地址映射,主机名和公网IP地址请保持一一对应。仅JDBC - [在Linux环境中调测Hive JDBC样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_110057.md): Hive JDBC应用程序支持在Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。已安装Java。当运行Hive JDBC应用程序所在主机不是集群中的节点时,需要在该主机的hosts文件中设置MRS集群节点的主机名和IP地址的映射关系,确保主机名和IP地址一一对应。在IDEA界面左下方单击“ - [Kafka应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130002.md): Kafka是一个分布式的消息发布-订阅系统。它采用独特的设计提供了类似JMS的特性,主要用于处理活跃的流式数据。Kafka有很多适用的场景:消息队列、行为跟踪、运维数据监控、日志收集、流处理、事件溯源、持久化日志等。Kafka有如下几个特点:高吞吐量消息持久化到磁盘分布式系统易扩展容错性好支持online和offline场景Kafka提供 - [Kafka应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130004.md): Kafka客户端角色包括Producer和Consumer两个角色,其应用开发流程是相同的。开发流程中各个阶段的说明如图1和表1所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130006.md): Kafka开发应用时,需要准备的开发和运行环境如表1所示: - [导入并配置Kafka样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130007.md): 获取Kafka开发样例工程,将工程导入到IntelliJ IDEA开始样例学习及应用程序开发。确保本地环境的时间与MRS集群的时间差要小于5分钟,若无法确定,请联系系统管理员。MRS集群的时间可通过FusionInsight Manager页面右下角查看。已准备开发环境及MRS集群相关配置文件,详情请参考准备连接Kafka集群配置文件。参 - [Kafka样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130010.md): Kafka是一个分布式消息系统,在此系统上用户可以做一些消息的发布和订阅操作,假定用户要开发一个Producer,让其每秒向Kafka集群某Topic发送一条消息,另外还需要实现一个Consumer,订阅该Topic,实时消费该类消息。使用Linux客户端创建一个Topic。可参考Kafka Shell命令介绍。开发一个Producer向 - [使用Producer API向安全Topic生产消息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130012.md): 用于实现Producer API向安全Topic生产消息。以下为用于实现Producer API向安全Topic生产消息的代码片段。详细内容在com.huawei.bigdata.kafka.example.Producer类的run方法中。 - [使用Consumer API订阅安全Topic并消费](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130013.md): 用于实现使用Consumer API订阅安全Topic,并进行消息消费。以下为用于实现使用Consumer API订阅安全Topic,并进行消息消费的代码片段。详细内容在com.huawei.bigdata.kafka.example.Consumer类中。 - [使用多线程Producer发送消息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130014.md): 在使用Producer API向安全Topic生产消息基础上,实现了多线程Producer,可启动多个Producer线程,并通过指定相同key值的方式,使每个线程对应向特定Partition发送消息。下面代码片段在com.huawei.bigdata.kafka.example.ProducerMultThread类的run方法中,用于 - [使用多线程Consumer消费消息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130015.md): 在使用Consumer API订阅安全Topic并消费基础上,实现了多线程并发消费,可根据Topic的Partition数目启动相应个数的Consumer线程来对应消费每个Partition上的消息。下面代码片段在com.huawei.bigdata.kafka.example.ConsumerMultThread类的run方法中,用于实 - [Kafka样例工程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130016.md): MRS样例工程获取地址为https://github.com/huaweicloud/huaweicloud-mrs-example,切换分支为与MRS集群相匹配的版本分支,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。当前MRS提供以下Kafka相关样例工程:Kafka相关样例工程样例工程位置描述kafka-exampl - [使用KafkaStreams统计数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130017.md): 以下提供High level KafkaStreams API代码样例及Low level KafkaStreams API代码样例,通过Kafka Streams读取输入Topic中的消息,统计每条消息中的单词个数,从输出Topic消费数据,将统计结果以Key-Value的形式输出,完成单词统计功能。下面代码片段在com.huawei. - [使用Sasl Plaintext认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130018.md): 在启用Kerberos认证集群环境下,Kafka当前支持Sasl Plaintext认证。本章节适用于MRS 3.2.0及之后版本。如果当前集群版本为MRS 3.2.0-LTS.1,需确保集群已安装MRS 3.2.0-LTS.1.5或之后的补丁版本。登录FusionInsight Manager页面。选择“集群 > 服务 > Kafka - [准备连接Kafka集群配置文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130020.md): 对于开启Kerberos认证的MRS集群,需提前准备具有相关组件操作权限的用户用于程序认证。以下Kafka权限配置示例供参考,在实际业务场景中可根据业务需求灵活调整。是,创建用户并在Ranger中赋予该用户相关操作权限:选择“系统 > 权限 > 用户 > 添加用户”,在新增用户界面创建一个机机用户,例如developuser。“用户组”需 - [使用Kafka Token认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130021.md): Token认证机制是一种轻量级身份认证机制,无需访问Kerberos认证,可在API中使用。提前在“样例工程文件夹\src\main\resources\producer.properties”文件中添加用户Token的如下参数。sasl.mechanism:用户使用的SASL机制,配置为SCRAM-SHA-512。sasl.jaas.c - [调测Kafka Producer样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130023.md): 已配置Windows通过EIP访问集群Kafka,详情请参见配置Windows通过EIP访问集群Kafka。如需在Linux调测程序,需要确保当前用户对“src/main/resources”目录下和依赖库文件目录下的所有文件,均具有可读权限。同时保证已安装JDK并已设置java相关环境变量。构建jar包方式有以下两种:方法一:选择“Ma - [调测Kafka Consumer样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130024.md): 如需在Windows调测程序,需要配置Windows通过EIP访问集群Kafka,详情请参见配置Windows通过EIP访问集群Kafka。如需在Linux调测程序,需要确保当前用户对“src/main/resources”目录下和依赖库文件目录下的所有文件,均具有可读权限。同时保证已安装Jdk并已设置java相关环境变量。java -c - [调测Kafka High level Streams样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130025.md): 在Windows环境调测程序步骤请参考在Windows中调测程序。cd /opt/clientsource bigdata_envkinit 组件操作用户(例如developuser)kafka-topics.sh --create --zookeeperquorumpeer实例IP地址:ZooKeeper客户端连接端口/kafka--r - [调测Kafka Low level Streams样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130026.md): 在Windows环境调测程序步骤请参考在Windows中调测程序。cd /opt/clientsource bigdata_envkinit 组件操作用户(例如developuser)kafka-topics.sh --create --zookeeperquorumpeer实例IP地址:ZooKeeper客户端连接端口/kafka--r - [使用Sasl Kerberos认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130027.md): 在安全集群环境下,各个组件之间不能够简单地相互通信,而需要在通信之前进行相互认证,以确保通信的安全性。Kafka应用开发需要进行Kafka、ZooKeeper、Kerberos的安全认证,这些安全认证只需要生成一个jaas文件并设置相关环境变量即可。LoginUtil相关接口可以完成这些配置。此代码片段在com.huawei.bigdat - [调测Kafka Token认证机制样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130028.md): 登录FusionInsight Manager管理界面,选择“集群 > 服务 > Kafka > 配置”,打开Kafka服务配置页面。开启Token认证机制。查找配置项delegation.token.master.key,该配置指定用于生成和验证Token的主密钥。先查看是否已经配置,如果已配置且不为null,则表示Token认证机制是 - [Kafka Shell命令介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130031.md): 查看当前集群Topic列表。bin/kafka-topics.sh --list --zookeeper bin/kafka-topics.sh --list --bootstrap-server --command-config config/clie - [Kafka Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130032.md): Kafka相关接口同开源社区保持一致,详情请参见https://kafka.apache.org/24/documentation.html。 - [使用Kafka客户端SSL加密](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130034.md): 客户端使用SSL功能前,必须要保证服务端SSL对应服务功能已经开启(服务端参数“ssl.mode.enable”设置为“true”)。SSL功能需要配合API进行使用,可参考配置Kafka数据安全传输协议章节。Linux客户端使用SSL功能修改客户端安装目录/Kafka/kafka/config/producer.properties和客 - [运行样例时提示Topic鉴权失败“TOPIC_AUTHORIZATION_FAILED”](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130036.md): 运行样例时提示Topic鉴权失败“example-metric1=TOPIC_AUTHORIZATION_FAILED”。 - [运行Producer.java样例报错获取元数据失败“ERROR fetching topic metadata...”](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130037.md): 已经拥有Topic访问权限,但是运行Producer.java样例报错获取元数据失败“ERROR fetching topic metadata for topics...”。如果IP与Kafka集群部署的业务IP不一致,那么需要修改为当前集群正确的IP地址。如果配置中的端口为21007(Kafka安全模式端口),那么修改该端口为9092 - [配置Windows通过EIP访问集群Kafka](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130038.md): 该章节通过指导用户配置集群绑定EIP,并配置Kafka文件的方法,方便用户可以在本地对样例文件进行编译。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 > 用户指南 > 弹性公网IP > 为弹性云服务器申请和绑定弹 - [使用SpringBoot生产消费Kafka集群数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130039.md): 本章节适用于MRS 3.3.0及之后版本。通过SpringBoot实现对Kafka集群生产消费的功能。通过SpringBoot实现Kafka生产消费的样例代码如下:Produce为生产消息接口,consume为消费消息接口,KafkaProperties为客户端参数,参数需要根据实际业务修改。上述样例代码中的KafkaProperties - [调测Kafka SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130040.md): 本章节适用于MRS 3.3.0及之后版本。“kafka-springboot-examples”样例代码,JDK版本支持JDK 8、JDK 17。登录FusionInsight Manager页面,选择“集群 > 服务 > Kafka > 配置 > 全部配置”,搜索参数“sasl.enabled.mechanisms”,将参数值改为“GS - [SpringBoot使用Spring-Kafka模块访问Kafka样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130042.md): 本章节适用于MRS 3.6.0及之后版本。Spring-Kafka是Spring生态系统中用于与Apache Kafka集成的模块,其提供了简化的API和配置方式,能帮助开发者更容易地在Spring应用中实现Kafka的生产者和消费者功能,能够显著降低Kafka的使用门槛。无论是简单的消息队列场景,还是复杂的事件驱动架构,Spring-K - [调测Spring-Kafka模块访问Kafka样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_130044.md): 本章节适用于MRS 3.6.0及之后版本。“module-spring-kafka-examples”样例代码,JDK版本支持JDK 17、JDK 21。登录FusionInsight Manager页面,选择“集群 > 服务 > Kafka > 配置 > 全部配置”,搜索参数“sasl.enabled.mechanisms”,将参数值改 - [MapReduce应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150002.md): Hadoop MapReduce是一个使用简易的并行计算软件框架,基于它写出来的应用程序能够运行在由上千个服务器组成的大型集群上,并以一种可靠容错的方式并行处理数T级别的数据集。一个MapReduce作业(application/job)通常会把输入的数据集切分为若干独立的数据块,由map任务(task)以完全并行的方式来处理。框架会对m - [MapReduce应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150004.md): 开发流程中各阶段的说明如图1和表1所示。 - [准备MapReduce开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。登录FusionInsight Manag - [导入并配置MapReduce样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150007.md): MapReduce针对多个场景提供样例工程,帮助客户快速学习MapReduce工程。以下操作步骤以导入MapReduce样例代码为例。操作流程如图1所示。打开IntelliJ IDEA,依次选择File > Open。在弹出的Open File or Project会话框中选择样例工程文件夹mapreduce-example-securi - [(可选)创建MapReduce样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150008.md): 除了导入MapReduce样例工程,您还可以使用IntelliJ IDEA新建一个MapReduce工程。 - [配置MapReduce应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150009.md): 在安全集群环境下,各个组件之间的相互通信不能够简单地互通,而需要在通信之前进行相互认证,以确保通信的安全性。用户在提交MapReduce应用程序时,需要与Yarn、HDFS等之间进行通信。那么提交MapReduce的应用程序中需要写入安全认证代码,确保MapReduce程序能够正常运行。安全认证有两种方式:命令行认证:提交MapReduc - [MapReduce统计样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150012.md): 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发MapReduce应用程序实现如下功能:统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。log1.txt:周六网民停留日志log2.txt:周日网民停留日志首 - [MapReduce统计样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150013.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。主要分为三个部分:从原文件中筛选女性网民上网时间数据信息,通过类CollectionMapper继承Mapper抽象类实现。汇总每个女性上网时间,并输出时间大于两个小时的女性网民信息,通过类CollectionReducer继承Reducer抽象类实现。main方法提供建立一个 - [MapReduce访问多组件样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150015.md): 该样例以MapReduce访问HDFS、HBase、Hive为例,介绍如何编写MapReduce作业访问多个服务组件。帮助用户理解认证、配置加载等关键使用方式。该样例逻辑过程如下:以HDFS文本文件为输入数据:log1.txt:数据输入文件Map阶段:获取输入数据的一行并提取姓名信息。查询HBase一条数据。查询Hive一条数据。将HBa - [MapReduce访问多组件样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150016.md): 主要分为三个部分:从HDFS原文件中抽取name信息,查询HBase、Hive相关数据,并进行数据拼接,通过类MultiComponentMapper继承Mapper抽象类实现。获取拼接后的数据取最后一条输出到HBase、HDFS,通过类MultiComponentReducer继承Reducer抽象类实现。main方法提供建立一个Map - [在本地Windows环境中调测MapReduce应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150019.md): 在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。MapReduce应用程序运行完成后,可通过如下方式查看应用程序的运行情况。在IntelliJ IDEA中查看应用程序运行情况。通过MapReduce日志获取应用程序运行情况。登录MapReduce WebUI查看应用程序运 - [在Linux环境中调测MapReduce应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150022.md): 在程序代码完成开发后,您可以在Linux环境中运行应用。MapReduce应用程序运行完成后,可通过如下方式查看应用程序的运行情况。通过运行结果查看程序运行情况。登录MapReduce WebUI查看应用程序运行情况。登录Yarn WebUI查看应用程序运行情况。通过MapReduce日志获取应用程序运行情况。请联系管理员获取具有访问We - [MapReduce Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150027.md): 关于MapReduce的详细API可以参考官方网站:https://hadoop.apache.org/docs/r3.1.1/api/index.html常用接口MapReduce中常见的类如下:org.apache.hadoop.mapreduce.Job:用户提交MR作业的接口,用于设置作业参数、提交作业、控制作业执行以及查询作业状 - [MapReduce REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150028.md): 通过HTTP REST API来查看更多MapReduce任务的信息。目前MapReduce的REST接口可以查询已完成任务的状态信息。完整和详细的接口请直接参考官网上的描述以了解其使用:https://hadoop.apache.org/docs/r3.1.1/hadoop-mapreduce-client/hadoop-mapredu - [提交MapReduce任务时客户端长时间无响应](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150030.md): 向YARN服务器提交MapReduce任务后,客户端提示如下信息后长时间无响应。对于上述出现的问题,ResourceManager在其WebUI上提供了MapReduce作业关键步骤的诊断信息,对于一个已经提交到YARN上的MapReduce任务,用户可以通过该诊断信息获取当前作业的状态以及处于该状态的原因。具体操作:登录FusionIn - [网络问题导致运行应用程序时出现异常](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150031.md): 应用程序在Windows环境下运行时,发现连接不上MRS集群,而在Linux环境下(和安装了MRS集群的机器是同一个网络)却运行正常。由于Kerberos认证需要使用UDP协议,而防火墙做了特殊处理关掉了需要使用的UDP端口,导致应用程序在Windows环境下运行的机器与MRS集群的网络不是完全通畅的,需要重新设置防火墙,把需要使用的UD - [MapReduce二次开发远程调试](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_150032.md): MapReduce二次开发过程中如何远程调试业务代码?MapReduce开发调试采用的原理是Java的远程调试机制,在Map/Reduce任务启动时,添加Java远程调试命令。修改客户端“客户端安装路径/Yarn/config/mapred-site.xml”配置文件中mapreduce.map.java.opts和mapreduce.r - [Oozie应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160002.md): Oozie是一个用来管理Hadoop job任务的工作流引擎,Oozie流程基于有向无环图(Directed Acyclical Graph)来定义和描述,支持多种工作流模式及流程定时触发机制。易扩展、易维护、可靠性高,与Hadoop生态系统各组件紧密结合。Oozie流程的三种类型:Workflow描述一个完整业务的基本流程。描述一个完整 - [Oozie应用开发流程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160004.md): 本文档主要基于Java API对Oozie进行应用开发。开发流程中各阶段的说明如图1和表1所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160006.md): 在进行二次开发时,要准备的开发和运行环境如表1所示。 - [导入并配置Oozie样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160007.md): 将下载的样例工程导入到Windows开发环境IDEA中即可开始样例学习。已按照准备本地应用开发环境章节准备好开发用户,例如developuser,并下载用户的认证凭据文件到本地。用户需要具备Oozie的普通用户权限,HDFS访问权限,Hive表读写权限,HBase读写权限以及Yarn的队列提交权限。用户需要具备Oozie的普通用户权限,H - [配置Oozie应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160008.md): 在安全集群环境下,各个组件之间的相互通信不能够简单地互通,而需要在通信之前进行相互认证,以确保通信的安全性。用户在开发Oozie应用程序时,某些场景下需要Oozie与Hadoop、Hive等之间进行通信。那么Oozie应用程序中需要写入安全认证代码,确保Oozie程序能够正常运行。安全认证有两种方式:命令行认证:提交Oozie应用程序运行 - [Oozie样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160011.md): 工作流配置文件workflow.xml(coordinator.xml是对工作流进行调度,bundle.xml是对一组coordinator进行管理)与job.properties。如果有实现代码,需要开发对应的jar包,例如Java Action;如果是Hive,则需要开发SQL文件。上传配置文件与jar包(包括依赖的jar包)到HDF - [Oozie应用开发步骤](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160012.md): 可以使用客户端样例目录中Mapreduce程序对日志目录的数据进行分析、处理。将Mapreduce程序的分析结果移动到数据分析结果目录,并将数据文件的权限设置成660。为了满足每天分析一次的需求,需要每天重复执行一次1.a~1.b。登录Oozie客户端所在节点,新建dataLoad目录,作为程序运行目录,后面编写的文件均保存在该目录下。例 - [job.properties](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160015.md): 流程的属性定义文件,定义了流程运行期间使用的外部参数值对。job.properties文件中包含的各参数及其含义,请参见表1。可以根据业务需要,以“key=values”的格式自定义参数及值。 - [workflow.xml](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160016.md): 描述了一个完整业务的流程定义文件。一般由一个start节点、一个end节点和多个实现具体业务的action节点组成。workflow.xml文件中包含的各参数及其含义,请参见表1。 - [Start Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160017.md): 流程任务的执行入口,每个流程任务有且仅有一个该节点。Start Action节点中包含的各参数及其含义,请参见表1。 - [End Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160018.md): 流程任务执行的终点,每个流程任务有且仅有一个该节点。End Action节点中包含的各参数及其含义,请参见表1。 - [Kill Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160019.md): 流程任务运行期间发生异常后,流程的异常结束节点。Kill Action节点中包含的各参数及其含义,请参见表1。 - [FS Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160020.md): HDFS文件操作节点,支持对HDFS文件及目录的创建、删除、授权功能。FS Action节点中包含的各参数及其含义,请参见表1。“${变量名}”表示:该值来自job.properties所定义。例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见job.properties) - [MapReduce Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160021.md): MapReduce任务节点,负责执行一个map-reduce任务。MapReduce Action节点中包含的各参数及其含义,请参见表1。“${变量名}”表示:该值来自job.properties所定义。例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见job.properties) - [coordinator.xml](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160022.md): 周期性执行workflow类型任务的流程定义文件。coordinator.xml中包含的各参数及其含义,请参见表1。“${变量名}”表示:该值来自job.properties所定义。例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见job.properties) - [通过Java API提交Oozie作业开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160024.md): 通过典型场景,用户可以快速学习和掌握Oozie的开发过程,并且对关键的接口函数有所了解。本示例演示了如何通过Java API提交MapReduce作业和查询作业状态,代码示例只涉及了MapReduce作业,其他作业的API调用代码是一样的,只是job配置job.properties与工作流配置文件workflow.xml不一样。完成导入并 - [通过Java API提交Oozie作业](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160025.md): Oozie通过org.apache.oozie.client.OozieClient的run方法提交作业,通过getJobInfo获取作业信息。代码示例中请根据实际情况,修改“OOZIE_URL_DEFAULT”为实际的任意Oozie节点的主机名,例如“https://10-1-131-131:21003/oozie/”。通过Java A - [在本地Windows环境中调测Oozie应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160029.md): 在使用Java接口完成开发程序代码后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。在Windows本地运行程序,需要配置https ssl证书。登录集群任意节点,进入如下目录下载ca.crt文件。cd ${BIGDATA_HOME}/om-agent_8.1.2.2/nodeagent - [查看Oozie应用调测结果](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160030.md): Oozie样例工程运行完成后可以通过控制台查看输出结果。控制台显示运行结果会有如下成功信息:同时在HDFS上生成目录/user/developuser/examples/output-data/map-reduce,包括如下两个文件:_SUCCESSpart-00000可以通过Hue的文件浏览器或者通过HDFS如下命令行查看:hdfs d - [Oozie Shell接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160036.md): Oozie其他的命令和参数可参见以下地址:https://oozie.apache.org/docs/5.1.0/DG_CommandLineTool.html。 - [Oozie Java接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160037.md): Java API主要由org.apache.oozie.client.OozieClient提供。 - [Oozie REST接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160038.md): Oozie常用REST接口与Java一样。Java API主要由org.apache.oozie.client.OozieClient提供。详情请参见https://oozie.apache.org/docs/5.1.0/WebServicesAPI.html。 - [使用Oozie调度Spark访问HBase以及Hive](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_160039.md): 已经配置完成导入并配置Oozie样例工程的前提条件。进入项目根目录,比如“D:\sample_project\src\oozie-examples\ooziesecurity-examples\OozieSparkHBaseExample”,然后执行mvn clean package -DskipTests命令,打包成功之后在target - [Spark应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200002.md): Spark是分布式批处理框架,提供分析挖掘与迭代式内存计算能力,支持多种语言(Scala/Java/Python)的应用开发。 适用以下场景:数据处理(Data Processing):可以用来快速处理数据,兼具容错性和可扩展性。迭代计算(Iterative Computation):支持迭代计算,有效应对多步的数据处理逻辑。数据挖掘(D - [Spark应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200004.md): Spark包含Spark Core、Spark SQL和Spark Streaming三个组件,其应用开发流程都是相同的。开发流程中各阶段的说明如图1和表1所示。 - [准备Spark本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200006.md): Spark2x可以使用Java/Scala/Python语言进行应用开发,要准备的开发和运行环境如表1所示。开发环境准备项说明操作系统开发环境:Windows系统,支持Windows 7以上版本。运行环境:Windows系统或Linux系统。如需在本地调测程序,运行环境需要和集群业务平面网络互通。安装JDKJava/Scala开发和运行环 - [导入并配置Spark样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200007.md): Spark针对多个场景提供样例工程,包含Java样例工程和Scala样例工程等,帮助客户快速学习Spark工程。针对Java和Scala不同语言的工程,其导入方式相同。使用Python开发的样例工程不需要导入,直接打开Python文件(*.py)即可。以下操作步骤以导入Java样例代码为例。操作流程如图1所示。打开IntelliJ IDE - [新建Spark样例工程(可选)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200008.md): 除了导入Spark样例工程,您还可以使用IDEA新建一个Spark工程。如下步骤以创建一个Scala工程为例进行说明。如果您需要新建Java语言的工程,选择对应参数即可。选择开发环境 - [配置Spark应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200012.md): 在安全集群环境下,各个组件之间的相互通信不能够简单地互通,而需要在通信之前进行相互认证,以确保通信的安全性。用户在开发Spark应用程序时,某些场景下,需要Spark与Hadoop、HBase等之间进行通信。那么Spark应用程序中需要写入安全认证代码,确保Spark程序能够正常运行。安全认证有三种方式:命令认证:提交Spark应用程序运 - [Spark Core样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200015.md): 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下功能:统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为,。log1.txt:周六网民停留日志LiuYang,female,20 YuanJi - [Spark Core样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200016.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection类: - [Spark Core样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200017.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection: - [Spark Core样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200018.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见collectFemaleInfo.py: - [Spark SQL样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200020.md): 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下功能:统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为,。log1.txt:周六网民停留日志LiuYang,female,20 YuanJi - [Spark SQL样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200021.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection:上面是简单示例,其它sparkSQL特性请参见如下链接:https://archive.apache.org/dist/spark/d - [Spark SQL样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200022.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection:上面是简单示例,其它sparkSQL特性请参见如下链接:https://archive.apache.org/dist/spark/d - [Spark SQL样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200023.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见SparkSQLPythonExample: - [通过JDBC访问Spark SQL样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200030.md): 用户自定义JDBCServer的客户端,使用JDBC连接来进行表的创建、数据加载、查询和删除。在default数据库下创建child表。把/home/data的数据加载进child表中。查询child表中的数据。删除child表。安全模式下Spark Core样例代码需要读取两个文件(user.keytab、krb5.conf)。user - [通过JDBC访问Spark SQL样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200031.md): 使用自定义客户端的JDBC接口提交数据分析任务,并返回结果。样例工程中的data文件需要放到JDBCServer所在机器的home目录下。由于KERBEROS认证成功后,默认有效期为1天,超过有效期后,如果客户端需要和JDBCServer新建连接则需要重新认证,否则就会执行失败。因此,若长期执行应用过程中需要新建连接,用户需要在url中添 - [通过JDBC访问Spark SQL样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200032.md): 使用自定义客户端的JDBC接口提交数据分析任务,并返回结果。样例工程中的data文件需要放到JDBCServer所在机器的home目录下。由于KERBEROS认证成功后,默认有效期为1天,超过有效期后,如果客户端需要和JDBCServer新建连接则需要重新认证,否则就会执行失败。因此,若长期执行应用过程中需要新建连接,用户需要在url中添 - [操作Avro格式数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200034.md): 用户可以在Spark应用程序中以数据源的方式去使用HBase,本例中将数据以Avro格式存储在HBase中,并从中读取数据以及对读取的数据进行过滤等操作。在客户端执行hbase shell,进入HBase命令行,使用下面的命令创建样例代码中要使用的HBase表:create'ExampleAvrotable','rowkey','cf1' - [操作HBase数据源](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200039.md): 用户可以在Spark应用程序中以数据源的方式去使用HBase,将dataFrame写入HBase中,并从HBase读取数据以及对读取的数据进行过滤等操作。在客户端执行hbase shell,进入HBase命令行,使用下面的命令创建样例代码中要使用的HBase表:create'HBaseSourceExampleTable','rowkey - [BulkPut接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200044.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将构建的RDD写入HBase中。在客户端执行hbase shell,进入HBase命令行,使用下面的命令创建样例代码中要使用的HBase表:create 'bulktable','cf1'创建RDD。以HBaseContext的方式操作HBase,将上面生成 - [BulkGet接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200049.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将要获取的数据的rowKey构造成rdd,然后通过HBaseContext的bulkGet接口获取对HBase表上这些rowKey对应的数据。基于BulkPut接口使用章节中创建的HBase表及其中的数据进行操作。创建包含了要获取的rowkey信息的RDD。 - [BulkDelete接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200054.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将要删除的数据的rowKey构造成rdd,然后通过HBaseContext的bulkDelete接口对HBase表上这些rowKey对应的数据进行删除。基于BulkPut接口使用章节创建的HBase表及其中的数据进行操作。创建包含了要删除的rowkey信息的 - [BulkLoad接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200059.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将要插入的数据的rowKey构造成rdd,然后通过HBaseContext的bulkLoad接口将rdd写入HFile中。将生成的HFile文件导入HBase表的操作采用如下格式的命令,不属于本接口范围,不在此进行详细说明:hbase org.apache. - [foreachPartition接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200064.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,将要插入的数据的rowKey构造成rdd,然后通过HBaseContext的mapPartition接口将rdd并发写入HBase表中。在客户端执行:hbase shell命令进入HBase命令行。使用下面的命令创建HBase表:create 'table2 - [分布式Scan HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200069.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,使用hbaseRDD方法以特定的规则扫描HBase表。使用操作Avro格式数据章节中创建的hbase数据表。设置scan的规则,例如:setCaching。使用特定的规则扫描Hbase表。安全模式下Spark Core样例代码需要读取两个文件(user.ke - [mapPartitions接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200074.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,使用mapPartition接口并行遍历HBase表。使用foreachPartition接口使用章节创建的HBase数据表。构造需要遍历的HBase表中rowkey的RDD。使用mapPartition接口遍历上述rowkey对应的数据信息,并进行简单的操 - [SparkStreaming批量写入HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200079.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,使用streamBulkPut接口将流数据写入HBase表中。在客户端执行hbase shell进入HBase命令行。在hbase命令执行下面的命令创建HBase表:create'streamingTable','cf1'create'streamingTa - [Spark从HBase读取数据再写入HBase样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200085.md): 假定HBase的table1表存储用户当天消费的金额信息,table2表存储用户历史消费的金额信息。现table1表有记录key=1,cf:cid=100,表示用户1在当天消费金额为100。table2表有记录key=1,cf:cid=1000,表示用户1的历史消息记录金额为1000。基于某些业务要求,要求开发Spark应用程序实现如下功 - [Spark从HBase读取数据再写入HBase样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200086.md): 用户可以使用Spark调用HBase接口来操作HBase table1表,然后把table1表的数据经过分析后写到HBase table2表中。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHbasetoHbase。 - [Spark从HBase读取数据再写入HBase样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200087.md): 用户可以使用Spark调用HBase接口来操作HBase table1表,然后把table1表的数据经过分析后写到HBase table2表中。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHbasetoHbase。 - [Spark从HBase读取数据再写入HBase样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200088.md): 用户可以使用Spark调用HBase接口来操作HBase table1表,然后把table1表的数据经过分析后写到HBase table2表中。由于pyspark不提供Hbase相关api,本样例使用Python调用Java的方式实现。下面代码片段仅为演示,具体代码参见SparkHbasetoHbasePythonExample: - [Spark从Hive读取数据再写入HBase样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200090.md): 假定Hive的person表存储用户当天消费的金额信息,HBase的table2表存储用户历史消费的金额信息。现person表有记录name=1,account=100,表示用户1在当天消费金额为100。table2表有记录key=1,cf:cid=1000,表示用户1的历史消息记录金额为1000。基于某些业务要求,要求开发Spark应用 - [Spark从Hive读取数据再写入HBase样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200091.md): 在Spark应用中,通过使用Spark调用Hive接口来操作hive表,然后把Hive表的数据经过分析后写到HBase表。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHivetoHbase - [Spark从Hive读取数据再写入HBase样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200092.md): 在Spark应用中,通过使用Spark调用Hive接口来操作hive表,然后把Hive表的数据经过分析后写到HBase表。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHivetoHbase - [Spark从Hive读取数据再写入HBase样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200093.md): 在Spark应用中,通过使用Spark调用Hive接口来操作hive表,然后把Hive表的数据经过分析后写到HBase表。由于pyspark不提供Hbase相关api,本样例使用Python调用Java的方式实现。下面代码片段仅为演示,具体代码参见SparkHivetoHbasePythonExample: - [Spark Streaming对接Kafka0-10样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200100.md): 假定某个业务Kafka每1秒就会收到1个单词记录。基于某些业务要求,开发的Spark应用程序实现如下功能:实时累加计算每个单词的记录总数。log1.txt示例文件:Spark Streaming样例工程的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户)。确保集群安装完成,包括HDFS、Yarn、Spark和 - [Spark Streaming对接Kafka0-10样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200101.md): 在Spark应用中,通过使用Streaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数,或将数据写入Kafka0-10。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SecurityKafkaWordCount。下面代码片段仅为演示,具体代码参见 - [Spark Streaming对接Kafka0-10样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200102.md): 在Spark应用中,通过使用Streaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数,或将数据写入Kafka0-10。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SecurityKafkaWordCount。下面代码片段仅为演示,具体代码参见 - [Spark Structured Streaming样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200104.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。StructuredStreaming样例工程的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户)。确保集群安装完成,包括HDFS、Yarn、Spark和Kafka。 - [Spark Structured Streaming样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200105.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SecurityKafkaWordCount。当Streaming DataFrame/Da - [Spark Structured Streaming样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200106.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SecurityKafkaWordCount。当Streaming DataFrame/Da - [Spark Structured Streaming样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200107.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。下面代码片段仅为演示,具体代码参见:SecurityKafkaWordCount。当Streaming DataFrame/Dataset中有新的可用数据时,outputMode用于配置写入Str - [Spark Structured Streaming对接Kafka样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200111.md): 假定一个广告业务,存在广告请求事件、广告展示事件、广告点击事件,广告主需要实时统计有效的广告展示和广告点击数据。已知:终端用户每次请求一个广告后,会生成广告请求事件,保存到kafka的adRequest topic中。请求一个广告后,可能用于多次展示,每次展示,会生成广告展示事件,保存到kafka的adShow topic中。每个广告展示 - [Spark Structured Streaming对接Kafka样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200112.md): 使用Structured Streaming,从kafka中读取广告请求数据、广告展示数据、广告点击数据,实时获取广告有效展示统计数据和广告有效点击统计数据,将统计结果写入kafka中。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.KafkaADCount。 - [Spark Structured Streaming状态操作样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200124.md): 假设需要跨批次统计每个session期间发生了多少次event以及本session的开始和结束timestamp。同时输出本批次被更新状态的session。在kafka中生成模拟数据(需要有Kafka权限用户)。确保集群安装完成,包括安装HDFS、Yarn、Spark2x和Kafka服务。将Kafka的Broker配置参数allow.ev - [Spark Structured Streaming状态操作样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200125.md): 在Spark结构流应用中,跨批次统计每个session期间发生了多少次event以及本session的开始和结束timestamp;同时输出本批次被更新状态的session。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.kafkaSessionization。当Streaming - [Spark同时访问两个HBase样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200127.md): spark支持同时访问两个集群中的HBase,前提是两个集群配置了互信。将cluster2集群的所有Zookeeper节点和HBase节点的IP和主机名配置到cluster1集群的客户端节点的/etc/hosts文件中。分别将cluster1和cluster2集群Spark2x客户端conf下的hbase-site.xml文件放到“/op - [Spark同时访问两个HBase样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200128.md): 以下为Spark同时访问两个HBase样例程序的Scala示例。下面代码片段仅为演示。具体代码参见:com.huawei.spark.examples.SparkOnMultiHbase - [在Linux环境中调测Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200130.md): 在程序代码完成开发后,您可以上传至Linux客户端环境中运行应用。使用Scala或Java语言开发的应用程序在Spark客户端的运行步骤是一样的。使用Python开发的Spark应用程序无需打包成jar,只需将样例工程复制到编译机器上即可。用户需保证worker和driver的Python版本一致,否则将报错:"Python in wor - [Spark Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200137.md): 由于Spark开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Spark主要使用到如下这几个类:JavaSparkContext:是Spark的对外接口,负责向调用该类的Java应用提供Spark的各种功能,如连接Spark集群,创建RDD,累积量和广播量等。它的作用相当于一个容器。SparkConf:Sp - [Spark Scala API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200138.md): 由于Spark开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Spark主要使用到如下这几个类:SparkContext:是Spark的对外接口,负责向调用该类的scala应用提供Spark的各种功能,如连接Spark集群,创建RDD等。SparkConf:Spark应用配置类,如设置应用名称,执行模式,e - [Spark Python API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200139.md): 由于Spark开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Spark主要使用到如下这几个类:pyspark.SparkContext:是Spark的对外接口。负责向调用该类的python应用提供Spark的各种功能,如连接Spark集群、创建RDD、广播变量等。pyspark.SparkConf:Spa - [Spark REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200140.md): Spark的REST API以JSON格式展现Web UI的一些指标,提供用户一种更简单的方法去创建新的展示和监控的工具,并且支持查询正在运行的app和已经结束的app的相关信息。开源的Spark REST接口支持对Jobs、Stages、Storage、Environment和Executors的信息进行查询,FusionInsight - [Spark client CLI介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200141.md): Spark CLI详细的使用方法参考官方网站的描述:https://archive.apache.org/dist/spark/docs/3.3.1/quick-start.html。Spark常用的CLI如下所示:spark-shell提供了一个简单学习API的方法,类似于交互式数据分析的工具。同时支持Scala和Python两种语言。 - [Spark JDBCServer接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200142.md): JDBCServer是Hive中的HiveServer2的另外一个实现,它底层使用了Spark SQL来处理SQL语句,从而比Hive拥有更高的性能。JDBCServer是一个JDBC接口,用户可以通过JDBC连接JDBCServer来访问SparkSQL的数据。JDBCServer在启动的时候,会启动一个sparkSQL的应用程序,而通 - [structured streaming功能与可靠性介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200144.md): 支持对流式数据的ETL操作。支持流式DataFrames或Datasets的schema推断和分区。流式DataFrames或Datasets上的操作:包括无类型,类似SQL的操作(比如select、where、groupBy),以及有类型的RDD操作(比如map、filter、flatMap)。支持基于Event Time的聚合计算,支 - [如何添加自定义代码的依赖包](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200146.md): 用户在开发Spark程序时,会添加样例程序外的自定义依赖包。针对自定义代码的依赖包,如何使用IDEA添加到工程中?在Project Structure页面,选择Artifacts页签。在右侧窗口中单击+,选择Library Files添加依赖包。添加Library Files选择需要添加的依赖包,然后单击OK。Choose Librari - [如何处理自动加载的依赖包](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200147.md): 在使用IDEA导入工程前,如果IDEA工具中已经进行过Maven配置时,会导致工具自动加载Maven配置中的依赖包。当自动加载的依赖包与应用程序不配套时,导致工程Build失败。如何处理自动加载的依赖包?建议在导入工程后,手动删除自动加载的依赖。步骤如下:在IDEA工具中,选择FileProject Structures...,。选择Li - [运行SparkStreamingKafka样例工程时报“类不存在”问题](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200148.md): 通过spark-submit脚本提交KafkaWordCount(org.apache.spark.examples.streaming.KafkaWordCount)任务时,日志中报Kafka相关的类不存在的错误。KafkaWordCount样例为Spark开源社区提供的。Spark部署时,如下jar包存放在客户端的${SPARK_HO - [SparkSQL UDF功能的权限控制机制](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200149.md): SparkSQL中UDF功能的权限控制机制是怎样的?目前已有的SQL语句无法满足用户场景时,用户可使用UDF功能进行自定义操作。为确保数据安全以及UDF中的恶意代码对系统造成破坏,SparkSQL的UDF功能只允许具备admin权限的用户注册,由admin用户保证自定义的函数的安全性。 - [由于Kafka配置的限制,导致Spark Streaming应用运行失败](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200150.md): 使用运行的Spark Streaming任务回写Kafka时,Kafka上接收不到回写的数据,且Kafka日志报错信息如下:如下图所示,Spark Streaming应用中定义的逻辑为,从Kafka中读取数据,执行对应处理之后,然后将结果数据回写至Kafka中。例如:Spark Streaming中定义了批次时间,如果数据传入Kafka的 - [执行Spark Core应用,尝试收集大量数据到Driver端,当Driver端内存不足时,应用挂起不退出](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200151.md): 执行Spark Core应用,尝试收集大量数据到Driver端,当Driver端内存不足时,应用挂起不退出,日志内容如下。用户尝试收集大量数据到Driver端,如果Driver端的内存不足以存放这些数据,那么就会抛出OOM(OutOfMemory)的异常,然后Driver端一直在进行GC,尝试回收垃圾来存放返回的数据,导致应用长时间挂起。 - [Spark应用名在使用yarn-cluster模式提交时不生效](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200152.md): Spark应用名在使用yarn-cluster模式提交时不生效,在使用yarn-client模式提交时生效,如图1所示,第一个应用是使用yarn-client模式提交的,正确显示代码里设置的应用名Spark Pi,第二个应用是使用yarn-cluster模式提交的,设置的应用名没有生效。导致这个问题的主要原因是,yarn-client和y - [如何使用IDEA远程调试](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200153.md): 在Spark二次开发中如何使用IDEA远程调试?以调试SparkPi程序为例,演示如何进行IDEA的远程调试:打开工程,在菜单栏中选择Run > Edit Configurations。在弹出的配置窗口中用鼠标左键单击左上角的号,在下拉菜单中选择Remote,如图1所示。选择Remote选择对应要调试的源码模块路径,并配置远端调试参数Ho - [如何采用Java命令提交Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200154.md): 除了spark-submit命令提交应用外,如何采用Java命令提交Spark应用?您可以通过org.apache.spark.launcher.SparkLauncher类采用java命令方式提交Spark应用。详细步骤如下:如果您使用Java语言开发程序,您可以参考如下示例,编写SparkLauncher类。public static - [使用IBM JDK产生异常,提示“Problem performing GSS wrap”信息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200155.md): 使用IBM JDK产生异常,提示“Problem performing GSS wrap”信息问题原因:在IBM JDK下建立的JDBC connection时间超过登录用户的认证超时时间(默认一天),导致认证失败。IBM JDK的机制跟Oracle JDK的机制不同,IBM JDK在认证登录后的使用过程中做了时间检查却没有检测外部的时间 - [Structured Streaming的cluster模式,在数据处理过程中终止ApplicationManager,应用失败](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200156.md): Structured Streaming的cluster模式,在数据处理过程中终止ApplicationManager,执行应用时显示如下异常。原因分析:显示该异常是因为recoverFromCheckpointLocation的值判定为false,但却配置了checkpoint目录。参数recoverFromCheckpointLoca - [从checkpoint恢复spark应用的限制](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200158.md): Spark应用可以从checkpoint恢复,用于从上次任务中断处继续往下执行,以保证数据不丢失。但是,在某些情况下,从checkpoint恢复应用会失败。由于checkpoint中包含了spark应用的对象序列化信息、task执行状态信息、配置信息等,因此,当存在以下问题时,从checkpoint恢复spark应用将会失败。业务代码变更 - [第三方jar包跨平台(x86、TaiShan)支持](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200159.md): 用户自己写的jar包(比如自定义udf包)区分x86和TaiShan版本,如何让spark2x支持其正常运行。第三方jar包(例如自定义udf)区分x86和TaiShan版本时,混合使用方案:cd /opt/Bigdata/FusionInsight_Spark_*/install/FusionInsight-Spark-*/spark步 - [在客户端安装节点的/tmp目录下残留了很多blockmgr-开头和spark-开头的目录](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200160.md): 系统长时间运行后,在客户端安装节点的/tmp目录下,发现残留了很多blockmgr-开头和spark-开头的目录。Spark任务在运行过程中,driver会创建一个spark-开头的本地临时目录,用于存放业务jar包,配置文件等,同时在本地创建一个blockmgr-开头的本地临时目录,用于存放block data。此两个目录会在Spark - [ARM环境python pipeline运行报139错误码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200162.md): 在TaiShan服务器上,使用python插件的pipeline报错显示139错误。具体报错如下:该python程序既使用了libcrypto.so,也使用了libssl.so。而一旦LD_LIBRARY_PATH添加了hadoop的native库目录,则使用的就是hadoop native库中的libcrypto.so,而使用系统自带的 - [Structured Streaming 任务提交方式变更](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200163.md): 用户提交结构流任务时,通常需要通过--jars命令指定kafka相关jar包的路径,例如--jars /kafkadir/kafka-clients-x.x.x.jar,/kafkadir/kafka_2.11-x.x.x.jar。当前版本用户除了这一步外还需要额外的配置项,否则会报class not found异常。当前版本的Spark - [使用Spark执行Hudi样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200168.md): 本章节介绍如何使用Spark操作Hudi执行插入数据、查询数据、更新数据、增量查询、特定时间点查询、删除数据等操作。详细代码请参考样例代码。将user.keytab、krb5.conf 两个文件上传客户端所在服务器上。通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。编译打包前, - [使用Spark执行Hudi样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200169.md): 下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.hudi.examples.HoodieDataSourceExample。插入数据:查询数据:更新数据:增量查询:特定时间点查询: - [使用Spark执行Hudi样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200170.md): 下面代码片段仅为演示,具体代码参见:HudiPythonExample.py。插入数据:#insert inserts = sc._jvm.org.apache.hudi.QuickstartUtils.convertToStringList(dataGen.generateInserts(10)) df = spark.read.jso - [HoodieDeltaStreamer](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200172.md): 编写自定义的转化类实现Transformer。编写自定义的Schema实现SchemaProvider。在执行HoodieDeltaStreamer时加入参数:Transformer和SchemaProvider样例: - [自定义排序器](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200173.md): 编写自定义排序类继承BulkInsertPartitioner,在写入Hudi时加入配置:自定义分区排序器样例: - [配置Windows通过EIP访问集群Spark](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200175.md): 该章节通过指导用户配置集群绑定EIP,并配置Spark文件的方法,方便用户可以在本地对样例文件进行编译。本章节以运行SparkScalaExample样例为例进行说明。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 - [常见jar包冲突处理方式](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200176.md): Spark能对接很多的第三方工具,因此在使用过程中经常会依赖一堆的三方包。而有一些包MRS已经自带,这样就有可能造成代码使用的jar包版本和集群自带的jar包版本不一致,在使用过程中就有可能出现jar包冲突的情况。常见的jar包冲突报错有:1、报错类找不到:java.lang.NoClassDefFoundError2、报错方法找不到:j - [在本地Windows环境中调测Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200181.md): 在程序代码完成开发后,您可以在Windows环境中运行应用。使用Scala或Java语言开发的应用程序在IDEA端的运行步骤是一样的。Windows环境中目前只提供通过JDBC访问Spark SQL的程序样例代码的运行,其他样例代码暂不提供。用户需保证Maven已配置华为镜像站中SDK的Maven镜像仓库,具体可参考配置华为开源镜像仓。下 - [配置Spark Python3样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200182.md): 为了运行MRS产品Spark2x组件的Python3接口样例代码,需要完成下面的操作。在客户端机器的命令行终端输入python3可查看Python版本号。如下显示Python版本为3.8.2。Python 3.8.2 (default, Jun 23 2020, 10:26:03) [GCC 4.8.5 20150623 (Red Hat - [在PySpark程序中使用Conda打包Python环境及第三方库](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200190.md): 本小节旨在指导用户在PySpark环境中配置Python第三方库。使用其他Python版本可能会导致兼容性问题。通过使用Conda创建独立的Python环境,您可以灵活地安装和管理所需的第三方库,避免与系统Python或其他项目环境产生冲突。确保您的开发环境中已经安装Conda环境,支持Windows和Linux系统,您可以从Anacon - [在PySpark程序中创建自定义UDF、UDAF和UDTF](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200193.md): 本章节指导用户通过PySpark程序中创建自定义UDF、UDAF和UDTF。当前版本Spark仅支持Python 3.7、3.8、3.9和3.10版本,使用其他Python版本可能会导致兼容性问题。已参考在PySpark程序中使用Conda打包Python环境及第三方库章节准备Python环境。在PySpark中,通过Python创建的U - [Driver所在节点“/tmp”目录下残留大量大文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_200195.md): 在执行某些PySpark任务后,Driver节点的“/tmp”目录下会残留大量大文件,占用过多的磁盘存储空间。残留目录样例如下:在提交PySpark任务时,如果代码中导入了prophet或fbprophet库(其他第三方库也可能导致类似问题,需要业务提前识别),并在进行模型训练或预测时,这些库会在工作目录(默认情况下是系统的临时目录,通常 - [YARN应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_220001.md): Yarn是一个分布式的资源管理系统,用于提高分布式的集群环境下的资源利用率,这些资源包括内存、I/O、网络、磁盘等。其产生的原因是为了解决原MapReduce框架的不足。最初MapReduce的committer还可以周期性的在已有的代码上进行修改,可是随着代码的增加以及原MapReduce框架设计的不足,在原MapReduce框架上进行 - [YARN Command介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_220003.md): 管理员可以使用yarn命令对YARN集群进行一些操作,例如启动ResourceManager、提交应用程序、中止应用、查询节点状态、下载container日志等操作。YARN Commands可同时供普通用户和管理员用户使用,它包含了少量普通用户可以执行的命令,比如jar、logs,而大部分只有管理员有权限使用。用法:进入Yarn客户端目 - [YARN Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_220004.md): YARN常用的Java类如下所示,更多关于YARN的详细API可以参考官方网站描述:https://hadoop.apache.org/docs/r3.3.1/api/index.html。ApplicationClientProtocol用于Client与ResourceManager之间,Client通过该协议可实现将应用程序提交到R - [YARN REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_220005.md): 通过HTTP REST API来查看更多Yarn任务的信息,目前Yarn的REST接口只能进行一些资源或者任务的查询。更多完整和详细的接口描述请参考官网https://hadoop.apache.org/docs/r3.3.1/hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html。在集群节点 - [Superior Scheduler REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_220006.md): REST/HTTP是Superior Scheduler在YARN资源管理器主机和YARN资源管理网络服务端口的一部分,通常以“Resource Manager实例IP地址:端口”的形式连接YARN。在开启了Kerberos认证的安全模式MRS集群中,使用HTTPS作为URL的一部分,并且只有HTTPS将得到支持。查询Scheduler - [Flink应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260002.md): Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。Flink技术栈如图1所示。Flink - [Flink应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260004.md): Flink开发流程参考如下步骤: - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果使用Linux环境调测程序,需在准备安装集群客户端的Linux节点并获取相关配置文件。在节点中安装客户端,例如客户端安装目录为“/opt/client”。客户端机器的时间与集群的时间要保持一致,时间差小于5分 - [导入并配置Flink样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260008.md): Flink针对多个场景提供样例工程,包含Java样例工程和Scala样例工程等,帮助客户快速学习Flink工程。针对Java和Scala不同语言的工程,其导入方式相同。以下操作步骤以导入Java样例代码为例。操作流程如图1所示。在安全模式下,获取“src\flink-examples”下的样例工程flink-examples-securi - [Flink DataStream样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260012.md): 假定用户有某个网站周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Flink的DataStream应用程序实现如下功能:DataStream应用程序可以在Windows环境和Linux环境中运行。实时统计总计网购时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符 - [Flink DataStream样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260013.md): 统计连续网购时间超过2个小时的女性网民信息,将统计结果直接打印。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.flink.examples.FlinkStreamJavaExample:执行之后打印结果如下所示:执行如图1所示。 - [Flink DataStream样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260014.md): 实时统计连续网购时间超过2个小时的女性网民信息,将统计结果直接打印出来。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.flink.examples.FlinkStreamScalaExample:执行之后打印结果如下所示:执行如图1所示。 - [Flink Kafka样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260016.md): 假定某个Flink业务每秒就会收到1个消息记录。基于某些业务要求,开发的Flink应用程序实现功能:实时输出带有前缀的消息内容。Flink样例工程的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户),并从Kafka组件接收数据。确保集群安装完成,包括HDFS、Yarn、Flink和Kafka。创建Topic。 - [Flink Kafka样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260017.md): 在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。下面列出producer和consumer主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.WriteIntoKafka和com.huawei.bigdata.flink.examples.Re - [Flink Kafka样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260018.md): 在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。下面列出producer和consumer主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.WriteIntoKafka和com.huawei.bigdata.flink.examples.Re - [Flink开启Checkpoint样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260020.md): 假定用户需要每隔1秒钟统计4秒钟窗口中数据的量,并做到状态严格一致性,即:当应用出现异常并恢复后,各个算子的状态能够处于统一的状态。使用自定义算子每秒钟产生大约10000条数据。产生的数据为一个四元组(Long,String,String,Integer)。数据经统计后,统计结果打印到终端输出。打印输出的结果为Long类型的数据。sour - [Flink开启Checkpoint样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260021.md): 假定用户需要每隔1秒钟统计4秒钟窗口中数据的量,并做到状态严格一致性。快照数据该数据在算子制作快照时用于保存到目前为止算子记录的数据条数。import java.io.Serializale; // 该类作为快照的一部分,保存用户自定义状态 public class UDFState implements Serializable { - [Flink开启Checkpoint样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260022.md): 假定用户需要每隔1秒钟统计4秒钟窗口中数据的量,并做到状态严格一致性。发送数据形式case class SEvent(id: Long, name: String, info: String, count: Int)快照数据该数据在算子制作快照时用于保存到目前为止算子记录的数据条数。// 用户自定义状态 class UDFState ex - [Flink Job Pipeline样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260025.md): 本章节适用于MRS 3.6.0-LTS.1之前版本。下面列出的主要逻辑代码作为演示。完整代码请参阅:com.huawei.bigdata.flink.examples.UserSource。com.huawei.bigdata.flink.examples.TestPipelineNettySink。com.huawei.bigdata. - [Flink Job Pipeline样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260026.md): 本章节适用于MRS 3.6.0-LTS.1之前版本。下面列出的主要逻辑代码作为演示。完整代码请参阅:com.huawei.bigdata.flink.examples.UserSource。com.huawei.bigdata.flink.examples.TestPipeline_NettySink。com.huawei.bigdata - [Flink Join样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260032.md): 假定某个Flink业务1每秒就会收到1条消息记录,消息记录某个用户的基本信息,包括名字、性别、年龄。另有一个Flink业务2会不定时收到1条消息记录,消息记录该用户的名字、职业信息。基于某些业务要求,开发的Flink应用程序实现功能:实时地以根据业务2中消息记录的用户名字作为关键字,对两个业务数据进行联合查询。业务1的数据存储在Kafka - [Flink Join样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260033.md): 在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。用户在开发前需要使用对接安全模式的Kafka,则需要引入kafka-clients-*.jar,该jar包可在client目录下获取。下面列出producer和consumer,以及Flink Stream SQL Join使用主要逻辑代码作为演 - [编译并调测Flink应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260035.md): 在程序代码完成开发后,建议您上传至Linux客户端环境中运行应用。使用Scala或Java语言开发的应用程序在Flink客户端的运行步骤是一样的。基于YARN集群的Flink应用程序不支持在Windows环境下运行,只支持在Linux环境下运行。编译方式有以下两种:方法一:选择“Maven > 样例工程名称 > Lifecycle > c - [查看Flink应用调测结果](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260036.md): Flink应用程序运行完成后,您可以查看运行结果数据,也可以通过Flink WebUI查看应用程序运行情况。查看Flink应用运行结果数据。当用户查看执行结果时,需要在Flink的web页面上查看Task Manager的Stdout日志。当执行结果输出到文件或者其他,由Flink应用程序指定,您可以通过指定文件或其他获取到运行结果数据。 - [Flink Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260039.md): 由于Flink开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Flink主要使用到如下这几个类:StreamExecutionEnvironment:是Flink流处理的基础,提供了程序的执行环境。DataStream:Flink用类DataStream来表示程序中的流式数据。用户可以认为它们是含有重复数据 - [Flink Scala API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260040.md): 由于Flink开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Flink主要使用到如下这几个类:StreamExecutionEnvironment:是Flink流处理的基础,提供了程序的执行环境。DataStream:Flink用特别的类DataStream来表示程序中的流式数据。用户可以认为它们是含有重 - [Flink REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260041.md): Flink具有可用于查询正在运行的作业的状态和统计信息以及最近完成作业的监视API。该监视API由Flink自己的WEB UI使用。监视API是REST API,可接受HTTP GET请求并使用JSON数据进行响应。REST API是访问Web服务器的一套API。当前在Flink中,Web服务器是JobManager的一个模块,和JobM - [Flink Savepoints CLI介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260042.md): Savepoints在持久化存储中保存某个checkpoint,以便用户可以暂停自己的应用进行升级,并将状态设置为savepoint的状态,并继续运行。该机制利用了Flink的checkpoint机制创建流应用的快照,并将快照的元数据(meta-data)写入到一个额外的持久化文件系统中。如果需要使用savepoints的功能,强烈推荐用 - [Flink Client CLI介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260043.md): Flink常用的CLI如下所示:yarn-session.sh可以使用yarn-session.sh启动一个常驻的Flink集群,接受来自客户端提交的任务。启动一个有3个TaskManager实例的Flink集群示例如下:bin/yarn-session.shyarn-session.sh的其他参数可以通过以下命令获取:bin/yarn- - [如何处理用户在使用chrome浏览器时无法显示任务状态的title](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260046.md): 用户在使用chrome浏览器浏览Flink Web UI页面时无法显示title。此处以Tasks为例进行分析,用户将鼠标置于Tasks的彩色小方框上,无法显示彩色小框的title说明,如图1所示。正常的显示界面如图2所示。如果用户遇到chrome浏览器无法显示title,步骤如下:请检查本机是否同时运行会影响chrome浏览器冒泡提示的 - [如何处理IE10/11页面算子的文字部分显示异常](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260047.md): 如何处理IE10/11页面显示异常,每个算子的文字部分没有显示出来的问题?如图1所示,Overview显示为空白。Flink中用了foreignObject元素来代理绘制svg矢量图,但是IE 10/11不支持foreignObject导致算子显示异常。支持使用chrome浏览器。 - [如何处理Checkpoint设置RocksDBStateBackend方式时Checkpoint慢](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260048.md): 如何处理checkpoint设置RocksDBStateBackend方式,且当数据量大时,执行checkpoint会很慢的问题?由于窗口使用自定义窗口,这时窗口的状态使用ListState,且同一个key值下,value的值非常多,每次新的value值到来都要使用RocksDB的merge()操作;触发计算时需要将该key值下所有的va - [如何处理blob.storage.directory配置/home目录时启动yarn-session失败](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260049.md): 当用户设置blob.storage.directory为“/home”时,用户没有权限在“/home”下创建blobStore-UUID的文件,导致yarn-session启动失败。修改Flink客户端配置文件conf/flink-conf.yaml,配置blob.storage.directory: /home/testdir/test - [如何处理非static的KafkaPartitioner类对象构造FlinkKafkaProducer010运行时报错](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260050.md): Flink内核升级到1.3.0之后,当Kafka调用带有非static的KafkaPartitioner类对象为参数的FlinkKafkaProducer010去构造函数时,运行时会报错。报错内容如下:Flink的1.3.0版本,为了兼容原有那些使用KafkaPartitioner的API接口,如FlinkKafkaProducer010 - [如何处理新创建的Flink用户提交任务报ZooKeeper文件目录权限不足](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260051.md): 创建一个新的Flink用户,提交任务,ZooKeeper目录无权限导致提交Flink任务失败,日志中报如下错误:首先查看ZooKeeper中/flink_base的目录权限是否为:'world,'anyone: cdrwa;如果不是,请修改/flink_base的目录权限为:'world,'anyone: cdrwa,然后继续根据2排查; - [如何处理无法直接通过URL访问Flink Web](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260052.md): 无法通过http://JobManager IP:JobManager的端口访问Web页面。由于浏览器所在的计算机IP地址未加到Web访问白名单导致。用户可以通过修改客户端的配置文件“conf/flink-conf.yaml”来解决问题。确认配置项“jobmanager.web.ssl.enabled”的值是否是“false”,若不是,请 - [如何查看System.out.println打印的调试信息或将调试信息输出至指定文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260053.md): Flink业务代码中添加了System.out.println调试信息打印,该如何查看此调试日志?避免与运行日志混在一起打印,如何将业务日志单独输出至指定文件?Flink所有的运行日志打印都会打印至Yarn的本地目录下,默认所有Log都会输出至Yarn container本地目录下taskmanager.log,所有调用System.ou - [如何处理Flink任务配置State Backend为RocksDB时报错GLIBC版本问题](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260054.md): Flink任务配置State Backend为RocksDB时,运行报如下错误:运行的系统和编译环境所在的系统版本不同,造成GLIBC的版本不兼容。使用strings /lib64/libpthread.so.0 | grep GLIBC命令查看GLIBC是否版本低于2.12。如果GLIBC版本太低,则需要使用含有较高版本的(此处为2.1 - [Flink HBase样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260066.md): 本章节适用于MRS 3.2.0及以后版本。本样例介绍通过Flink API作业读写HBase数据。准备HBase配置文件,通过Manager下载集群配置,获取“hbase-site.xml”文件。写HBase:通过参数指定“hbase-site.xml”文件的父目录,Flink Sink可以获取到HBase的Connection。通过Co - [Flink HBase样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260067.md): 通过调用Flink API读写HBase数据。下面列出WriteHBase和ReadHBase主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.WriteHBase和com.huawei.bigdata.flink.examples.ReadHBase。WriteHBase主要逻辑代码p - [导入并配置Flink SpringBoot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260068.md): 该章节内容适用于MRS 3.3.0及之后版本。为了运行FusionInsight MRS产品Flink组件的SpringBoot接口样例代码,需要完成下面的操作。当前支持GaussDB(DWS)样例工程。该章节以在Linux环境下开发GaussDB(DWS) SpringBoot方式连接Flink服务的应用程序为例。执行GaussDB(D - [Flink Join样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260069.md): 本章节适用于MRS 3.3.0及以后版本。在Flink应用中,调用flink-connector-kafka模块的接口,生产并消费数据。用户在开发前需要使用对接安全模式的Kafka,则需要引入FusionInsight的kafka-clients-*.jar,该jar包可在Kafka客户端目录下获取。下面列出producer和consum - [Flink Jar作业提交SQL样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260071.md): 当作业的SQL语句修改频繁时,可使用Flink Jar的方式提交Flink SQL语句,以减少用户工作量。本场景适用于MRS 3.2.1及以后版本。使用当前样例提交并执行指定的SQL语句,多个语句之间使用分号分隔。 - [Flink Jar作业提交SQL样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260072.md): 提交SQL的核心逻辑如下,目前只支持提交CREATE和INSERT语句。完整代码参见com.huawei.bigdata.flink.examples.FlinkSQLExecutor。需将当前样例需要的依赖包,即编译之后lib文件下面的jar包复制到客户端的lib文件夹内。以对接普通模式Kafka提交SQL为例: - [使用代理用户访问FlinkServer REST API样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260074.md): 通过代理用户调用FlinkServer RestAPI。以FlinkServer管理员权限的用户访问API来获取普通用户权限。本章节适用于MRS 3.3.0及以后版本。以租户用户为“test92”,租户ID为“92”,获取具有FlinkServer管理员权限的用户名为“flinkserveradmin”的代理访问API为例,以下代码为完整 - [Flink Hudi样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260076.md): 本章节适用于MRS 3.3.0及以后版本。本样例中Job每秒生成1条数据,将数据写入到Hudi表中,再读取并打印Hudi表中的数据。写Hudi:通过一个随机生成数据类来生成数据。将生成的数据转化为DataStream。将数据写入到Hudi表中。同步数据到Hive(适用于MRS 3.6.0-LTS及之后版本)。通过一个随机 - [Flink Hudi样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260077.md): 通过调用Flink API读写Hudi数据。下面列出WriteIntoHudiWithSyncHive、WriteIntoHudi和ReadFromHudi主要逻辑代码作为演示。完整代码参见com.huawei.bigdata.flink.examples.WriteIntoHudiWithSyncHive、com.huawei.bigd - [PyFlink样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260080.md): 假定业务平台需要提交Flink任务到MRS集群,业务平台主要使用的语言是Python,提供Python读写Kafka作业和Python提交SQL作业的样例。本场景适用于MRS 3.3.0及以后的集群版本。 - [PyFlink样例程序代码说明](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260081.md): 下面列出pyflink-kafka.py的主要逻辑代码作为演示,在提交之前需要确保“file_path” 为要运行的SQL的路径。完整代码参见“flink-examples/pyflink-example/pyflink-kafka”中的“pyflink-kafka.py”。import os import logging import - [使用Python提交Flink普通作业](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260082.md): yarn-application模式:将上述文件和“flink-connector-kafka-实际版本号.jar”包上传到“客户端安装目录/Flink/flink/yarnship”。yarn-application模式:修改为:file://"+os.getcwd()+"/../../../../yarnship/flink-conn - [使用Python提交Flink SQL作业](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260086.md): yarn-application模式:将上述文件上传到“客户端安装目录/Flink/flink/yarnship”。yarn-session模式:将上述文件上传到“客户端安装目录/Flink/flink/conf/ssl”。yarn-application模式:修改为os.getcwd() + "/../../../../yarnship - [调测Flink SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_260087.md): 该章节内容适用于MRS 3.3.0及之后版本。当输出“BUILD SUCCESS”,表示编译成功,如下图所示。编译成功后将会在样例工程的target下生成含有“flink-dws-sink-example-1.0.0-SNAPSHOT”字段的Jar包。yarn-session.sh -t ssl/ -nm "session-spring1 - [HBase应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290002.md): HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase设计目标是用来解决关系型数据库在处理海量数据时的局限性。HBase使用场景有如下几个特点:处理海量数据(TB或PB级别以上)。具有高吞吐量。在海量数据中实现高效的随机读取。具有很好的伸缩能力。能够同时处理结构化和非结构化的数据。不需要完全拥有传统关系型数据库所具备 - [HBase应用开发流程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290004.md): 本文档主要基于Java API对HBase进行应用开发。开发流程中各阶段的说明如图1和表1所示。 - [准备HBase应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290006.md): 在进行二次开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。下载并解压客户端软件包。MRS 3.3.0 - [导入并配置HBase样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290007.md): 获取HBase开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过FusionInsight Manager页面右下角查看。其他样例项目配置文件放置及样例代码执行注意事项指导,请参考对应样例项目“README.md”文档。打开Inte - [HBase数据读写样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290009.md): 假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,如表1所示,A业务操作流程如下:创建用户信息表。在用户信息中新增用户的学历、职称等信息。根据用户编号查询用户姓名和地址。根据用户姓名进行查询。查询年龄段在[20-29]之间的用户信息。数据统计,统计用户信息表的人员数、年龄最大值、年龄最小值、平均年龄。用户销户,删除用户信息表 - [配置HBase应用输出日志](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290012.md): 将HBase客户端的日志单独输出到指定日志文件,与业务日志分开,方便分析定位HBase的问题。如果进程中已经有log4j的配置,需要将“hbase-example\src\main\resources\log4j.properties”中RFA与RFAS相关的配置复制到已有的log4j配置中。以下为代码示例: - [初始化HBase配置](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290013.md): HBase通过login方法来获取配置项。包括用户登录信息、安全认证信息等配置项。MRS 3.3.0-LTS之前版本:下面代码片段在com.huawei.bigdata.hbase.examples包的“TestMain”类的init方法中。private static void init() throws IOException { - [创建HBase客户端连接](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290014.md): HBase通过ConnectionFactory.createConnection(configuration)方法创建Connection对象。传递的参数为上一步创建的Configuration。Connection封装了底层与各实际服务器的连接以及与ZooKeeper的连接。Connection通过ConnectionFactory类 - [创建HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290015.md): HBase通过org.apache.hadoop.hbase.client.Admin对象的createTable方法来创建表,并指定表名、列族名。创建表有两种方式(强烈建议采用预分Region建表方式):快速建表,即创建表后整张表只有一个Region,随着数据量的增加会自动分裂成多个Region。预分Region建表,即创建表时预先分配 - [删除HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290016.md): HBase通过org.apache.hadoop.hbase.client.Admin的deleteTable方法来删除表。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的dropTable方法中注[1] 只有表被disable时,才能被删除掉,所以deleteTable常 - [修改HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290017.md): HBase通过org.apache.hadoop.hbase.client.Admin的modifyTable方法修改表信息。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testModifyTable方法中注[1] modifyTable只有表被disable时,才能生 - [向HBase表中插入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290018.md): HBase是一个面向列的数据库,一行数据,可能对应多个列族,而一个列族又可以对应多个列。通常,写入数据的时候,需要指定要写入的列(含列族名称和列名称)。HBase通过HTable的put方法来Put数据,可以是一行数据也可以是数据集。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSampl - [删除HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290019.md): HBase通过Table实例的delete方法来Delete数据,可以是一行数据也可以是数据集。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testDelete方法中如果被删除的cell所在的列族上设置了二级索引,也会同步删除索引数据。 - [使用Get API读取HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290020.md): 要从表中读取一条数据,首先需要实例化该表对应的Table实例,然后创建一个Get对象。也可以为Get对象设定参数值,如列族的名称和列的名称。查询到的行数据存储在Result对象中,Result中可以存储多个Cell。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testG - [使用Scan API读取HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290021.md): 要从表中读取数据,首先需要实例化该表对应的Table实例,然后创建一个Scan对象,并针对查询条件设置Scan对象的参数值,为了提高查询效率,最好指定StartRow和StopRow。查询结果的多行数据保存在ResultScanner对象中,每行数据以Result对象形式存储,Result中存储了多个Cell。以下代码片段在com.hua - [使用Filter过滤器读取HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290022.md): HBase Filter主要在Scan和Get过程中进行数据过滤,通过设置一些过滤条件来实现,如设置RowKey、列名或者列值的过滤条件。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testSingleColumnValueFilter方法中。当前二级索引不支持使用Su - [创建HBase表二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290023.md): 一般都通过调用org.apache.hadoop.hbase.hindex.client.HIndexAdmin中方法进行HBase二级索引的管理,该类中提供了创建索引的方法。二级索引不支持修改,如果需要修改,请先删除旧的然后重新创建。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSamp - [删除HBase二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290024.md): 一般都通过调用org.apache.hadoop.hbase.hindex.client.HIndexAdmin中方法进行HBase二级索引的管理,该类中提供了索引的查询和删除等方法。以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的dropIndex方法中。 - [基于二级索引查询HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290025.md): 针对添加了二级索引的用户表,您可以通过Filter来查询数据。其数据查询性能高于针对无二级索引用户表的数据查询。HIndex支持的Filter类型为“SingleColumnValueFilter”,“SingleColumnValueExcludeFilter”以及“SingleColumnValuePartitionFilter”。H - [创建HBase表Region](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290028.md): 一般通过org.apache.hadoop.hbase.client.HBaseAdmin进行多点分割。注意:分割操作只对空Region起作用。本例使用multiSplit进行多点分割将HBase表按照“-∞~A”“A~D”、“D~F”、“F~H”、“H~+∞”分为五个Region。以下代码片段在com.huawei.bigdata.hb - [创建Phoenix表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290034.md): Phoenix依赖HBase作为其后备存储,支持标准SQL和JDBC API的强大功能,使得SQL用户可以访问HBase集群。以下代码片段在com.huawei.bigdata.hbase.examples包的“PhoenixSample”类的testCreateTable方法中。 - [向Phoenix表中插入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290035.md): 使用Phoenix实现写数据。以下代码片段在com.huawei.bigdata.hbase.examples包的“PhoenixSample”类的testPut方法中。 - [读取Phoenix表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290036.md): 使用Phoenix实现读数据。以下代码片段在com.huawei.bigdata.hbase.examples包的“PhoenixSample”类的testSelect方法中。 - [HBase访问多个ZooKeeper样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290037.md): 在同一个客户端进程内同时访问FusionInsight ZooKeeper和第三方的ZooKeeper,其中HBase客户端访问FusionInsight ZooKeeper,客户应用访问第三方ZooKeeper。以下代码片段在“hbase-zk-example\src\main\java\com\huawei\hadoop\hbase\ - [在本地Windows环境中调测HBase应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290040.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和IP地址映射,主机名和IP地址请保持一一对应。放置好配置文件,并 - [在Linux环境中调测HBase应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290043.md): HBase应用程序支持在安装HBase客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至Linux环境中运行应用。MRS 3.6.0-LTS及之后版本的HBase客户端仅支持JDK 17和JDK 8,如果需要在Linux中调测JDK 21版本的程序,仅支持非客户端运行方式,具体操作请参见未安装客户端时编译并运行程序。 - [Phoenix SQL查询样例介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290047.md): Phoenix是构建在HBase之上的一个SQL中间层,提供一个客户端可嵌入的JDBC驱动,Phoenix查询引擎将SQL输入转换为一个或多个HBase scan,编译并执行扫描任务以产生一个标准的JDBC结果集。客户端hbase-example/conf/hbase-site.xml中配置存放查询中间结果的临时目录,如果客户端程序在Li - [HBase Shell接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290052.md): 您可以使用Shell在服务端直接对HBase进行操作。HBase的Shell接口同开源社区版本保持一致,请参见https://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/Shell命令执行方法:进入HBase客户端任意目录,执行以下命令。hbase shell进入HBa - [HBase Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290053.md): 建议使用org.apache.hadoop.hbase.Cell作为KV数据对象,而不是org.apache.hadoop.hbase.KeyValue。建议使用Connection connection = ConnectionFactory.createConnection(conf)来创建连接,废弃HTablePool。建议使用or - [Sqlline接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290054.md): 用户可以直接使用sqlline.py在服务端对HBase进行SQL操作。Phoenix的sqlline接口与开源社区保持一致。详情请参见https://phoenix.apache.org/。 - [HBase JDBC API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290055.md): Phoenix实现了大部分的java.sql接口,SQL语法紧跟ANSI SQL标准。其支持处理函数可参见:https://phoenix.apache.org/docs/functions其支持语法可参见:https://phoenix.apache.org/docs/features/secondary-indexes - [HBase Web UI接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290056.md): Web UI展示了HBase集群的状态,其中包括整个集群概况信息、RegionServer和Master的信息、快照、运行进程等信息。通过Web UI提供的信息可以对整个HBase集群的状况有一定的了解。请联系管理员获取具有访问Web UI权限的业务账号及其密码。登录FusionInsight Manager页面。选择“集群 > 待操作集 - [运行HBase应用开发程序产生ServerRpcControllerFactory异常如何处理](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290058.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [Bulkload和Put应用场景有哪些](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290059.md): HBase支持使用bulkload和put方式加载数据,在大部分场景下bulkload提供了更快的数据加载速度,但bulkload并不是没有缺点的,在使用时需要关注bulkload和put适合在哪些场景使用。bulkload是通过启动MapReduce任务直接生成HFile文件,再将HFile文件注册到HBase,因此错误地使用bulkl - [使用REST接口查询HBase集群信息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290060.md): 使用REST服务,传入对应host与port组成的url,通过HTTP协议,获取集群版本与状态信息。连接RestServer服务普通模式下,用户不需要登录即可连接RestServer服务。所以请将“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HB - [使用REST接口获取所有HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290061.md): 使用REST服务,传入对应host与port组成的url,通过HTTP协议,获取得到所有table。以下代码片段在“hbase-rest-example\src\main\java\com\huawei\hadoop\hbase\examples”包的“HBaseRestTest”类的getAllUserTables方法中。private - [使用REST接口操作Namespace](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290062.md): 使用REST服务,传入对应host与port组成的url以及指定的Namespace,通过HTTP协议,对Namespace进行创建、查询、删除,获取指定Namespace中表的操作。HBase表以“命名空间:表名”格式进行存储,若在创建表时不指定命名空间,则默认存储在“default”中。其中,“hbase”命名空间为系统表命名空间,请 - [使用REST接口操作HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290063.md): 使用REST服务,传入对应host与port组成的url以及指定的tableName和jsonHTD,通过HTTP协议,进行查询表信息,修改表,创建表以及删除表的操作。方法调用// Add a table with specified info. createTable(url, "testRest", "{\"name\":\ - [通过ThriftServer实例操作HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290064.md): 传入ThriftServer实例所在host和提供服务的port,根据认证凭据及配置文件新建Thrift客户端,访问ThriftServer,进行根据指定namespace获取tablename以及创建表、删除表的操作。“hbase.rpc.protection”与“hbase.thrift.security.qop”参数值的对应关系为: - [通过ThriftServer实例向HBase表中写入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290065.md): 传入ThriftServer实例所在host和提供服务的port,根据认证凭据及配置文件新建Thrift客户端,访问ThriftServer,分别使用put和putMultiple进行写数据操作。方法调用// Write data with put. putData(client, TABLE_NAME); // Write data - [通过ThriftServer实例读HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290066.md): 传入ThriftServer实例所在host和提供服务的port,根据认证凭据及配置文件新建Thrift客户端,访问ThriftServer,分别使用get和scan进行读数据操作。方法调用// Get data with single get. getData(client, TABLE_NAME); // Get data with - [如何配置HBase双读功能](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290067.md): HBase客户端应用通过自定义加载主备集群配置项,实现了双读能力。HBase双读作为提高HBase集群系统高可用性的一个关键特性,适用于使用Get读取数据、使用批量Get读取数据、使用Scan读取数据,以及基于二级索引查询。它能够同时读取主备集群数据,减少查询毛刺,具体表现为:高成功率:双并发读机制,保证每一次读请求的成功率。可用性:单集 - [Phoenix命令行操作介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290069.md): Phoenix支持SQL的方式来操作HBase,以下简单介绍使用SQL语句建表/插入数据/查询数据/删表等操作。已安装HBase客户端,例如安装目录为“/opt/client”。以下操作的客户端目录只是举例,请根据实际安装目录修改。在使用客户端前,需要先下载并更新客户端配置文件,确认Manager的主管理节点后才能使用客户端。进入HBas - [install构建HBase Jar包失败报错Could not transfer artifact如何处理](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290070.md): 样例代码在进行maven编译构建jar包时,Build Failed,提示错误信息:Could not transfer artifact org.apache.commons:commons-crypto:pom:${commons-crypto.version}hbase-common模块依赖commons-crypto,在hbase - [配置HBase/Phoenix对接SpringBoot样例](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290073.md): 为了运行MRS产品HBase/Phoenix组件的SpringBoot接口样例代码,需要完成下面的操作。该章节内容适用于MRS 3.3.0及之后版本。已获取样例工程运行所需的配置文件,详细操作请参见准备HBase应用开发和运行环境。 - [HBase全局二级索引样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290081.md): HBase支持使用全局二级索引加速条件查询,通过本样例,您可以了解如何管理及使用全局二级索引。该样例程序仅适用于MRS 3.3.0及之后版本。假定用户开发一个应用程序,其中一个功能需要记录用户信息及地址,记录数据如下表:合理地设计表结构、行键、列名能充分利用HBase的优势。全局二级索引应用于scan条件查询场景,查询均由索引表完成,无需 - [创建HBase全局二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290082.md): 通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法进行HBase全局二级索引的管理,该类中addIndices用于创建全局二级索引。全局二级索引的创建需要指定索引列、覆盖列(可选)、索引表预分区(可选,建议指定)。在已有存量数据的表上创建全局二级索引,需要创建索 - [查询HBase全局二级索引信息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290083.md): 通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法进行HBase全局二级索引的管理,该类中listIndices用于查询索引信息,可以获取当前用户表所有相关索引的定义及索引状态。以下代码片段在com.huawei.bigdata.hbase.examples包的 - [基于全局二级索引查询HBase表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290084.md): 添加了全局二级索引的用户表,在使用索引条件进行查询时,可以转换为对索引表的范围查询,性能高于针对无二级索引用户表的数据查询。以下代码片段在com.huawei.bigdata.hbase.examples包的“GlobalSecondaryIndexSample”类中。本样例用于查询指定id对应的id、age、name信息,并命中idx_ - [禁用HBase全局二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290085.md): 全局二级索引的索引状态决定了索引是否有效,通过修改索引状态,可以实现索引的禁用、启用、弃用(不再生成索引数据)等功能。通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法可以完成对索引状态的修改。以下代码片段在com.huawei.bigdata.hbase.ex - [删除HBase全局二级索引](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_290086.md): 通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法进行HBase全局二级索引的管理,该类中dropIndices用于删除索引。以下代码片段在com.huawei.bigdata.hbase.examples包的“GlobalSecondaryIndexSampl - [HDFS应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300002.md): HDFS(Hadoop Distributed File System)是一个适合运行在通用硬件之上,具备高度容错特性,支持高吞吐量数据访问的分布式文件系统,非常适合大规模数据集应用。HDFS适用于如下场景:处理海量数据(TB或PB级别以上)需要很高的吞吐量需要高可靠性需要很好的可扩展能力HDFS支持使用Java语言进行程序开发,具体的A - [HDFS应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300004.md): 开发流程中各阶段的说明如图1和表1所示。 - [准备HDFS应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。登录FusionInsight Manag - [导入并配置HDFS样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300007.md): HDFS针对多个场景提供样例工程,帮助客户快速学习HDFS工程。以下操作步骤以导入HDFS样例代码为例。操作流程如图1所示。针对MRS 3.6.0及之后版本集群,如果需要运行SpringBoot对接HDFS样例,需要获取样例代码解压目录中“src”目录下的样例工程“springboot > hdfs-examples”。并将如下步骤中对“ - [HDFS样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300010.md): HDFS的业务操作对象是文件,代码样例中所涉及的文件操作主要包括创建文件夹、写文件、追加文件内容、读文件和删除文件/文件夹;HDFS还有其他的业务处理,例如设置文件权限等,其他操作可以在掌握本代码样例之后,再扩展学习。本代码样例讲解顺序为:HDFS初始化创建目录写文件追加文件内容读文件删除文件删除目录多线程设置存储策略Colocation - [初始化HDFS](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300012.md): 在使用HDFS提供的API之前,需要先进行HDFS初始化操作。过程为:加载HDFS服务配置文件。实例化Filesystem。如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。在Linux客户端运行应用和在Windows环境下运行应用的初始化代码相同,代码样例如下所示 - [创建HDFS目录](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300013.md): 创建目录过程为:调用FileSystem实例的exists方法查看该目录是否存在。如果存在,则直接返回。如果不存在,则调用FileSystem实例的mkdirs方法创建该目录。如下是写文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [创建HDFS文件并写入内容](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300014.md): 写文件过程为:使用FileSystem实例的create方法获取写文件的输出流。使用该数据流将内容写入到HDFS的指定文件中。在写完文件后,需关闭所申请资源。如下是写文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [追加信息到HDFS指定文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300015.md): 追加文件内容,是指在HDFS的某个指定文件后面,追加指定的内容。过程为:使用FileSystem实例的append方法获取追加写入的输出流。使用该输出流将待追加内容添加到HDFS的指定文件后面。在完成后,需关闭所申请资源。如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExampl - [读取HDFS指定文件内容](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300016.md): 获取HDFS上某个指定文件的内容。过程为:使用FileSystem实例的open方法获取读取文件的输入流。使用该输入流读取HDFS的指定文件的内容。在完成后,需关闭所申请资源。如下是读文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [删除HDFS指定文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300017.md): 删除HDFS上某个指定文件。被删除的文件会被直接删除,且无法恢复。所以,执行删除操作需谨慎。如下是删除文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [删除HDFS指定目录](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300018.md): 删除HDFS上某个指定目录。被删除的目录会被直接删除,且无法恢复。所以,执行删除操作需谨慎。如下是删除文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。 - [创建HDFS多线程任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300019.md): 建立多线程任务,同时启动多个实例执行文件操作。如下是删除文件的代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。example.test()方法即为对文件的操作,代码如下: - [配置HDFS存储策略](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300020.md): 为HDFS上某个文件或文件夹指定存储策略。登录MRS集群Manager。登录集群Manager具体操作,请参考访问MRS集群Manager。登录集群Manager具体操作,请参考访问MRS集群Manager。选择“集群 >服务 > HDFS > 配置 > 全部配置”。搜索并查看dfs.storage.policy.enabled的参数值是 - [配置HDFS同分布策略(Colocation)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300022.md): 同分布(Colocation)功能是将存在关联关系的数据或可能要进行关联操作的数据存储在相同的存储节点上。HDFS文件同分布的特性,将那些需进行关联操作的文件存放在相同数据节点上,在进行关联操作计算时避免了到别的数据节点上获取数据,大大降低网络带宽的占用。在使用Colocation功能之前,建议用户对Colocation的内部机制有一定了 - [在本地Windows中调测HDFS程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300025.md): 在代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。HDFS应用程序运行完成后,可直接通过运行结果查看应用程序运行情况,也可以通过HDFS日志获取应用运行情况。编译并运行SpringBoot对接HDFS样例:登录HDFS时会使用到如表1所示的配置文件。这些文件均已导入到hdf - [在Linux环境中调测HDFS应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300028.md): HDFS应用程序支持在Linux环境中运行。在程序代码完成开发后,可以上传Jar包至准备好的Linux环境中运行。HDFS应用程序运行完成后,可直接通过运行结果查看应用程序运行情况,也可以通过HDFS日志获取应用运行情况。已安装客户端时:已安装HDFS客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主 - [HDFS Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300033.md): HDFS完整和详细的接口可以直接参考官方网站上的描述:https://hadoop.apache.org/docs/r3.1.1/api/index.html。HDFS常用的Java类有以下几个:FileSystem:是客户端应用的核心类。常用接口参见表1。FileStatus:记录文件和目录的状态信息。常用接口参见表2。DFSColoc - [HDFS C API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300034.md): C语言应用开发代码样例中所涉及的文件操作主要包括创建文件、读写文件、追加文件、删除文件。完整和详细的接口请直接参考官网上的描述以了解其使用方法:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/LibHdfs.html下面代码片段仅为演示,具体代码请 - [HDFS HTTP REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300035.md): REST应用开发代码样例中所涉及的文件操作主要包括创建文件、读写文件、追加文件、删除文件。完整和详细的接口请参考官网上的描述以了解其使用:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/WebHDFS.html。在客户端目录准备文件testFile - [HDFS Shell命令介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300036.md): 您可以使用HDFS Shell命令对HDFS文件系统进行操作,例如读文件、写文件等操作。执行HDFS Shell的方法:进入HDFS客户端如下目录,直接输入命令即可。例如:cd /opt/client/HDFS/hadoop/bin./hdfs dfs -mkdir /tmp/input执行如下命令查询HDFS命令的帮助。./hdfs - - [配置Windows通过EIP访问普通模式集群HDFS](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300037.md): 该章节通过指导用户配置集群绑定EIP,并配置HDFS文件的方法,方便用户可以在本地对样例文件进行编译。本章节以运行HdfsExample样例为例进行说明。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 > 用户指南 - [SpringBoot对接HDFS](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_300038.md): 该章节仅适用于MRS 3.6.0及之后版本。通过SpringBoot对接HDFS集群,实现向HDFS读写数据的功能。登录HDFS时会使用到如表1所示的配置文件。这些文件均已导入到hdfs-examples工程的src/main/resource目录。 配置文件文件名称作用core-site.xml配置HDFS详细参数。hdfs-site. - [HetuEngine应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310002.md): HetuEngine是华为自研高性能交互式SQL分析及数据虚拟化引擎。与大数据生态无缝融合,实现海量数据秒级交互式查询;支持跨源跨域统一访问,使能数据湖内、湖间、湖仓一站式SQL融合分析。HSBroker:HetuEngine的服务代理,用作用户租户管理校验,HetuEngine访问URL的获取等。Coordinator:HetuEngi - [HetuEngine应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310004.md): 开发流程中各阶段的说明如图1所示: - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。下载客户端到本地并解压。MRS 3.3.0 - [导入并配置HetuEngine样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310009.md): 客户端安装程序目录中包含了HetuEngine开发样例工程,将从工程导入样例开始学习,本文以IntelliJ IDEA 2020.1.3 (Community Edition)为例。确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过Manager页面右下角查看。打开IntelliJ IDEA,选择 - [HetuEngine样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310011.md): 通过典型场景,用户可以快速学习和掌握HetuEngine的开发过程,并且对关键的接口函数有所了解。假定用户开发一个应用程序,需要对Hive数据源的A表和MPPDB数据源的B表进行join运算,则可以用HetuEngine来实现Hive数据源数据查询,流程如下:连接HetuEngine JDBC Server。组装SQL语句。SQL语句执行 - [在本地Windows环境中调测HetuEngine应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310015.md): 在程序代码完成开发后,可以在Windows环境下进行编译,本地和集群业务平面网络互通时,您可以直接在本地进行调测。-Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true在IDEA的conso - [在Linux环境中调测HetuEngine应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310016.md): 在程序代码完成开发后,可以把代码编译成jar包,上传到Linux环境进行程序功能调试。在Linux环境上调测程序前,需在Linux节点预安装客户端。jdbc驱动包获取方法:在“FusionInsight_Cluster_集群ID_HetuEngine_ClientConfig\HetuEngine\xxx\”路径下获取“hetu-jdbc - [通过HSBroker的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310017.md): 需要确保业务侧和HetuEngine服务端HSBroker、Coordinator(随机分布在Yarn NodeManger)所在业务节点网络互通,且需对外开放Coordinator的IP,端口。能够触发未启动实例或是故障实例自动拉起。通过HSBroker方式连接到HetuEngine,组装对应的SQL发送到HetuEngine执行,完成 - [通过HSFabric的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310018.md): 支持客户端跨网段访问。只需要确保业务侧和HetuEngine服务端HSFabric所在业务节点网络互通,且对外开放HSFabric固定的IP和端口。适用于双平面的网络场景。通过HSFabric方式连接到HetuServer,组装对应的SQL发送到HetuServer执行,完成对Hive数据源的增删改查操作。public class JDB - [通过HSBroker的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310023.md): 本章节适用于MRS 3.3.0及以后版本。通过HSBroker方式连接到HetuEngine,组装对应的SQL发送到HetuEngine执行,完成对Hive数据源的增删改查操作。上述代码中各参数说明如下表所示: - [通过HSFabric的用户名密码认证实现查询HetuEngine SQL任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310024.md): 通过HSFabric方式连接到HetuEngine,组装对应的SQL发送到HetuEngine执行,完成对Hive数据源的增删改查操作。上述代码中各参数说明下表所示: - [调测HetuEnginePython3应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310025.md): 本章节适用于MRS 3.3.0及以后版本。在python3程序代码完成开发后,可以在Windows环境或者上传到Linux环境进行调测,和集群业务平面网络互通时,可以直接在本地进行调测。参考导入并配置HetuEngine Python3样例工程章节,获取样例代码,获取hetu-jdbc-XXX.jar文件,并复制到自定义目录中。编辑样例代 - [导入并配置HetuEngine Python3样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_310027.md): 为了运行HetuEngine组件的Python3样例代码,需要完成下面的操作。本章节适用于MRS 3.3.0及以后版本。在客户端机器的命令行终端输入python3可查看Python版本号。如下显示Python版本为3.8.2。Python 3.8.2 (default, Jun 23 2020, 10:26:03) [GCC 4.8.5 - [Hive应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320002.md): Hive是一个开源的,建立在Hadoop上的数据仓库框架,提供类似SQL的HQL语言操作结构化数据,其基本原理是将HQL语言自动转换成MapReduce任务或Spark任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。Hive主要特点如下:通过HQL语言非常容易地完成数据提取、转换和加载(ETL)。通过HQL完成海量结构化数 - [Hive应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320004.md): 开发流程中各阶段的说明如图1和表1所示。 - [准备Hive应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320006.md): Hive组件可以使用Java(JDBC和HCatalog)、Python、Python3接口进行应用开发,要准备的开发和运行环境分别如下表所示。Python开发工具的详细安装配置可参见配置Hive Python样例工程。Python3开发工具的详细安装配置可参见配置Hive Python3样例工程。进行应用开发时,需要同时准备代码的运行调 - [导入并配置Hive JDBC样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320007.md): 为了运行MRS产品Hive组件的JDBC接口样例代码,需要完成下面的操作。本章节以在Windows环境下开发JDBC方式连接Hive服务的应用程序为例。MRS 3.3.1及后续版本Hive支持JDBC连接串添加扩展标识,扩展标识添加后会在HiveServer审计日志中打印扩展标识用于区分SQL来源。若需要配置,可修改“hive-jdbc- - [导入并配置Hive HCatalog样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320008.md): 为了运行MRS产品Hive组件的HCatalog接口样例代码,需要完成下面的操作。本章节以在Windows环境下开发HCatalog方式连接Hive服务的应用程序为例。在IntelliJ IDEA的菜单栏中,选择“File > Open...”,显示“Open File or Project”对话框。在弹出窗口选择文件夹“hcatalog - [配置Hive Python样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320009.md): 为了运行MRS产品Hive组件的Python接口样例代码,需要完成下面的操作。在客户端机器的命令行终端输入python可查看Python版本号。如下显示Python版本为2.6.6。Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48) [GCC 4.4.6 20120305 (Red Hat - [配置Hive Python3样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320010.md): 为了运行MRS产品Hive组件的Python3接口样例代码,需要完成下面的操作。在客户端机器的命令行终端输入python3可查看Python版本号。如下显示Python版本为3.8.2。Python 3.8.2 (default, Jun 23 2020, 10:26:03) [GCC 4.8.5 20150623 (Red Hat 4. - [Hive JDBC样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320012.md): 假定用户开发一个Hive数据分析应用,用于管理企业雇员信息,如表1、表2所示。创建三张表,雇员信息表“employees_info”、雇员联络信息表“employees_contact”、雇员信息扩展表“employees_info_extended”。雇员信息表“employees_info”的字段为雇员编号、姓名、支付薪水币种、薪水金 - [创建Hive表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320014.md): 本小节介绍了如何使用HQL创建内部表、外部表的基本操作。创建表主要有以下三种方式:自定义表结构,以关键字EXTERNAL区分创建内部表和外部表。内部表,如果对数据的处理都由Hive完成,则应该使用内部表。在删除内部表时,元数据和数据一起被删除。外部表,如果数据要被多种工具(如Pig等)共同处理,则应该使用外部表,可避免对该数据的误操作。删 - [加载数据到Hive表中](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320015.md): 本小节介绍了如何使用HQL向已有的表employees_info中加载数据。从本节中可以掌握如何从本地文件系统、MRS集群中加载数据。以关键字LOCAL区分数据源是否来自本地。加载数据的实质是将数据复制到HDFS上指定表的目录下。 - [查询Hive表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320016.md): 本小节介绍了如何使用HQL对数据进行查询分析。从本节中可以掌握如下查询分析方法:SELECT查询的常用特性,如JOIN等。加载数据进指定分区。如何使用Hive自带函数。如何使用自定义函数进行查询分析,如何创建、定义自定义函数请见创建Hive用户自定义函数。配置Hive中间过程的数据加密指定表的格式为RCFile(推荐使用)或Sequenc - [调测HCatalog样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320021.md): Hive HCatalog应用程序支持在安装Hive和Yarn客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。已安装Hive和Yarn客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。当输出“ - [调测Hive Python样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320022.md): chmod +x python-examples -Rcd python-examplespython pyCLI_nosec.py例如:[['default', '']] [{'comment': 'from deserializer', 'columnName': 'tab_name', 'type': 'STRING_TYPE' - [调测Hive Python3样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320023.md): chmod +x python3-examples -R。修改“python3-examples/pyCLI_sec.py”时,“hosts”数组支持配置多个HiveServer节点,MRS 3.6.0-LTS及之后版本还支持配置“maxRetryTimes”和“retryInterval”参数。“maxRetryTimes”为重试次数, - [Hive JDBC接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320026.md): Hive JDBC接口遵循标准的JAVA JDBC驱动标准。Hive作为数据仓库类型数据库,其并不能支持所有的JDBC标准API。例如事务类型的操作:rollback、setAutoCommit等,执行该类操作会获得Method not supported的SQLException异常。 - [Hive WebHCat接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320028.md): 以下示例的IP为WebHCat的业务IP,端口为安装时设置的WebHCat HTTP端口。除:version、status、version、version/hive、version/hadoop以外,其他API都需要添加user.name参数。MRS 3.6.0-LTS及之后版本,对于WebHCat提交Yarn作业的接口,例如“/hive - [使用IBM JDK产生异常“Problem performing GSS wrap”如何处理](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320030.md): 使用IBM JDK产生异常,提示“Problem performing GSS wrap”信息。问题原因:在IBM JDK下建立的Hive connection时间超过登录用户的认证超时时间(默认一天),导致认证失败。IBM JDK的机制跟Oracle JDK的机制不同,IBM JDK在认证登录后的使用过程中做了时间检查却没有检测外部的时 - [配置Windows通过EIP访问普通模式集群Hive](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320031.md): 该章节通过指导用户配置集群绑定EIP,并配置Hive文件的方法,方便用户可以在本地对样例文件进行编译。本章节以运行hive-jdbc-example样例为例进行说明。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 - [实现Hive进程访问多ZooKeeper](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320032.md): FusionInsight支持在同一个客户端进程内同时访问FusionInsight ZooKeeper和第三方的ZooKeeper,分别通过“testConnectHive”和“testConnectApacheZK”方法实现。在hive-jdbc-example-multizk包中的“JDBCExample”类中,main方法的代码结 - [使用JDBC提交数据分析任务](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320038.md): 本章节介绍如何使用JDBC样例程序完成数据分析任务。使用Hive JDBC接口提交数据分析任务,该样例程序在“hive-examples/hive-jdbc-example”的“JDBCExample.java”中,实现该功能的模块如下:读取HiveServer客户端property文件,其中hiveclient.properties文件 - [HCatalog访问Hive样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320039.md): 本章节介绍如何在MapReduce任务中使用HCatalog分析Hive表数据,读取输入表第一列int类型数据执行count(distinct XX)操作,将结果写入输出表。该样例程序在“hive-examples/hcatalog-example”的“HCatalogExample.java”中,实现该功能的模块如下:实现Mapper类 - [Python访问Hive样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320040.md): 本章节介绍如何使用Python连接Hive执行数据分析任务。使用Python方式提交数据分析任务,参考样例程序中的“hive-examples/python-examples/pyCLI_sec.py”。导入HAConnection类。from pyhs2.haconnection import HAConnection声明HiveSer - [Python3访问Hive样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320041.md): 本章节介绍如何使用Python3连接Hive执行数据分析任务。以下分析任务示例在“hive-examples/python3-examples/pyCLI_nosec.py”文件中。导入hive类from pyhive import hive创建JDBC连接:connection = hive.Connection(host='hives - [在Windows中调测JDBC样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320042.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和公网IP地址映射,主机名和公网IP地址请保持一一对应。仅JDBC - [在Linux中调测JDBC样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320043.md): Hive JDBC应用程序支持在Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。已安装Java。当运行Hive JDBC应用程序所在主机不是集群中的节点时,需要在该主机的hosts文件中设置MRS集群节点的主机名和IP地址的映射关系,确保主机名和IP地址一一对应。在IDEA界面左下方单击“ - [导入并配置SpringBoot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320047.md): 为了运行MRS产品Hive组件的SpringBoot接口样例代码,需要完成下面的操作。该章节以在Windows环境下开发SpringBoot方式连接Hive服务的应用程序为例。该章节内容适用于MRS 3.3.0及之后版本。MRS 3.3.1及后续版本Hive支持JDBC连接串添加扩展标识,扩展标识添加后会在HiveServer审计日志中打 - [调测Hive SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_320048.md): 该章节内容适用于MRS 3.3.0及之后版本。当输出“BUILD SUCCESS”,表示编译成功,如下图所示。编译成功后将会在样例工程的target下生成含有“-with-dependencies”字段的Jar包。在Windows环境下执行:cd /d d:\hive-rest-client-examplejava -jar hive-r - [Kafka应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340002.md): Kafka是一个分布式的消息发布-订阅系统。它采用独特的设计提供了类似JMS的特性,主要用于处理活跃的流式数据。Kafka有很多适用的场景:消息队列、行为跟踪、运维数据监控、日志收集、流处理、事件溯源、持久化日志等。Kafka有如下几个特点:高吞吐量消息持久化到磁盘分布式系统易扩展容错性好支持online和offline场景Kafka提供 - [Kafka样例工程简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340003.md): MRS样例工程获取地址为https://github.com/huaweicloud/huaweicloud-mrs-example,切换分支为与MRS集群相匹配的版本分支,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。当前MRS提供以下Kafka相关样例工程:Kafka相关样例工程样例工程位置描述kafka-exampl - [Kafka应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340004.md): Kafka客户端角色包括Producer和Consumer两个角色,其应用开发流程是相同的。开发流程中各个阶段的说明如图1和表1所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340006.md): Kafka开发应用时,需要准备的开发和运行环境如表1所示: - [导入并配置Kafka样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340007.md): 参考获取MRS应用开发样例工程,获取样例代码解压目录中“src”目录下的样例工程文件夹“kafka-examples”。若需要在本地Windows调测Kafka样例代码,将准备连接Kafka集群配置文件时获取的所有配置文件放置在样例工程的“kafka-examples\src\main\resources”目录下。不同的IDEA版本的操作 - [Kafka样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340009.md): Kafka是一个分布式消息系统,在此系统上用户可以做一些消息的发布和订阅操作,假定用户要开发一个Producer,让其每秒向Kafka集群某Topic发送一条消息,另外还需要实现一个Consumer,订阅该Topic,实时消费该类消息。使用Linux客户端创建一个Topic。开发一个Producer向该Topic生产数据。开发一个Cons - [使用Producer API向安全Topic生产消息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340011.md): 用于实现Producer API向安全Topic生产消息。以下为用于实现Producer API向安全Topic生产消息的代码片段。详细内容在com.huawei.bigdata.kafka.example.Producer类的run方法中。 - [使用Consumer API订阅安全Topic并消费](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340012.md): 用于实现使用Consumer API订阅安全Topic,并进行消息消费。以下为用于实现使用Consumer API订阅安全Topic,并进行消息消费的代码片段。详细内容在com.huawei.bigdata.kafka.example.Consumer类中。 - [使用多线程Producer发送消息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340013.md): 在使用Producer API向安全Topic生产消息基础上,实现了多线程Producer,可启动多个Producer线程,并通过指定相同key值的方式,使每个线程对应向特定Partition发送消息。下面代码片段在com.huawei.bigdata.kafka.example.ProducerMultThread类的run方法中,用于 - [使用多线程Consumer消费消息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340014.md): 在使用Consumer API订阅安全Topic并消费基础上,实现了多线程并发消费,可根据Topic的Partition数目启动相应个数的Consumer线程来对应消费每个Partition上的消息。下面代码片段在com.huawei.bigdata.kafka.example.ConsumerMultThread类的run方法中,用于实 - [使用KafkaStreams统计数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340016.md): 以下提供High level KafkaStreams API代码样例及Low level KafkaStreams API代码样例,通过Kafka Streams读取输入Topic中的消息,统计每条消息中的单词个数,从输出Topic消费数据,将统计结果以Key-Value的形式输出,完成单词统计功能。下面代码片段在com.huawei. - [准备连接Kafka集群配置文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340017.md): 应用程序开发或运行过程中,需通过集群相关配置文件信息连接MRS集群,用于验证应用程序运行。场景一:准备本地Windows开发环境调测程序所需配置文件。登录FusionInsight Manager,选择“集群 > 概览 > 更多 > 下载客户端”(MRS 3.3.0-LTS及之后版本,在“主页”右上方选择“更多 > 下载客户端”),“选择 - [调测Kafka Producer样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340020.md): 如需在Windows调测程序,需要配置Windows通过EIP访问集群Kafka,详情请参见配置Windows通过EIP访问集群Kafka。如需在Linux调测程序,需要确保当前用户对“src/main/resources”目录下和依赖库文件目录下的所有文件,均具有可读权限。同时保证已安装JDK并已设置java相关环境变量。构建jar包方 - [调测Kafka Consumer样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340021.md): 如需在Windows调测程序,需要配置Windows通过EIP访问集群Kafka,详情请参见配置Windows通过EIP访问集群Kafka。如需在Linux调测程序,需要确保当前用户对“src/main/resources”目录下和依赖库文件目录下的所有文件,均具有可读权限。同时保证已安装Jdk并已设置java相关环境变量。java -c - [调测Kafka High Level KafkaStreams API样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340023.md): 在Windows环境调测程序步骤请参考在Windows中调测程序。cd /opt/clientsource bigdata_envkafka-topics.sh --create --zookeeperquorumpeer实例IP地址:ZooKeeper客户端连接端口/kafka--replication-factor 1 --parti - [调测Kafka Low Level KafkaStreams API样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340024.md): 在Windows环境调测程序步骤请参考在Windows中调测程序。cd /opt/clientsource bigdata_envkafka-topics.sh --create --zookeeperquorumpeer实例IP地址:ZooKeeper客户端连接端口/kafka--replication-factor 1 --parti - [Kafka Shell命令介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340027.md): 查看当前集群Topic列表。bin/kafka-topics.sh --list --zookeeper bin/kafka-topics.sh --list --bootstrap-server --command-config config/clie - [Kafka Java API介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340028.md): Kafka相关接口同开源社区保持一致,详情请参见https://kafka.apache.org/24/documentation.html。 - [运行Producer.java样例报错获取元数据失败“ERROR fetching topic metadata...”](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340030.md): 已经拥有Topic访问权限,但是运行Producer.java样例报错获取元数据失败“ERROR fetching topic metadata for topics...”。如果IP与Kafka集群部署的业务IP不一致,那么需要修改为当前集群正确的IP地址。如果配置中的端口为21007(Kafka安全模式端口),那么修改该端口为9092 - [配置Windows通过EIP访问集群Kafka](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340031.md): 该章节通过指导用户配置集群绑定EIP,并配置Kafka文件的方法,方便用户可以在本地对样例文件进行编译。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 > 用户指南 > 弹性公网IP > 为弹性云服务器申请和绑定弹 - [Kafka对接SpringBoot样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340033.md): 本章节适用于MRS 3.3.0及之后版本。通过SpringBoot实现对Kafka集群生产消费的功能。通过SpringBoot实现Kafka生产消费的样例代码如下:Producer为生产消息接口,Consumer为消费消息接口,KafkaProperties为客户端参数,参数需要根据实际业务修改。上述样例代码中的KafkaProperti - [Kafka对接SpringBoot样例运行指导](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340035.md): 本章节适用于MRS 3.3.0及之后版本。“kafka-springboot-examples”样例代码,JDK版本支持JDK 8、JDK 17。在样例代码的“springboot/kafka-examples/kafka-springboot-examples”目录下找到pom文件,在此文件同级目录使用maven install工具编译 - [SpringBoot使用Spring-Kafka模块访问Kafka样例运行指导](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340036.md): 本章节适用于MRS 3.6.0及之后版本。“module-spring-kafka-examples”样例代码,JDK版本支持JDK 17、JDK 21。在样例代码的“springboot/kafka-examples/module-spring-kafka-examples”目录下找到pom文件,在此文件同级目录使用maven inst - [SpringBoot使用Spring-Kafka模块访问Kafka样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_340037.md): 本章节适用于MRS 3.6.0及之后版本。Spring-Kafka是Spring生态系统中用于与Apache Kafka集成的模块,其提供了简化的API和配置方式,能帮助开发者更容易地在Spring应用中实现Kafka的生产者和消费者功能,能够显著降低Kafka的使用门槛。无论是简单的消息队列场景,还是复杂的事件驱动架构,Spring-K - [MapReduce应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360002.md): Hadoop MapReduce是一个使用简易的并行计算软件框架,基于它写出来的应用程序能够运行在由上千个服务器组成的大型集群上,并以一种可靠容错的方式并行处理数T级别的数据集。一个MapReduce作业(application/job)通常会把输入的数据集切分为若干独立的数据块,由map任务(task)以完全并行的方式来处理。框架会对m - [MapReduce应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360004.md): 开发流程中各阶段的说明如图1和表1所示。 - [准备MapReduce开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。登录FusionInsight Manag - [导入并配置MapReduce样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360007.md): MapReduce针对多个场景提供样例工程,帮助客户快速学习MapReduce工程。以下操作步骤以导入MapReduce样例代码为例。操作流程如图1所示。打开IntelliJ IDEA,依次选择File > Open。在弹出的Open File or Project会话框中选择样例工程文件夹mapreduce-example-normal - [(可选)创建MapReduce样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360008.md): 除了导入MapReduce样例工程,您还可以使用IntelliJ IDEA新建一个MapReduce工程。 - [MapReduce统计样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360011.md): 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发MapReduce应用程序实现如下功能:统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。log1.txt:周六网民停留日志log2.txt:周日网民停留日志首 - [MapReduce统计样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360012.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。主要分为三个部分:从原文件中筛选女性网民上网时间数据信息,通过类CollectionMapper继承Mapper抽象类实现。汇总每个女性上网时间,并输出时间大于两个小时的女性网民信息,通过类CollectionReducer继承Reducer抽象类实现。main方法提供建立一个 - [MapReduce访问多组件样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360014.md): 该样例以MapReduce访问HDFS、HBase、Hive为例,介绍如何编写MapReduce作业访问多个服务组件。帮助用户理解认证、配置加载等关键使用方式。该样例逻辑过程如下:以HDFS文本文件为输入数据:log1.txt:数据输入文件Map阶段:获取输入数据的一行并提取姓名信息。查询HBase一条数据。查询Hive一条数据。将HBa - [MapReduce访问多组件样例代码](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360015.md): 主要分为三个部分:从HDFS原文件中抽取name信息,查询HBase、Hive相关数据,并进行数据拼接,通过类MultiComponentMapper继承Mapper抽象类实现。获取拼接后的数据取最后一条输出到HBase、HDFS,通过类MultiComponentReducer继承Reducer抽象类实现。main方法提供建立一个Map - [在本地Windows环境中调测MapReduce应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360018.md): 在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。MapReduce应用程序运行完成后,可通过如下方式查看应用程序的运行情况。在IntelliJ IDEA中查看应用程序运行情况。通过MapReduce日志获取应用程序运行情况。登录MapReduce WebUI查看应用程序运 - [在Linux环境中调测MapReduce应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360021.md): 在程序代码完成开发后,可以在Linux环境中运行应用。MapReduce应用程序运行完成后,可通过如下方式查看应用程序的运行情况。通过运行结果查看程序运行情况。登录MapReduce WebUI查看应用程序运行情况。登录Yarn WebUI查看应用程序运行情况通过MapReduce日志获取应用程序运行情况。mvn -s "{maven_s - [MapReduce Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360026.md): 关于MapReduce的详细API可以参考官方网站:https://hadoop.apache.org/docs/r3.1.1/api/index.html常用接口MapReduce中常见的类如下:org.apache.hadoop.mapreduce.Job:用户提交MR作业的接口,用于设置作业参数、提交作业、控制作业执行以及查询作业状 - [MapReduce REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360027.md): 功能简介通过HTTP REST API来查看更多MapReduce任务的信息。目前MapReduce的REST接口可以查询已完成任务的状态信息。完整和详细的接口请直接参考官网上的描述以了解其使用:https://hadoop.apache.org/docs/r3.1.1/hadoop-mapreduce-client/hadoop-map - [提交MapReduce任务时客户端长时间无响应](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360029.md): 向YARN服务器提交MapReduce任务后,客户端长时间无响应。对于上述出现的问题,ResourceManager在其WebUI上提供了MapReduce作业关键步骤的诊断信息,对于一个已经提交到YARN上的MapReduce任务,用户可以通过该诊断信息获取当前作业的状态以及处于该状态的原因。具体操作:登录FusionInsight M - [MapReduce二次开发远程调试](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_360030.md): MapReduce二次开发过程中如何远程调试业务代码?MapReduce开发调试采用的原理是Java的远程调试机制,在Map/Reduce任务启动时,添加Java远程调试命令。修改客户端“客户端安装路径/Yarn/config/mapred-site.xml”配置文件中mapreduce.map.java.opts和mapreduce.r - [Oozie应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370002.md): Oozie是一个用来管理Hadoop job任务的工作流引擎,Oozie流程基于有向无环图(Directed Acyclical Graph)来定义和描述,支持多种工作流模式及流程定时触发机制。易扩展、易维护、可靠性高,与Hadoop生态系统各组件紧密结合。Oozie流程的三种类型:Workflow描述一个完整业务的基本流程。描述一个完整 - [Oozie应用开发流程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370004.md): 本文档主要基于Java API对Oozie进行应用开发。开发流程中各阶段的说明如图1和表1所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370006.md): 在进行二次开发时,要准备的开发和运行环境如表1所示。 - [导入并配置Oozie样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370007.md): 将下载的样例工程导入到Windows开发环境IDEA中即可开始样例学习。已在Linux环境中安装了完整客户端。获取Oozie服务器URL(任意节点),这个URL将是客户端提交流程任务的目标地址。URL格式为:https://Oozie业务IP:21003/oozie。例如,“https://10.10.10.176:21003/oozie - [Oozie样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370010.md): 工作流配置文件workflow.xml(coordinator.xml是对工作流进行调度,bundle.xml是对一组coordinator进行管理)与job.properties。如果有实现代码,需要开发对应的jar包,例如Java Action;如果是Hive,则需要开发SQL文件。上传配置文件与jar包(包括依赖的jar包)到HDF - [Oozie应用开发步骤](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370011.md): 可以使用客户端样例目录中Mapreduce程序对日志目录的数据进行分析、处理。将Mapreduce程序的分析结果移动到数据分析结果目录,并将数据文件的权限设置成660。为了满足每天分析一次的需求,需要每天重复执行一次1.a~1.b。登录客户端所在节点,新建dataLoad目录,作为程序运行目录,后面编写的文件均保存在该目录下。例如/opt - [job.properties](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370014.md): 流程的属性定义文件,定义了流程运行期间使用的外部参数值对。job.properties文件中包含的各参数及其含义,请参见表1。可以根据业务需要,以“key=values”的格式自定义参数及值。 - [workflow.xml](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370015.md): 描述了一个完整业务的流程定义文件。一般由一个start节点、一个end节点和多个实现具体业务的action节点组成。workflow.xml文件中包含的各参数及其含义,请参见表1。 - [Start Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370016.md): 流程任务的执行入口,每个流程任务有且仅有一个该节点。Start Action节点中包含的各参数及其含义,请参见表1。 - [End Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370017.md): 流程任务执行的终点,每个流程任务有且仅有一个该节点。End Action节点中包含的各参数及其含义,请参见表1。 - [Kill Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370018.md): 流程任务运行期间发生异常后,流程的异常结束节点。Kill Action节点中包含的各参数及其含义,请参见表1。 - [FS Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370019.md): HDFS文件操作节点,支持对HDFS文件及目录的创建、删除、授权功能。FS Action节点中包含的各参数及其含义,请参见表1。“${变量名}”表示:该值来自job.properties所定义。例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见job.properties) - [MapReduce Action](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370020.md): MapReduce任务节点,负责执行一个map-reduce任务。MapReduce Action节点中包含的各参数及其含义,请参见表1。“${变量名}”表示:该值来自job.properties所定义。例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见job.properties) - [coordinator.xml](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370021.md): 周期性执行workflow类型任务的流程定义文件。coordinator.xml中包含的各参数及其含义,请参见表1。“${变量名}”表示:该值来自job.properties所定义。例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见job.properties) - [通过Java API提交Oozie作业开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370023.md): 通过典型场景,用户可以快速学习和掌握Oozie的开发过程,并且对关键的接口函数有所了解。本示例演示了如何通过Java API提交MapReduce作业和查询作业状态,代码示例只涉及了MapReduce作业,其他作业的API调用代码是一样的,只是job配置job.properties与工作流配置workflow.xml不一样。完成导入并配置 - [通过Java API提交Oozie作业](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370024.md): Oozie通过org.apache.oozie.client.OozieClient的run方法提交作业,通过getJobInfo获取作业信息。代码示例中请根据实际情况,修改“OOZIE_URL_DEFAULT”为实际的任意Oozie的主机名,例如“https://10-1-131-131:21003/oozie/”。 - [在本地Windows环境中调测Oozie应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370028.md): 在使用Java接口完成开发程序代码后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。在Windows本地运行程序,需要配置https ssl证书。登录集群任意节点,进入如下目录下载ca.crt文件。cd ${BIGDATA_HOME}/om-agent_8.1.2.2/nodeagent - [查看Oozie应用调测结果](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370029.md): Oozie样例工程运行完成后可以通过控制台查看输出结果。控制台显示运行结果会有如下成功信息:同时在HDFS上生成目录/user/developuser/examples/output-data/map-reduce,包括如下两个文件:_SUCCESSpart-00000可以通过Hue的文件浏览器或者通过HDFS如下命令行查看:hdfs d - [OozieShell接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370035.md): Oozie其他的命令和参数可参见以下地址:https://oozie.apache.org/docs/5.1.0/DG_CommandLineTool.html。 - [OozieJava接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370036.md): Java API主要由org.apache.oozie.client.OozieClient提供。 - [OozieREST接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370037.md): Oozie常用REST接口与Java一样。Java API主要由org.apache.oozie.client.OozieClient提供。详情请参见https://oozie.apache.org/docs/5.1.0/WebServicesAPI.html。 - [使用Oozie调度Spark访问HBase以及Hive](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_370038.md): 已经配置完成导入并配置Oozie样例工程的前提条件进入项目根目录,比如“D:\sample_project\src\oozie-examples\oozienormal-examples\OozieSparkHBaseExample”,然后执行mvn clean package -DskipTests,打包成功之后在target目录里面。 - [Spark应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410002.md): Spark是分布式批处理框架,提供分析挖掘与迭代式内存计算能力,支持多种语言(Scala/Java/Python)的应用开发。 适用以下场景:数据处理(Data Processing):可以用来快速处理数据,兼具容错性和可扩展性。迭代计算(Iterative Computation):支持迭代计算,有效应对多步的数据处理逻辑。数据挖掘(D - [Spark应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410004.md): Spark包含Spark Core、Spark SQL和Spark Streaming三个组件,其应用开发流程都是相同的。开发流程中各阶段的说明如图1和表1所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。登录FusionInsight Manag - [导入并配置Spark样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410007.md): Spark针对多个场景提供样例工程,包含Java样例工程和Scala样例工程等,帮助客户快速学习Spark工程。针对Java和Scala不同语言的工程,其导入方式相同。使用Python开发的样例工程不需要导入,直接打开Python文件(*.py)即可。以下操作步骤以导入Java样例代码为例。操作流程如图1所示。打开IntelliJ IDE - [新建Spark样例工程(可选)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410008.md): 除了导入Spark样例工程,您还可以使用IDEA新建一个Spark工程。如下步骤以创建一个Scala工程为例进行说明。如果您需要新建Java语言的工程,选择对应参数即可。选择开发环境 - [Spark Core样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410013.md): 假定用户有某个周末网民网购停留时间的日志,基于某些业务要求,要求开发Spark应用程序实现如下功能:统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为,。log1.txt:周六网民停留日志LiuYang,female,20 YuanJing - [Spark Core样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410014.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection类: - [Spark Core样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410015.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection: - [Spark Core样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410016.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见collectFemaleInfo.py: - [Spark SQL样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410018.md): 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下功能:统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为,。log1.txt:周六网民停留日志LiuYang,female,20 YuanJi - [Spark SQL样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410019.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection:上面是简单示例,其它SparkSQL特性请参见如下链接:https://archive.apache.org/dist/spark/d - [Spark SQL样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410020.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection:上面是简单示例,其它sparkSQL特性请参见如下链接:https://archive.apache.org/dist/spark/d - [Spark SQL样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410021.md): 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。下面代码片段仅为演示,具体代码参见SparkSQLPythonExample: - [通过JDBC访问Spark SQL样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410028.md): 用户自定义JDBCServer的客户端,使用JDBC连接来进行表的创建、数据加载、查询和删除。在default数据库下创建child表。把/home/data的数据加载进child表中。查询child表中的数据。删除child表。通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。 - [通过JDBC访问Spark SQL样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410029.md): 使用自定义客户端的JDBC接口提交数据分析任务,并返回结果。样例工程中的data文件需要放到JDBCServer所在机器的home目录下。连接字符串中的zk.quorum也可以使用配置文件中的配置项spark.deploy.zookeeper.url来代替。在网络拥塞的情况下,您还可以设置客户端与JDBCServer连接的超时时间,可以避 - [通过JDBC访问Spark SQL样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410030.md): 使用自定义客户端的JDBC接口提交数据分析任务,并返回结果。样例工程中的data文件需要放到JDBCServer所在机器的home目录下。连接字符串中的zk.quorum也可以使用配置文件中的配置项spark.deploy.zookeeper.url来代替。在网络拥塞的情况下,您还可以设置客户端与JDBCServer连接的超时时间,可以避 - [操作Avro格式数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410032.md): 用户可以在Spark应用程序中以数据源的方式去使用HBase,本例中将数据以Avro格式存储在HBase中,并从中读取数据以及对读取的数据进行过滤等操作。在客户端执行hbase shell,进入HBase命令行,使用下面的命令创建样例代码中要使用的HBase表:create'ExampleAvrotable','rowkey','cf1' - [操作HBase数据源](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410037.md): 用户可以在Spark应用程序中以数据源的方式去使用HBase,将dataFrame写入HBase中,并从HBase读取数据以及对读取的数据进行过滤等操作。在客户端执行hbase shell,进入HBase命令行,使用下面的命令创建样例代码中要使用的HBase表:create'HBaseSourceExampleTable','rowkey - [BulkPut接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410042.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将构建的RDD写入HBase中。在客户端执行hbase shell,进入HBase命令行,使用下面的命令创建样例代码中要使用的HBase表:create'bulktable','cf1'创建RDD。以HBaseContext的方式操作HBase,将上面生成的 - [BulkGet接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410047.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将要获取的数据的rowKey构造成rdd,然后通过HBaseContext的bulkGet接口获取对HBase表上这些rowKey对应的数据。基于BulkPut接口使用章节创建的HBase表及其中的数据进行操作。创建包含了要获取的rowkey信息的RDD。以 - [BulkDelete接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410052.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将要删除的数据的rowKey构造成rdd,然后通过HBaseContext的bulkDelete接口对HBase表上这些rowKey对应的数据进行删除。基于BulkPut接口使用章节创建的HBase表及其中的数据进行操作。创建包含了要删除的rowkey信息的 - [BulkLoad接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410057.md): 用户可以在Spark应用程序中使用HBaseContext的方式去使用HBase,将要插入的数据的rowKey构造成rdd,然后通过HBaseContext的bulkLoad接口将rdd写入HFile中。将生成的HFile导入HBase表的操作采用如下格式的命令,不属于本接口范围,不在此进行详细说明:hbase org.apache.ha - [foreachPartition接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410062.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,将要插入的数据的rowKey构造成rdd,然后通过HBaseContext的mapPartition接口将rdd并发写入HBase表中。在客户端执行:hbase shell命令进入HBase命令行。使用下面的命令创建HBase表:create'table2' - [分布式Scan HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410067.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,使用hbaseRDD方法以特定的规则扫描HBase表。使用操作Avro格式数据章节中创建的HBase数据表。设置scan的规则,例如:setCaching。使用特定的规则扫描Hbase表。通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参 - [mapPartition接口使用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410072.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,使用mapPartition接口并行遍历HBase表。使用foreachPartition接口使用章节创建的HBase数据表。构造需要遍历的HBase表中rowkey的RDD。使用mapPartition接口遍历上述rowkey对应的数据信息,并进行简单的操 - [SparkStreaming批量写入HBase表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410077.md): 用户可以在Spark应用程序中使用HBaseContext的方式去操作HBase,使用streamBulkPut接口将流数据写入Hbase表中。在客户端执行hbase shell进入HBase命令行。在HBase命令执行下面的命令创建HBase表:create'streamingTable','cf1'create'streamingTa - [Spark从HBase读取数据再写入HBase样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410083.md): 假定HBase的table1表存储用户当天消费的金额信息,table2表存储用户历史消费的金额信息。现table1表有记录key=1,cf:cid=100,表示用户1在当天消费金额为100。table2表有记录key=1,cf:cid=1000,表示用户1的历史消息记录金额为1000。基于某些业务要求,要求开发Spark应用程序实现如下功 - [Spark从HBase读取数据再写入HBase样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410084.md): 用户可以使用Spark调用HBase接口来操作HBase table1表,然后把table1表的数据经过分析后写到HBase table2表中。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHbasetoHbase。 - [Spark从HBase读取数据再写入HBase样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410085.md): 用户可以使用Spark调用HBase接口来操作HBase table1表,然后把table1表的数据经过分析后写到HBase table2表中。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHbasetoHbase。 - [Spark从HBase读取数据再写入HBase样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410086.md): 用户可以使用Spark调用HBase接口来操作HBase table1表,然后把table1表的数据经过分析后写到HBase table2表中。由于pyspark不提供Hbase相关api,本样例使用Python调用Java的方式实现。下面代码片段仅为演示,具体代码参见SparkHbasetoHbasePythonExample: - [Spark从Hive读取数据再写入HBase样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410088.md): 假定Hive的person表存储用户当天消费的金额信息,HBase的table2表存储用户历史消费的金额信息。现person表有记录name=1,account=100,表示用户1在当天消费金额为100。table2表有记录key=1,cf:cid=1000,表示用户1的历史消息记录金额为1000。基于某些业务要求,要求开发Spark应用 - [Spark从Hive读取数据再写入HBase样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410089.md): 在Spark应用中,通过使用Spark调用Hive接口来操作hive表,然后把Hive表的数据经过分析后写到HBase表。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHivetoHbase - [Spark从Hive读取数据再写入HBase样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410090.md): 在Spark应用中,通过使用Spark调用Hive接口来操作hive表,然后把Hive表的数据经过分析后写到HBase表。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.SparkHivetoHbase - [Spark从Hive读取数据再写入HBase样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410091.md): 在Spark应用中,通过使用Spark调用Hive接口来操作hive表,然后把Hive表的数据经过分析后写到HBase表。由于pyspark不提供Hbase相关api,本样例使用Python调用Java的方式实现。下面代码片段仅为演示,具体代码参见SparkHivetoHbasePythonExample: - [Spark Streaming对接Kafka0-10样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410098.md): 假定某个业务Kafka每1秒就会收到1个单词记录。基于某些业务要求,开发的Spark应用程序实现如下功能:实时累加计算每个单词的记录总数。log1.txt示例文件:Spark Streaming样例工程的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户)。确保集群安装完成,包括HDFS、Yarn、Spark和 - [Spark Streaming对接Kafka0-10样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410099.md): 在Spark应用中,通过使用Streaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数,或将数据写入Kafka0-10。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.KafkaWordCount。下面代码片段仅为演示,具体代码参见:com.hua - [Spark Streaming对接Kafka0-10样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410100.md): 在Spark应用中,通过使用Streaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数,或将数据写入Kafka0-10。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.KafkaWordCount。下面代码片段仅为演示,具体代码参见com.huaw - [Spark Structured Streaming样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410102.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。StructuredStreaming样例工程的数据存储在Kafka组件中。向Kafka组件发送数据(需要有Kafka权限用户)。确保集群安装完成,包括HDFS、Yarn、Spark和Kafka。 - [Spark Structured Streaming样例程序(Java)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410103.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.KafkaWordCount。当Streaming DataFrame/Dataset中有新 - [Spark Structured Streaming样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410104.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.KafkaWordCount。当Streaming DataFrame/Dataset中有新 - [Spark Structured Streaming样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410105.md): 在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。下面代码片段仅为演示,具体代码参见:SecurityKafkaWordCount。当Streaming DataFrame/Dataset中有新的可用数据时,outputMode用于配置写入Str - [Spark Structured Streaming对接Kafka样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410107.md): 假定一个广告业务,存在广告请求事件、广告展示事件、广告点击事件,广告主需要实时统计有效的广告展示和广告点击数据。已知:终端用户每次请求一个广告后,会生成广告请求事件,保存到kafka的adRequest topic中。请求一个广告后,可能用于多次展示,每次展示,会生成广告展示事件,保存到kafka的adShow topic中。每个广告展示 - [Spark Structured Streaming对接Kafka样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410108.md): 使用Structured Streaming,从Kafka中读取广告请求数据、广告展示数据、广告点击数据,实时获取广告有效展示统计数据和广告有效点击统计数据,将统计结果写入kafka中。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.KafkaADCount。 - [Spark Structured Streaming状态操作样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410120.md): 假设需要跨批次统计每个session期间发生了多少次event以及本session的开始和结束timestamp;同时输出本批次被更新状态的session。在kafka中生成模拟数据(需要有Kafka权限用户)确保集群安装完成,包括HDFS、Yarn、Spark2x和Kafka。创建Topic。{zkQuorum}表示ZooKeeper集 - [Spark Structured Streaming状态操作样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410121.md): 在Spark结构流应用中,跨批次统计每个session期间发生了多少次event以及本session的开始和结束timestamp;同时输出本批次被更新状态的session。下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.spark.examples.kafkaSessionization。当Streaming - [在Linux环境中调测Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410123.md): 在程序代码完成开发后,您可以上传至Linux客户端环境中运行应用。使用Scala或Java语言开发的应用程序在Spark客户端的运行步骤是一样的。使用Python开发的Spark应用程序无需打包成jar,只需将样例工程复制到编译机器上即可。用户需保证worker和driver的Python版本一致,否则将报错:"Python in wor - [Spark Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410127.md): 由于Spark开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Spark主要使用到如下这几个类:JavaSparkContext:是Spark的对外接口,负责向调用该类的Java应用提供Spark的各种功能,如连接Spark集群,创建RDD,累积量和广播量等。它的作用相当于一个容器。SparkConf:Sp - [Spark scala API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410128.md): 由于Spark开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Spark主要使用到如下这几个类:SparkContext:是Spark的对外接口,负责向调用该类的scala应用提供Spark的各种功能,如连接Spark集群,创建RDD等。SparkConf:Spark应用配置类,如设置应用名称,执行模式,e - [Spark Python API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410129.md): 由于Spark开源版本升级,为避免出现API兼容性或可靠性问题,建议用户使用配套版本的API。Spark主要使用到如下这几个类:pyspark.SparkContext:是Spark的对外接口。负责向调用该类的python应用提供Spark的各种功能,如连接Spark集群、创建RDD、广播变量等。pyspark.SparkConf:Spa - [Spark REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410130.md): Spark的REST API以JSON格式展现Web UI的一些指标,提供用户一种更简单的方法去创建新的展示和监控的工具,并且支持查询正在运行的app和已经结束的app的相关信息。开源的Spark REST接口支持对Jobs、Stages、Storage、Environment和Executors的信息进行查询,FusionInsight - [Spark client CLI介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410131.md): Spark CLI详细的使用方法参考官方网站的描述:https://archive.apache.org/dist/spark/docs/3.3.1/quick-start.html。Spark常用的CLI如下所示:spark-shell提供了一个简单学习API的方法,类似于交互式数据分析的工具。同时支持Scala和Python两种语言。 - [Spark JDBCServer接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410132.md): JDBCServer是Hive中的HiveServer2的另外一个实现,它底层使用了Spark SQL来处理SQL语句,从而比Hive拥有更高的性能。JDBCServer是一个JDBC接口,用户可以通过JDBC连接JDBCServer来访问SparkSQL的数据。JDBCServer在启动的时候,会启动一个sparkSQL的应用程序,而通 - [structured streaming功能与可靠性介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410133.md): 支持对流式数据的ETL操作。支持流式DataFrames或Datasets的schema推断和分区。流式DataFrames或Datasets上的操作:包括无类型,类似SQL的操作(比如select、where、groupBy),以及有类型的RDD操作(比如map、filter、flatMap)。支持基于Event Time的聚合计算,支 - [如何添加自定义代码的依赖包](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410135.md): 用户在开发Spark程序时,会添加样例程序外的自定义依赖包。针对自定义代码的依赖包,如何使用IDEA添加到工程中?在Project Structure页面,选择Artifacts页签。在右侧窗口中单击+,选择Library Files添加依赖包。添加Library Files选择需要添加的依赖包,然后单击OK。Choose Librari - [如何处理自动加载的依赖包](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410136.md): 在使用IDEA导入工程前,如果IDEA工具中已经进行过Maven配置时,会导致工具自动加载Maven配置中的依赖包。当自动加载的依赖包与应用程序不配套时,导致工程Build失败。如何处理自动加载的依赖包?建议在导入工程后,手动删除自动加载的依赖。步骤如下:在IDEA工具中,选择FileProject Structures...,。选择Li - [运行SparkStreamingKafka样例工程时报“类不存在”问题](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410137.md): 通过spark-submit脚本提交KafkaWordCount(org.apache.spark.examples.streaming.KafkaWordCount)任务时,日志中报Kafka相关的类不存在的错误。KafkaWordCount样例为Spark开源社区提供的。Spark部署时,如下jar包存放在客户端的${SPARK_HO - [由于Kafka配置的限制,导致Spark Streaming应用运行失败](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410138.md): 使用运行的Spark Streaming任务回写Kafka时,Kafka上接收不到回写的数据,且Kafka日志报错信息如下:如下图所示,Spark Streaming应用中定义的逻辑为,从Kafka中读取数据,执行对应处理之后,然后将结果数据回写至Kafka中。例如:Spark Streaming中定义了批次时间,如果数据传入Kafka的 - [执行Spark Core应用,尝试收集大量数据到Driver端,当Driver端内存不足时,应用挂起不退出](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410139.md): 执行Spark Core应用,尝试收集大量数据到Driver端,当Driver端内存不足时,应用挂起不退出,日志内容如下。用户尝试收集大量数据到Driver端,如果Driver端的内存不足以存放这些数据,那么就会抛出OOM(OutOfMemory)的异常,然后Driver端一直在进行GC,尝试回收垃圾来存放返回的数据,导致应用长时间挂起。 - [Spark应用名在使用yarn-cluster模式提交时不生效](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410140.md): Spark应用名在使用yarn-cluster模式提交时不生效,在使用yarn-client模式提交时生效,如图1所示,第一个应用是使用yarn-client模式提交的,正确显示代码里设置的应用名Spark Pi,第二个应用是使用yarn-cluster模式提交的,设置的应用名没有生效。导致这个问题的主要原因是,yarn-client和y - [如何使用IDEA远程调试](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410141.md): 在Spark二次开发中如何使用IDEA远程调试?以调试SparkPi程序为例,演示如何进行IDEA的远程调试:打开工程,在菜单栏中选择Run > Edit Configurations。在弹出的配置窗口中用鼠标左键单击左上角的号,在下拉菜单中选择Remote,如图1所示。选择Remote选择对应要调试的源码模块路径,并配置远端调试参数Ho - [如何采用Java命令提交Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410142.md): 除了spark-submit命令提交应用外,如何采用Java命令提交Spark应用?您可以通过org.apache.spark.launcher.SparkLauncher类采用java命令方式提交Spark应用。详细步骤如下:如果您使用Java语言开发程序,您可以参考如下示例,编写SparkLauncher类。public static - [使用IBM JDK产生异常,提示“Problem performing GSS wrap”信息](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410143.md): 使用IBM JDK产生异常,提示“Problem performing GSS wrap”信息问题原因:在IBM JDK下建立的JDBC connection时间超过登录用户的认证超时时间(默认一天),导致认证失败。IBM JDK的机制跟Oracle JDK的机制不同,IBM JDK在认证登录后的使用过程中做了时间检查却没有检测外部的时间 - [Structured Streaming的cluster模式,在数据处理过程中终止ApplicationManager,应用失败](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410144.md): Structured Streaming的cluster模式,在数据处理过程中终止ApplicationManager,执行应用时显示如下异常。原因分析:显示该异常是因为recoverFromCheckpointLocation的值判定为false,但却配置了checkpoint目录。参数recoverFromCheckpointLoca - [从checkpoint恢复spark应用的限制](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410146.md): Spark应用可以从checkpoint恢复,用于从上次任务中断处继续往下执行,以保证数据不丢失。但是,在某些情况下,从checkpoint恢复应用会失败。由于checkpoint中包含了spark应用的对象序列化信息、task执行状态信息、配置信息等,因此,当存在以下问题时,从checkpoint恢复spark应用将会失败。业务代码变更 - [第三方jar包跨平台(x86、TaiShan)支持](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410147.md): 用户自己写的jar包(比如自定义udf包)区分x86和TaiShan版本,如何让spark2x支持其正常运行。第三方jar包(例如自定义udf)区分x86和TaiShan版本时,混合使用方案:cd /opt/Bigdata/FusionInsight_Spark_*/install/FusionInsight-Spark-*/spark步 - [在客户端安装节点的/tmp目录下残留了很多blockmgr-开头和spark-开头的目录](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410148.md): 系统长时间运行后,在客户端安装节点的/tmp目录下,发现残留了很多blockmgr-开头和spark-开头的目录。Spark任务在运行过程中,driver会创建一个spark-开头的本地临时目录,用于存放业务jar包,配置文件等,同时在本地创建一个blockmgr-开头的本地临时目录,用于存放block data。此两个目录会在Spark - [ARM环境python pipeline运行报139错误码规避方案](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410150.md): 在TaiShan服务器上,使用python插件的pipeline报错显示139错误。具体报错如下:该python程序既使用了libcrypto.so,也使用了libssl.so。而一旦LD_LIBRARY_PATH添加了hadoop的native库目录,则使用的就是hadoop native库中的libcrypto.so,而使用系统自带的 - [Structured Streaming 任务提交方式变更](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410151.md): 用户提交结构流任务时,通常需要通过--jars命令指定kafka相关jar包的路径,例如--jars /kafkadir/kafka-clients-x.x.x.jar,/kafkadir/kafka_2.11-x.x.x.jar。当前版本用户除了这一步外还需要额外的配置项,否则会报class not found异常。当前版本的Spark - [使用Spark执行Hudi样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410156.md): 本章节介绍如何使用Spark操作Hudi执行插入数据、查询数据、更新数据、增量查询、特定时间点查询、删除数据等操作。详细代码请参考样例代码。通过IDEA自带的Maven工具,打包项目,生成jar包。具体操作请参考在Linux环境中调测Spark应用。运行Python样例代码无需通过Maven打包。运行Python样例代码无需通过Maven - [使用Spark执行Hudi样例程序(Scala)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410157.md): 下面代码片段仅为演示,具体代码参见:com.huawei.bigdata.hudi.examples.HoodieDataSourceExample。插入数据:查询数据:更新数据:增量查询:特定时间点查询: - [使用Spark执行Hudi样例程序(Python)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410158.md): 下面代码片段仅为演示,具体代码参见:HudiPythonExample.py。插入数据:#insert inserts = sc._jvm.org.apache.hudi.QuickstartUtils.convertToStringList(dataGen.generateInserts(10)) df = spark.read.jso - [HoodieDeltaStreamer](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410160.md): 编写自定义的转化类实现Transformer。编写自定义的Schema实现SchemaProvider。在执行HoodieDeltaStreamer时加入参数:Transformer和SchemaProvider样例: - [自定义排序器](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410161.md): 编写自定义排序类继承BulkInsertPartitioner,在写入Hudi时加入配置:自定义分区排序器样例: - [配置Windows通过EIP访问集群Spark](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410163.md): 该章节通过指导用户配置集群绑定EIP,并配置Spark文件的方法,方便用户可以在本地对样例文件进行编译。本章节以运行SparkScalaExample样例为例进行说明。在虚拟私有云管理控制台,申请弹性公网IP(集群有几个节点就买几个),并分别单击MRS集群的节点名称,在节点的“弹性公网IP”页面绑定弹性公网IP。具体操作请参见“虚拟私有云 - [常见jar包冲突处理方式](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410164.md): Spark能对接很多的第三方工具,因此在使用过程中经常会依赖一堆的三方包。而有一些包MRS已经自带,这样就有可能造成代码使用的jar包版本和集群自带的jar包版本不一致,在使用过程中就有可能出现jar包冲突的情况。常见的jar包冲突报错有:1、报错类找不到:java.lang.NoClassDefFoundError2、报错方法找不到:j - [配置Spark Python3样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410165.md): 为了运行MRS产品Spark2x组件的Python3接口样例代码,需要完成下面的操作。在客户端机器的命令行终端输入python3可查看Python版本号。如下显示Python版本为3.8.2。Python 3.8.2 (default, Jun 23 2020, 10:26:03) [GCC 4.8.5 20150623 (Red Hat - [在本地Windows环境中调测Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_410167.md): 在程序代码完成开发后,您可以在Windows环境中运行应用。使用Scala或Java语言开发的应用程序在IDEA端的运行步骤是一样的。Windows环境中目前只提供通过JDBC访问Spark SQL的程序样例代码的运行,其他样例代码暂不提供。用户需保证Maven已配置华为镜像站中SDK的Maven镜像仓库,具体可参考配置华为开源镜像仓。下 - [YARN应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_430001.md): Yarn是一个分布式的资源管理系统,用于提高分布式的集群环境下的资源利用率,这些资源包括内存、I/O、网络、磁盘等。其产生的原因是为了解决原MapReduce框架的不足。最初MapReduce的committer还可以周期性的在已有的代码上进行修改,可是随着代码的增加以及原MapReduce框架设计的不足,在原MapReduce框架上进行 - [YARN Command介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_430003.md): 您可以使用YARN Commands对YARN集群进行一些操作,例如启动ResourceManager、提交应用程序、中止应用、查询节点状态、下载container日志等操作。完整和详细的Command描述可以参考官网文档:https://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-y - [YARN Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_430004.md): 关于YARN的详细API可以直接参考官方网站上的描述:https://hadoop.apache.org/docs/r3.1.1/api/index.htmlYARN常用的Java类有如下几个。ApplicationClientProtocol用于Client与ResourceManager之间。Client通过该协议可实现将应用程序提交 - [YARN REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_430005.md): 通过HTTP REST API来查看更多Yarn任务的信息。目前Yarn的REST接口只能进行一些资源或者任务的查询。完整和详细的接口请直接参考官网上的描述以了解其使用:https://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/WebServicesIntro.h - [Superior Scheduler REST API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_430006.md): REST/HTTP是Superior Scheduler在YARN资源管理器主机和YARN资源管理网络服务端口的一部分。通常以address:portasSS_REST_SERVER.的形式指示YARN。下面使用HTTP作为URL的一部分,并且只有HTTP将得到支持。查询Application查询scheduler engine中的所有 - [Manager应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440002.md): 本文档供需要以HTTP基本认证(Basic Authentication)方式访问FusionInsight Manager REST API的用户使用。REST API是访问Web服务器的一套API,REST API接口的执行方式是通过HTTP请求进行的,接收GET、PUT、POST、DELETE等请求并使用JSON数据进行响应。HTT - [Manager应用开发流程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440004.md): 本文档主要基于Java API对Manager进行应用开发。开发流程中各阶段的说明如图1和表1所示。 - [准备Manager应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440006.md): 在进行开发时,要准备的开发和运行环境如表1所示。 - [导入并配置Manager样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440007.md): 打开IntelliJ IDEA,选择“File > New > Project from Existing Sources”,在弹出的“Select File or Directory to Import”窗口中选择样例代码文件夹。选择样例工程文件夹中的pom.xml文件,根据界面提示,在导入时选择“Import project from - [Manager样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440009.md): 通过典型场景,可以快速学习和掌握Manage REST API的开发过程,并且对关键的函数有所了解。假定用户需要以非界面方式实现操作FusionInsight Manager系统,要求开发基于HTTP Basic认证的应用程序实现如下功能:登录FusionInsight Manager系统。访问FusionInsight Manager系 - [Manager登录认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440012.md): 实现Basic认证登录,并返回登录后的httpClient。配置用户的集群信息和登录账号信息:配置文件:“样例工程文件夹\conf\UserInfo.properties”。参数说明:userName:登录Manager系统的用户名。password:userName对应的用户密码。webUrl:Manager首页地址。userName: - [添加Manager用户](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440013.md): 通过访问Manager接口完成添加用户。以下代码片段是添加用户的示例,在rest包的“UserManager”类的main方法中。 - [查找Manager用户](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440014.md): 通过访问Manager接口完成查找用户。以下代码片段是查找用户的示例,在rest包的“UserManager”类的main方法中。 - [修改Manager用户](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440015.md): 通过访问Manager接口完成修改用户。以下代码片段是修改用户的示例,在rest包的“UserManager”类的main方法中。 - [删除Manager用户](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440016.md): 通过访问Manager接口完成删除用户。以下代码片段是删除用户的示例,在rest包的“UserManager”类的main方法中。 - [导出Manager用户列表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440017.md): 通过访问Manager接口完成导出用户列表,导出用户列表需要依次调用导出和下载接口完成用户列表的导出。导出接口的输出为下载接口的输入。以下代码片段是导出用户列表的示例,在rest包的“ExportUsers”类的main方法中。 - [在本地开发环境中调测Manager应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440020.md): 在程序代码完成开发后,可以在Windows开发环境中直接运行应用。如果Windows运行环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。在开发环境中(例如IntelliJ IDEA中),分别选中以下两个工程运行程序:选中UserManager.java,右键选择Run 'UserManager.main()'运行应 - [查看Manager应用调测结果](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440021.md): Manager应用程序运行完成后,可通过如下方式查看运行结果:通过IntelliJ IDEA运行结果查看应用程序运行情况,可通过配置文件conf\log4j.properties配置日志打印信息。登录主管理节点查看系统日志/var/log/Bigdata/tomcat/web.log。运行UserManager类,运行成功会有如下日志信息 - [Manager Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440024.md): 以下仅对Manager REST API开发过程中的典型方法进行描述。该接口实现Basic认证登录,并返回登录后的HttpClient,登录过程中用户只需要调用一个接口,简化了使用过程。该接口的入参是从配置文件UserInfo.properties中获取的,该文件中的参数需要用户填写,该接口还会调用BasicAuthAccess类内部的多 - [运行Manager应用报错“authorize failed”](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440027.md): 运行应用程序时,操作失败,日志显示如图1所示。可能的原因为用户名、密码的配置错误。可排查UserInfo.properties文件中username和password的值是否配置正确。 - [运行Manager应用报错“WARN No appenders could be found for logger”](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440028.md): 运行应用程序时,操作失败,日志显示如图1所示。查看工程的bin目录下是否有编译过的log4j.properties,如果没有,则添加编译路径。 - [运行Manager应用报错“illegal character in path at index”](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440029.md): 运行应用程序时,操作失败,日志显示如图1所示。可能的原因是URL中带空格导致服务器端无法正确识别URL。需要去掉URL中的空格。 - [如何通过curl命令访问Manager REST API](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_440030.md): 用户可通过openssl version查看系统的openssl版本,如果版本低于OpenSSL 1.0.1,需要为操作系统安装较高版本的openssl,以支持使用TLSv1.1和TLSv1.2与集群交互。发送GET方法访问查询用户列表接口并保存jsessionid到jessionid.txt文件中:curl -k -i --basic - [ClickHouse应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460001.md): ClickHouse是面向联机分析处理的列式数据库,支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。ClickHouse的设计优点:数据压缩比高多核并行计算向量化计算引擎支持嵌套数据结构支持稀疏索引支持数据Insert和UpdateClickHouse的应用场景:实时数仓场景使 - [ClickHouse应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460004.md): 开发流程中各阶段的说明如图1所示。 - [准备ClickHouse应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。登录FusionInsight Manag - [导入并配置ClickHouse样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460007.md): 获取ClickHouse开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过FusionInsight Manager页面右下角查看。ClickHouse针对多个场景提供样例工程,帮助客户快速学习ClickHouse工程。在IDEA界 - [ClickHouse应用程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460008.md): 通过典型场景,用户可以快速学习和掌握ClickHouse的开发过程,并且对关键的接口函数有所了解。ClickHouse作为一款独立的DBMS系统,使用SQL语言就可以进行常见的操作。开发程序示例中,全部通过clickhouse-jdbc API接口来进行描述。设置属性建立连接创建库创建表插入数据查询数据删除表 - [配置ClickHouse连接属性](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460012.md): 在ClickhouseJDBCHaDemo、Demo、NativeJDBCHaDemo和Util文件创建connection的样例中设置连接属性,如下样例代码设置socket超时时间为60s。如果导入并配置ClickHouse样例工程中的“clickhouse-example.properties”配置文件中“sslUsed”参数配置为“ - [建立ClickHouse连接](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460013.md): 本章节介绍建立ClickHouse连接样例代码。以下代码片段在“ClickhouseJDBCHaDemo”类的initConnection方法中。在创建连接时传入表1中配置的user和password作为认证凭据,ClickHouse会带着用户名和密码在服务端进行安全认证。MRS 3.3.0之前版本,示例代片段参考如下:MRS 3.3.0 - [创建ClickHouse数据库](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460014.md): 本章节介绍创建ClickHouse数据库样例代码。通过on cluster语句在集群中创建表1中以databaseName参数值为数据库名的数据库。示例代片段参考如下:private void createDatabase(String databaseName, String clusterName) throws Exception - [创建ClickHouse表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460015.md): 本章节介绍创建ClickHouse表样例代码。通过on cluster语句在集群中创建表1中tableName参数值为表名的ReplicatedMerge表和Distributed表。示例代片段参考如下: - [插入ClickHouse数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460016.md): 本章节介绍插入ClickHouse数据样例代码。创建ClickHouse表创建的表具有三个字段,分别是String、UInt8和Date类型。示例代片段参考如下: - [查询ClickHouse数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460017.md): 本章节介绍查询ClickHouse数据样例代码。查询语句1:querySql1查询创建ClickHouse表创建的tableName表中任意10条数据;查询语句2:querySql2通过内置函数对创建ClickHouse表创建的tableName表中的日期字段取年月后进行聚合。示例代片段参考如下: - [删除ClickHouse表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460018.md): 本章节介绍删除ClickHouse表样例代码。删除在创建ClickHouse表中创建的副本表和分布式表。示例代片段参考如下: - [在本地Windows环境中调测ClickHouse应用(MRS 3.3.0之前版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460021.md): 在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。在开发环境IntelliJ IDEA工程“clickhouse-examples”中单击“Run 'Demo'”运行应用程序工程。ClickHouse应用程序运行完成后,可通过以下方式查看程序运行情况:通过运行结果查看程序运 - [在Linux环境中调测ClickHouse应用(MRS 3.3.0之前版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460022.md): ClickHouse应用程序支持在Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致,并设置好Java环境变量。进入IntelliJ IDEA,选择“File > Project Structu - [导入并配置ClickHouse springboot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460024.md): 为了运行MRS产品ClickHouse组件的SpringBoot接口样例代码,需要完成下面的操作。本章节以在Windows环境下开发SpringBoot方式连接ClickHouse服务的应用程序为例。该章节内容适用于MRS 3.3.0及之后版本。选择“File > New > Project from Existing Sources”。 - [调测springboot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460026.md): “clickhouse-rest-client-example”样例代码,JDK版本只支持JDK 8和JDK 17。编译并运行程序在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。在开发环境IntelliJ IDEA工程“clickhouse-rest-client-exa - [导入并配置ClickHouse事务样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460028.md): 本章节仅适用MRS 3.3.0及之后版本。获取ClickHouse开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过FusionInsight Manager页面右下角查看。ClickHouse针对多个场景提供样例工程,帮助客户快速 - [在本地Windows环境中调测ClickHouse应用(MRS 3.3.0及之后版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460030.md): 在调测程序前,需要先确认当前使用的JDK版本(IDEA中默认使用JDK 8),并根据实际需要修改。以下操作以JDK 17为例,JDK 8操作类似。在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。事务样例工程无需执行此步骤。事务样例工程无需执行此步骤。选择“Maven > - [在Linux环境中调测ClickHouse应用(MRS 3.3.0及之后版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_460031.md): ClickHouse应用程序支持在Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致,并设置好Java环境变量。选择“Maven > clickhouse-examples > Lifecycl - [ClickHouse应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480002.md): ClickHouse是面向联机分析处理的列式数据库,支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。ClickHouse的设计优点:数据压缩比高多核并行计算向量化计算引擎支持嵌套数据结构支持稀疏索引支持数据Insert和UpdateClickHouse的应用场景:实时数仓场景使 - [ClickHouse应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480005.md): 开发流程中各阶段的说明如图1和表1所示。 - [准备ClickHouse应用开发和运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480007.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。进行应用开发时,需要同时准备代码的运行调测的环境,用于验证应用程序运行正常。如果本地Windows开发环境和集群业务平面网络互通,可下载集群客户端到本地,获取相关调测程序所需的集群配置文件及配置网络连通后,然后直接在Windows中进行程序调测。登录FusionInsight Manag - [导入并配置ClickHouse样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480008.md): 获取ClickHouse开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过FusionInsight Manager页面右下角查看。ClickHouse针对多个场景提供样例工程,帮助客户快速学习ClickHouse工程。在IDEA界 - [ClickHouse应用程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480009.md): 通过典型场景,用户可以快速学习和掌握ClickHouse的开发过程,并且对关键的接口函数有所了解。ClickHouse作为一款独立的DBMS系统,使用SQL语言就可以进行常见的操作。以下开发程序示例中,全部通过clickhouse-jdbc API接口来进行描述。设置属性建立连接创建库创建表插入数据查询数据删除表 - [配置ClickHouse连接属性](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480013.md): 在ClickhouseJDBCHaDemo、Demo、NativeJDBCHaDemo和Util文件创建connection的样例中设置连接属性,如下样例代码设置socket超时时间为60s。如果导入并配置ClickHouse样例工程中的“clickhouse-example.properties”配置文件中“sslUsed”参数配置为“ - [建立ClickHouse连接](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480014.md): 本章节介绍建立ClickHouse连接样例代码。以下代码片段在“ClickhouseJDBCHaDemo”类的initConnection方法中。在创建连接时传入表1中配置的user和password作为认证凭据,ClickHouse会带着用户名和密码在服务端进行安全认证。MRS 3.3.0之前版本,示例代片段参考如下:MRS 3.3.0 - [创建ClickHouse数据库](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480015.md): 本章节介绍创建ClickHouse数据库样例代码。通过on cluster语句在集群中创建表1中以databaseName参数值为数据库名的数据库。示例代片段参考如下:private void createDatabase(String databaseName, String clusterName) throws Exception - [创建ClickHouse表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480016.md): 本章节介绍创建ClickHouse表样例代码。通过on cluster语句在集群中创建表1中tableName参数值为表名的ReplicatedMerge表和Distributed表。示例代片段参考如下: - [插入ClickHouse数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480017.md): 本章节介绍插入ClickHouse数据样例代码。创建ClickHouse表创建的表具有三个字段,分别是String、UInt8和Date类型。示例代片段参考如下: - [查询ClickHouse数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480018.md): 本章节介绍查询ClickHouse数据样例代码。查询语句1:querySql1查询创建ClickHouse表创建的tableName表中任意10条数据;查询语句2:querySql2通过内置函数对创建ClickHouse表创建的tableName表中的日期字段取年月后进行聚合。示例代片段参考如下: - [删除ClickHouse表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480019.md): 本章节介绍删除ClickHouse表样例代码。删除在创建ClickHouse表中创建的副本表和分布式表。示例代片段参考如下: - [在本地Windows环境中调测ClickHouse应用(MRS 3.3.0之前版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480021.md): 在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。在开发环境IntelliJ IDEA工程“clickhouse-examples”中单击“Run 'Demo'”运行应用程序工程。ClickHouse应用程序运行完成后,可通过以下方式查看程序运行情况:通过运行结果查看程序运 - [在Linux环境中调测ClickHouse应用(MRS 3.3.0之前版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480022.md): ClickHouse应用程序也支持在Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致,并设置好Java环境变量。进入IntelliJ IDEA,选择“File > Project Struct - [导入并配置ClickHouse springboot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480024.md): 为了运行MRS产品ClickHouse组件的SpringBoot接口样例代码,需要完成下面的操作。本章节以在Windows环境下开发SpringBoot方式连接ClickHouse服务的应用程序为例。该章节内容适用于MRS 3.3.0及之后版本。选择“File > New > Project from Existing Sources”。 - [调测ClickHouse SpringBoot样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480026.md): 编译并运行程序在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。在开发环境IntelliJ IDEA工程“clickhouse-rest-client-examples”中右键单击“ClickHouseApplication”,选择“Run ClickHouseApplic - [导入并配置ClickHouse事务样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480028.md): 本章节仅适用MRS 3.3.0及之后版本。获取ClickHouse开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过FusionInsight Manager页面右下角查看。ClickHouse针对多个场景提供样例工程,帮助客户快速 - [在本地Windows环境中调测ClickHouse应用(MRS 3.3.0及之后版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480030.md): 在调测程序前,需要先确认当前使用的JDK版本(IDEA中默认使用JDK 8),并根据实际需要修改。以下操作以JDK 17为例,JDK 8操作类似。在程序代码完成开发后,您可以在Windows环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。事务样例工程无需执行此步骤。事务样例工程无需执行此步骤。选择“Maven > - [在Linux环境中调测ClickHouse应用(MRS 3.3.0及之后版本)](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_480031.md): ClickHouse应用程序也支持在Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致,并设置好Java环境变量。选择“Maven > clickhouse-examples > Lifecyc - [IoTDB应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490002.md): IoTDB是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,支持对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。本文档内容仅适用于MRS 3.2.0及之后版本。以电力场景为例,说明如何在IoTDB中创建一个正确的数据模型。如图1所示,即“电力集 - [IoTDB应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490004.md): 本文档主要基于Java API对IoTDB进行应用开发。开发流程中各阶段的说明如图1和表1所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。 - [导入并配置IoTDB样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490007.md): 获取IoTDB开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。配置各样例工程的“..\src\main\resources”目录下“com.huawei.bigdata.iotdb.IoTDBProperties”类,修改该类的IoTDBProperties()方法的proPath的值为“iotdb-example.pr - [IoTDB JDBC样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490010.md): 通过JDBC连接方式,执行IoTDB SQL语句。下面代码片段仅为演示,具体代码参见“com.huawei.bigdata.iotdb.JDBCExample”类。其中,在jdbc url里设置待连接的IoTDBServer所在的节点IP、端口、用户名和密码。待连接的IoTDBServer所在的节点IP地址,可通过登录FusionInsi - [IoTDB Session样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490011.md): 通过Session连接方式,执行IoTDB SQL语句。下面代码片段仅为演示,具体代码参见“com.huawei.bigdata.SessionExample”。其中在Session对象的参数里,设置IoTDBServer所在的节点IP、端口、用户名和密码。待连接的IoTDBServer所在的节点IP地址,可通过登录FusionInsig - [在本地Windows环境中调测IoTDB应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490015.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和IP地址映射,主机名和IP地址请保持一一对应。修改代码匹配的Io - [FlinkIoTDBSink样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490018.md): IoTDB与Flink的集成。此模块包含了iotdb sink,通过flink job将时序数据写入IoTDB。该样例演示了从一个Flink job中发送数据到IoTDB server的场景。一个模拟的Source SensorSource每秒钟产生一个数据点。Flink使用IoTDBSink消费产生数据并写入IoTDB。其中在Sessi - [FlinkIoTDBSource样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490019.md): IoTDB与Flink的集成。此模块包含了iotdb source,通过flink job将时序数据从IoTDB读取出来并且打印。该示例演示了Flink job 如何从IoTDB server读取时序数据的场景:Flink使用IoTDBSource从 IoTDB server读取数据。要使用IoTDBSource,您需要构造一个IoTDB - [在Linux中调测JDBC或Session应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490025.md): IoTDB应用程序支持在安装IoTDB客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。操作以Session程序为例,JDBC程序操作与Session程序一样。已安装IoTDB客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。 - [在Flink WebUI和Linux中调测Flink应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490030.md): IoTDB应用程序支持在安装了Flink客户端的Linux环境和安装了Flink WebUI的环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的环境中运行。集群已安装Flink组件,并且添加了FlinkServer实例。已安装包含Flink服务的集群客户端,例如安装路径如:/opt/client。当客户端所在主机不是集群中的节 - [IoTDB Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490034.md): IoTDB提供了一个针对原生接口的连接池(SessionPool),使用该接口时,您只需要指定连接池的大小,就可以在使用时从池中获取连接。如果超过60s没有得到一个连接,就会打印一条警告日志,但是程序仍将继续等待。当一个连接被用完后,该连接会自动返回池中等待下次被使用;当一个连接损坏后,该连接会从池中被删除,并重建一个连接重新执行用户的操 - [IoTDB Kafka样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490036.md): 该样例介绍如何通过Kafka将数据发送到IoTDB。Producer.java:该样例展示如何将时序数据发送到Kafka集群。根据实际场景,修改“KafkaProperties.java”文件中的“TOPIC”变量,例如:public final static String TOPIC = "kafka-topic"。该样例默认的时序数据 - [在Linux环境中调测Kafka应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490038.md): 在程序代码完成开发后,可以在Linux环境中运行IoTDB-Kafka样例程序。已安装IoTDB和Kafka客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。构建Jar包方式有以下两种:方法一:选择“Maven > 样例工程名称 > Lifecycl - [注册UDF](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490041.md): 构建Jar包。构建Jar包方式有以下两种:方法一:选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。maven工具clea - [使用UDF进行查询](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490042.md): SLIMIT / SOFFSETLIMIT / OFFSETNON ALIGN支持值过滤支持时间过滤UDF查询目前不支持对齐时间序列“(Aligned Timeseries)”进行的查询,若在SELECT子句中选择的序列中包含对齐时间序列时,会提示错误。假定现在有时间序列“root.sg.d1.s1”和“root.sg.d1.s2”。执行 - [卸载UDF](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490043.md): DROP FUNCTION 在IoTDB客户端执行以下命令,卸载名称为“example”的UDF。 - [IoTDB自定义函数(UDF)样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490045.md): 该样例代码介绍如何实现一个简单的IoTDB自定义函数(UDF)。详细信息可以参考UDF样例程序与操作章节。以下为代码片段示例: - [准备连接IoTDB集群配置文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_490047.md): 应用程序开发或运行过程中,需通过集群相关配置文件信息连接MRS集群,配置文件通常包括集群组件信息文件以及用于安全认证的用户文件,可从已创建好的MRS集群中获取相关内容。用于程序调测或运行的节点,需要与MRS集群内节点网络互通,同时配置hosts域名信息。场景一:准备本地Windows开发环境调测程序所需配置文件。下载并解压客户端软件包。M - [IoTDB应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500002.md): IoTDB是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,支持对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。本文档内容仅适用于MRS 3.2.0及之后版本。以电力场景为例,说明如何在IoTDB中创建一个正确的数据模型。如图1所示,即“电力集 - [IoTDB应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500004.md): 本文档主要基于Java API对IoTDB进行应用开发。开发流程中各阶段的说明如图1和表1所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500006.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。 - [导入并配置IoTDB样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500007.md): 获取IoTDB开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。需放置准备集群认证用户信息获取到的认证文件“user.keytab”和“krb5.conf”及SSL证书文件“truststore.jks”到各样例工程的“..\src\main\resources”目录下。配置各样例工程的“..\src\main\resou - [IoTDB JDBC样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500010.md): 通过JDBC连接方式,执行IoTDB SQL语句。下面代码片段仅为演示,具体代码参见“com.huawei.bigdata.iotdb.JDBCExample”类。其中,在jdbc url里设置待连接的IoTDBServer所在的节点IP、RPC端口、用户名和密码。待连接的IoTDBServer所在的节点IP地址,可通过登录FusionI - [IoTDB Session样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500011.md): 通过Session连接方式,执行IoTDB SQL语句。下面代码片段仅为演示,具体代码参见“com.huawei.bigdata.SessionExample”。其中修改HOST_1、HOST_2、HOST_3为IoTDBServer所在节点的业务IP,在Session对象的参数里,设置用户名和密码。待连接的IoTDBServer所在节点 - [在本地Windows环境中调测IoTDB应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500015.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和IP地址映射,主机名和IP地址请保持一一对应。修改代码匹配的Io - [FlinkIoTDBSink样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500018.md): IoTDB与Flink的集成。此模块包含了iotdb sink,通过flink job将时序数据写入IoTDB。该样例演示了从一个Flink job中发送数据到IoTDB server的场景。一个模拟的Source SensorSource每秒钟产生一个数据点。Flink使用IoTDBSink消费产生数据并写入IoTDB。其中在Sessi - [FlinkIoTDBSource样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500019.md): IoTDB与Flink的集成。此模块包含了iotdb source,通过flink job将时序数据从IoTDB读取出来并且打印。该示例演示了Flink job如何从IoTDB server读取时序数据的场景:Flink使用IoTDBSource从IoTDB server读取数据。要使用IoTDBSource,您需要构造一个IoTDBSo - [在Linux环境中调测JDBC或Session应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500025.md): IoTDB应用程序支持在安装IoTDB客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的Linux运行环境中运行。操作以Session程序为例,JDBC程序操作与Session程序一样。已安装IoTDB客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。 - [在Flink WebUI和Linux环境中调测Flink应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500030.md): IoTDB应用程序支持在安装了Flink客户端的Linux环境和安装了Flink WebUI的环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的环境中运行。集群已安装Flink组件,并且添加了FlinkServer实例。已安装包含Flink服务的集群客户端,例如安装路径为“/opt/client”。当客户端所在主机不是集群中的 - [IoTDB Java API接口介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500034.md): IoTDB提供了一个针对原生接口的连接池(SessionPool),使用该接口时,您只需要指定连接池的大小,就可以在使用时从池中获取连接。如果超过60s没有得到一个连接,就会打印一条警告日志,但是程序仍将继续等待。当一个连接被用完后,该连接会自动返回池中等待下次被使用;当一个连接损坏后,该连接会从池中被删除,并重建一个连接重新执行用户的操 - [IoTDB Kafka样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500036.md): 该样例介绍如何通过Kafka将数据发送到IoTDB。Producer.java:该样例展示如何将时序数据发送到Kafka集群。根据实际场景,修改“KafkaProperties.java”文件中的“TOPIC”变量,例如:public final static String TOPIC = "kafka-topic"。该样例默认的时序数据 - [在Linux环境中调测Kafka应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500038.md): 在程序代码完成开发后,可以在Linux环境中运行IoTDB-Kafka样例程序。已安装IoTDB和Kafka客户端。当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。构建Jar包方式有以下两种:方法一:选择“Maven > 样例工程名称 > Lifecycl - [IoTDB自定义函数(UDF)样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500041.md): 该样例代码介绍如何实现一个简单的IoTDB自定义函数(UDF)。详细信息可以参考UDF样例程序与操作章节。以下为代码片段示例: - [注册UDF](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500043.md): 构建Jar包。构建Jar包方式有以下两种:方法一:选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。maven工具clea - [使用UDF进行查询](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500044.md): SLIMIT / SOFFSETLIMIT / OFFSETNON ALIGN支持值过滤支持时间过滤UDF查询目前不支持对齐时间序列“(Aligned Timeseries)”进行的查询,若在SELECT子句中选择的序列中包含对齐时间序列时,会提示错误。假定现在有时间序列“root.sg.d1.s1”和“root.sg.d1.s2”。执行 - [卸载UDF](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500045.md): DROP FUNCTION 在IoTDB客户端执行以下命令,卸载名称为“example”的UDF。 - [使用Keytab文件进行JDBC安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500046.md): 使用keytab文件进行JDBC认证。登录FusionInsight Manager,选择“系统 > 权限 > 用户”,下载参考准备MRS应用开发用户准备的开发用户的认证凭据。以下代码片段仅为演示,具体代码参见“com.huawei.bigdata.iotdb.JDBCbyKerberosExample”类。在Manager界面,选择“集 - [使用Keytab文件进行Session安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500047.md): 使用Keytab文件进行Session认证。登录FusionInsight Manager,选择“系统 > 权限 > 用户”,下载参考准备MRS应用开发用户准备的开发用户的认证凭据。以下代码片段仅为演示,具体代码参见“com.huawei.bigdata.iotdb.SessionbyKerberosExample”类。在Manager界 - [准备连接IoTDB集群配置文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_500049.md): 对于开启Kerberos认证的MRS集群,需提前准备具有相关组件操作权限的用户用于程序认证。以下IoTDB权限配置示例供参考,在实际业务场景中可根据业务需求灵活调整。填写角色的名称,例如developrole。在“配置资源权限”的表格中选择“待操作集群的名称 > IoTDB > 普通用户权限”,勾选root根目录的“设置数据库”权限。单击 - [Doris应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530003.md): Doris是一个基于MPP架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分 - [Doris应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530005.md): 开发流程中各阶段的说明如下图所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530008.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。 - [准备连接Doris集群配置文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530009.md): 对于开启Kerberos认证的MRS集群,需提前准备具有相关组件操作权限的用户用于程序认证。以下Doris权限配置示例供参考,在实际业务场景中可根据业务需求灵活调整。填写角色名称,如“dorisrole”.在“配置资源权限”选择“待操作的集群 > Doris”,勾选“Doris管理员权限”,单击“确定”。用于程序调测或运行的节点,需要与 - [配置并导入JDBC、Stream Load或Flink Jar样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530010.md): 为了运行Doris组件的JDBC接口样例代码,需要完成下面的操作。在IntelliJ IDEA的菜单栏中,选择“File > Open...”,显示“Open File or Project”对话框。在弹出窗口选择文件夹“doris-jdbc-example”,单击“OK”。Windows下要求该文件夹的完整路径不包含空格。以在Windo - [配置并导入SpringBoot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530011.md): 为了运行MRS产品Doris组件的SpringBoot接口样例代码,需要完成下面的操作。本章节以在Windows环境下开发SpringBoot方式连接Doris服务的应用程序为例。选择“File > New > Project from Existing Sources”。在显示的“Select File or Directory to - [Doris JDBC接口样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530013.md): 通过典型场景,用户可以快速学习和掌握Doris的开发过程,并且对关键的接口函数有所了解。Doris可以使用SQL进行常见的业务操作,代码样例中所涉及的SQL操作主要包括创建数据库、创建表、插入表数据、查询表数据以及删除表操作。本代码样例操作流程如下:使用JDBC连接到Doris。创建数据库。在数据库中创建表。向表中插入数据。查询表数据。删 - [创建Doris连接](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530015.md): 以下代码片段在“JDBCExample”类的“createConnection”方法中。USER和PASSWD为在创建连接时用于进行安全认证的用户名和密码。 - [创建Doris数据库](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530016.md): 本章节介绍创建Doris数据库样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句在集群中创建dbName变量对应的数据库。String createDatabaseSql = "create database if not exists " + dbName; public static voi - [创建Doris表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530017.md): 本章节介绍创建Doris表样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句在集群中dbName变量对应的数据库下创建tableName对应的表。 - [向Doris表中插入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530018.md): 本章节介绍向Doris表中插入数据样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句在集群的dbName.tableName表中插入数据。 - [查询Doris表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530019.md): 本章节介绍查询Doris表数据样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句查询集群中的dbName.tableName表数据。 - [删除Doris表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530020.md): 本章节介绍删除Doris表样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句删除集群中的dbName.tableName表。 - [在本地Windows环境中调测Doris应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530023.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和公网IP地址映射,主机名和公网IP地址请保持一一对应。放置好配置 - [在Linux环境中调测Doris应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530026.md): 在程序代码完成开发后,您可以上传Jar包至Linux环境中运行应用。Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致。当Linux环境所在主机不是集群中的节点时,需要在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。构建Jar包方式有以下两种:方法一:选择“ - [Doris Stream Load接口调用样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530029.md): Doris Stream Load样例程序用于将本地文件csv文件数据导入到Doris表中。本章节内容仅适用于MRS 3.3.1-LTS及之后版本。需根据实际环境修改样例代码中的以下参数值:HOST:值为Doris的Master FE节点IP地址,Master FE节点可通过在Manager界面,选择“集群 > 服务 > Doris”,查 - [Doris对接Flink Jar样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_530031.md): Doris支持对接Flink Jar样例程序,用于将数据导入到Doris表中。该章节内容仅适用于MRS 3.6.0-LTS及之后版本需根据实际环境修改“com/huawei/doris/FlinkDorisConnectorJarDemo.java”样例代码中的以下参数值:HOST:值为Doris的Master FE节点IP地址,Mast - [Doris应用开发简介](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540002.md): Doris是一个基于MPP架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分 - [Doris应用开发流程介绍](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540004.md): 开发流程中各阶段的说明如下图所示。 - [准备本地应用开发环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540007.md): 在进行应用开发时,要准备的开发和运行环境如表1所示。 - [准备连接Doris集群配置文件](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540008.md): 对于未开启Kerberos认证的MRS集群,需提前准备具有相关组件操作权限的用户用于程序认证。以下Doris权限配置示例供参考,在实际业务场景中可根据业务需求灵活调整。mysql -uadmin-P数据库连接端口-hDoris FE实例IP地址admin用户默认密码为空。数据库连接端口为Doris FE的查询连接端口,默认为29982,也 - [配置并导入JDBC、Stream Load或Flink Jar样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540009.md): 为了运行Doris组件的JDBC接口样例代码,需要完成下面的操作。在IntelliJ IDEA的菜单栏中,选择“File > Open...”,显示“Open File or Project”对话框。在弹出窗口选择文件夹“doris-jdbc-example”,单击“OK”。Windows下要求该文件夹的完整路径不包含空格。以在Windo - [配置并导入SpringBoot样例工程](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540010.md): 为了运行MRS产品Doris组件的SpringBoot接口样例代码,需要完成下面的操作。本章节以在Windows环境下开发SpringBoot方式连接Doris服务的应用程序为例。选择“File > New > Project from Existing Sources”。在显示的“Select File or Directory to - [Doris JDBC接口样例程序开发思路](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540012.md): 通过典型场景,用户可以快速学习和掌握Doris的开发过程,并且对关键的接口函数有所了解。Doris可以使用SQL进行常见的业务操作,代码样例中所涉及的SQL操作主要包括创建数据库、创建表、插入表数据、查询表数据以及删除表操作。本代码样例操作流程如下:使用JDBC连接到Doris。创建数据库。在数据库中创建表。向表中插入数据。查询表数据。删 - [创建Doris连接](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540014.md): 以下代码片段在“JDBCExample”类的“createConnection”方法中。USER和PASSWD为在创建连接时用于进行安全认证的用户名和密码。 - [创建Doris数据库](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540015.md): 本章节介绍创建Doris数据库样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句在集群中创建dbName变量对应的数据库。String createDatabaseSql = "create database if not exists " + dbName; public static voi - [创建Doris表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540016.md): 本章节介绍创建Doris表样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句在集群中dbName变量对应的数据库下创建tableName对应的表。 - [向Doris表中插入数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540017.md): 本章节介绍向Doris表中插入数据样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句在集群的dbName.tableName表中插入数据。 - [查询Doris表数据](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540018.md): 本章节介绍查询Doris表数据样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句查询集群中的dbName.tableName表数据。 - [删除Doris表](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540019.md): 本章节介绍删除Doris表样例代码。以下代码片段在“JDBCExample”类中。以Java JDBC方式执行SQL语句删除集群中的dbName.tableName表。 - [在本地Windows环境中调测Doris应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540022.md): 在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。需要在运行样例代码的本机hosts文件中设置访问节点的主机名和公网IP地址映射,主机名和公网IP地址请保持一一对应。放置好配置 - [在Linux环境中调测Doris应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540025.md): 在程序代码完成开发后,您可以上传Jar包至Linux环境中运行应用。Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致。当Linux环境所在主机不是集群中的节点时,需要在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。构建Jar包方式有以下两种:方法一:选择“ - [Doris Stream Load接口调用样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540028.md): Doris Stream Load样例程序用于将本地文件csv文件数据导入到Doris表中。本章节内容仅适用于MRS 3.3.1-LTS及之后版本。需根据实际环境修改样例代码中的以下参数值:HOST:值为Doris的Master FE节点IP地址,Master FE节点可通过在Manager界面,选择“集群 > 服务 > Doris”,查 - [Doris对接Flink Jar样例程序](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_540029.md): Doris支持对接Flink Jar样例程序,用于将数据导入到Doris表中。该章节内容仅适用于MRS 3.6.0-LTS及之后版本需根据实际环境修改“com/huawei/doris/FlinkDorisConnectorJarDemo.java”样例代码中的以下参数值:HOST:值为Doris的Master FE节点IP地址,Mast - [快速开发HBase应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0019.md): HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase设计目标是用来解决关系型数据库在处理海量数据时的局限性。HBase使用场景有如下几个特点:处理海量数据(TB或PB级别以上)。具有高吞吐量。在海量数据中实现高效的随机读取。具有很好的伸缩能力。能够同时处理结构化和非结构化的数据。MRS对外提供了基于HBase组件的 - [快速开发HDFS应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0020.md): HDFS(Hadoop Distributed File System)是一个适合运行在通用硬件之上,具备高度容错特性,支持高吞吐量数据访问的分布式文件系统,非常适合大规模数据集应用。HDFS适用于如下场景:处理海量数据(TB或PB级别以上)需要很高的吞吐量需要高可靠性需要很好的可扩展能力MRS对外提供了基于HDFS组件的应用开发样例工程 - [快速开发Hive JDBC应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0021.md): Hive是一个开源的,建立在Hadoop上的数据仓库框架,提供类似SQL的HQL语言操作结构化数据,其基本原理是将HQL语言自动转换成Mapreduce任务或Spark任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。Hive主要特点如下:通过HQL语言非常容易地完成数据提取、转换和加载(ETL)。通过HQL完成海量结构化数 - [快速开发Hive HCatalog应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0022.md): Hive是一个开源的,建立在Hadoop上的数据仓库框架,提供类似SQL的HQL语言操作结构化数据,其基本原理是将HQL语言自动转换成Mapreduce任务或Spark任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。Hive主要特点如下:通过HQL语言非常容易地完成数据提取、转换和加载(ETL)。通过HQL完成海量结构化数 - [快速开发Kafka应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0023.md): Kafka是一个分布式的消息发布-订阅系统。它采用独特的设计提供了类似JMS的特性,主要用于处理活跃的流式数据。Kafka有很多适用的场景:消息队列、行为跟踪、运维数据监控、日志收集、流处理、事件溯源、持久化日志等。Kafka有如下几个特点:高吞吐量消息持久化到磁盘分布式系统易扩展容错性好支持online和offline场景MRS对外提供 - [快速开发Flink应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0024.md): Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。Flink整个系统包含三个部分:Cli - [快速开发ClickHouse应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0025.md): ClickHouse是面向联机分析处理的列式数据库,支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。ClickHouse的设计优点:数据压缩比高多核并行计算向量化计算引擎支持嵌套数据结构支持稀疏索引支持数据Insert和UpdateClickHouse的应用场景:实时数仓场景使 - [快速开发Spark应用](https://support.huaweicloud.com/devg-lts-mrs/mrs_09_0026.md): Spark是分布式批处理框架,提供分析挖掘与迭代式内存计算能力,支持多种语言的应用开发。 通常适用以下场景:数据处理(Data Processing):可以用来快速处理数据,兼具容错性和可扩展性。迭代计算(Iterative Computation):支持迭代计算,有效应对多步的数据处理逻辑。数据挖掘(Data Mining):在海量数据 ## 服务公告 - [MRS 3.1.2-LTS.3版本说明](https://support.huaweicloud.com/bulletin-mrs/mrs_08_0156.md): MRS 3.1.2-LTS.3 2022年5月1日首个商用LTS版本上线。 - [MRS 3.1.5版本说明](https://support.huaweicloud.com/bulletin-mrs/mrs_08_0157.md): MRS 3.1.5 2023年3月28日 - [MRS 3.2.0-LTS.1版本说明](https://support.huaweicloud.com/bulletin-mrs/mrs_08_0158.md): MRS 3.2.0-LTS.1 2023年4月28日 - [MRS 3.5.0-LTS版本说明](https://support.huaweicloud.com/bulletin-mrs/mrs_08_0189.md): MRS 3.5.0-LTS 2024年10月30日 - [Apache Log4j2 远程代码执行漏洞(CVE-2021-44228)公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000002.md): 近日,华为云关注到Apache Log4j2存在一处远程代码执行漏洞(CVE-2021-44228),在引入Apache Log4j2处理日志时,会对用户输入的内容进行一些特殊的处理,攻击者可以构造特殊的请求,触发远程代码执行。目前POC已公开,风险较高。具体漏洞详情,请参见Apache Log4j2 远程代码执行漏洞(CVE-2021- - [Apache Log4j2 远程代码执行漏洞(CVE-2021-44228)修复指导](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000003.md): 本章节指导用户修复log4j2的CVE-2021-44228漏洞。目前有两种方式可以采用如下两种方式修复:现有集群节点安装补丁扩容节点安装补丁从OBS路径中下载的补丁工具“MRS_Log4j_Patch.tar.gz”,下载路径:https://mrs-container1-patch-cn-south-1.obs.cn-south-1. - [简介](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000005.md): Fastjson披露存在一处反序列化远程代码执行漏洞,漏洞影响所有1.2.80及以下版本,成功利用漏洞可绕过autoType限制,实现远程任意执行代码。存在漏洞的业务被攻击时,将可能导致攻击者远程在业务平台中执行任意代码。在产品未发布对应解决方案前,建议您参考以下的相关预防措施。加固物理设备安全边界,防止外网直接访问及攻击内网管理平面。排 - [影响范围](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000006.md): MRS 3.0.x至MRS 3.5.x版本。管理面:不涉及该漏洞租户面:Manager(Web+Controller+Acs+Aos+Disaster+pms+iam+BackupRecovery+nodeagent+MetricAgent)、ClickHouse、Kafka、Flink、Ranger执行以下章节:修复Manager We - [修复Manager Web](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000007.md): 已获取FusionInsight Manager登录地址及admin账号。cp $OM_TOMCAT_HOME/bin/catalina.sh /tmp$OMS_RUN_PATH/workspace/ha/module/harm/plugin/script/tomcat stop$OMS_RUN_PATH/workspace/ha/mod - [修复Manager Controller](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000008.md): 已获取FusionInsight Manager登录地址及admin账号。cp $CONTROLLER_HOME/sbin/controller.sh /tmpsh /opt/Bigdata/om-server/om/sbin/restart-controller.shps -ef |grep ControllerService如果包含参 - [修复Manager nodeagent](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000009.md): 已获取FusionInsight Manager登录地址及admin账号。cp $NODE_AGENT_HOME/bin/nodeagent_ctl.sh /tmp可以手动通过omm用户将修改完成的“$NODE_AGENT_HOME/bin/nodeagent_ctl.sh”文件覆盖到所有节点。$CONTROLLER_HOME/inst/ - [修复Kafka](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000010.md): 已获取FusionInsight Manager登录地址及admin账号。例如原参数值为:“-Xmx4G -Xms4G”,则修改后的参数值为:“-Xmx4G -Xms4G -Dfastjson.parser.safeMode=true”。ps -ef | grep KafkaUI如果包含参数“-Dfastjson.parser.safeM - [修复Flink](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000011.md): 已获取FusionInsight Manager登录地址及admin账号。例如原参数值为:“xxx”,则修改后的参数值为:“xxx -Dfastjson.parser.safeMode=true”。ps -ef | grep FlinkServer如果包含参数“-Dfastjson.parser.safeMode=true”,说明漏洞问题 - [MRS集群版本生命周期](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000014.md): MRS当前提供两种版本集群的创建:普通版和LTS版。MRS普通版集群版本号:格式为a.b.c.d,其中a.b为大版本号,c为小版本号,d为补丁版本,例如 MRS 3.1.5.1。a:代表了版本有较大的变动。b:代表了版本有一些组件的变动。c:代表了小版本的变动,可以向前兼容。d:代表了补丁版本,用于问题修复。MRS普遍版集群版本号a:代表 - [MRS控制台操作日志不再记录作业操作变更公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000016.md): 华为云计划于2025/03/10 00:00:00(北京时间)对MapReduce服务控制台操作日志功能进行调整,调整后操作日志处将不再记录作业操作的相关日志。管理控制台操作日志处将不再记录MRS集群作业操作的相关日志,MRS集群作业操作日志请到云审计服务CTS中事件列表中查看。云审计服务CTS支持在管理控制台对7天内操作记录按照事件类型 - [1.9.x版本集群停止维护公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000018.md): 发布时间:2023/3/8根据MRS版本生命周期策略,华为云MRS 1.9.x版本即将于2023.9.8 00:00(北京时间)EOS(停止服务),届时针对该版本集群,华为云将不再提供技术支持和服务,不再承诺安全性、稳定性及相应SLA。若您账号下存在1.9.x及之前版本的集群,为了保证您的服务权益,建议使用最新的商用版本,否则需自行承担存 - [2.1.x版本集群停止维护公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000019.md): 发布时间:2022/12/13根据MRS版本生命周期策略,华为云MRS 2.1.x版本即将于2023.5.13 00:00(北京时间)EOS(停止服务),届时针对该版本集群,华为云将不再提供技术支持和服务,不再承诺安全性、稳定性及相应SLA。若您账号下存在2.1.x及之前版本的集群,为了保证您的服务权益,建议使用最新的商用版本,否则需自行 - [3.1.0版本集群停止维护公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000020.md): 发布时间:2024/5/9根据MRS版本生命周期策略,华为云MRS 3.1.0版本即将于2024.11.9 00:00(北京时间)EOS(停止服务),届时针对该版本集群,华为云将不再提供技术支持和服务,不再承诺安全性、稳定性及相应SLA。若您账号下存在3.1.0及之前版本的集群,为了保证您的服务权益,建议使用最新的商用版本,否则需自行承担 - [3.1.0-LTS版本集群停止维护公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000021.md): 发布时间:2024/3/26根据MRS版本生命周期策略,华为云MRS 3.1.0-LTS版本即将于2024.9.26 00:00(北京时间)EOS(停止服务),届时针对该版本集群,华为云将不再提供技术支持和服务,不再承诺安全性、稳定性及相应SLA。若您账号下存在3.1.0-LTS及之前版本的集群,为了保证您的服务权益,建议使用最新的商用版 - [3.1.2-LTS版本集群停止维护公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000022.md): 发布时间:2025/6/2根据MRS版本生命周期策略,华为云MRS 3.1.2-LTS版本即将于2025.12.2 00:00(北京时间)EOS(停止服务),届时针对该版本集群,华为云将不再提供技术支持和服务,不再承诺安全性、稳定性及相应SLA。若您账号下存在3.1.2-LTS及之前版本的集群,为了保证您的服务权益,建议使用最新的商用版本 - [MRS 3.6.0-LTS.1版本说明](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000024.md): MRS 3.6.0-LTS.1 2026年5月30日无。 - [Linux内核权限提升漏洞(CVE-2026-31431)公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000025.md): 近期,互联网披露CVE-2026-31431 Linux Copy Fail本地提权漏洞。由于Linux内核加密子系统authencesn模块中存在逻辑缺陷,攻击者通过AF_ALG套接字暴露的内核加密API,配合splice()系统调用,可实现对setuid二进制文件(如 /usr/bin/su)页缓存的4字节任意写入,可导致容器逃逸、权 - [Linux内核权限提升漏洞(CVE-2026-43284)公告](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000026.md): 近期,业界公开了一个Linux内核高危本地权限提升(LPE)漏洞。它是继不久前的Copy Fail(CVE-2026-31431)之后,又一个利用内核页面缓存(Page Cache)写原语实现提权的逻辑漏洞,该漏洞被命名为Dirty Frag,可导致容器逃逸、权限提升,详情如下:CVE-2026-43284(xfrm/ESP路径):攻击者 - [修复Manager Acs](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000027.md): 执行结果如果包含参数“-Dfastjson.parser.safeMode=true”,则漏洞问题已经修复。 - [修复Manager Aos](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000028.md): 执行结果如果包含参数“-Dfastjson.parser.safeMode=true”,则漏洞问题已经修复。 - [修复Manager Disaster](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000029.md): 执行结果如果包含参数“-Dfastjson.parser.safeMode=true”,则漏洞问题已经修复。 - [修复Manager pms](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000030.md): 执行结果如果包含参数“-Dfastjson.parser.safeMode=true”,则漏洞问题已经修复。 - [修复Manager iam](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000031.md): 执行结果如果包含参数“-Dfastjson.parser.safeMode=true”,则漏洞问题已经修复。 - [修复Manager BackupRecovery](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000032.md): 安全集群(启用Kerberos认证):sh $BIGDATA_HOME/om-server/om/sbin/start-backupplugin.sh '' 20028 'security' 'backup/manager' '$BIGDATA_HOME/om-server/om/etc/om/backup.keytab' '$BIGDA - [修复Manager MetricAgent](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000033.md): 可以手动通过omm用户将修改完成的“$BIGDATA_OM_AGENT_HOME/metric-agent/bin/mpa_ctl.sh”文件覆盖到所有节点。执行结果如果包含参数“-Dfastjson.parser.safeMode=true”,则漏洞问题已经修复。可以手动通过omm用户将修改完成的“$BIGDATA_OM_AGENT_H - [修复ClickHouse](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000034.md): 找到check_shard_status函数,在${JAVA}命令后添加“-Dfastjson.parser.safeMode=true”, 如下图所示:登录ClickHouseServer所在实例的后台,执行如下命令:执行结果如下图所示,则规避成功:登录ClickHouseServer所在实例的后台,执行如下命令:执行结果如下图所示,则 - [修复Ranger](https://support.huaweicloud.com/bulletin-mrs/mrs_13_000035.md): 已获取FusionInsight Manager登录地址及admin账号。是,操作结束。否,则在搜索到的参数内容末尾添加“-Dfastjson.parser.safeMode=true”,修改的为所有Ranger的角色。注意与前参数有空格。注意与前参数有空格。执行结果如果如下图所示,则漏洞问题已经修复。是,则在搜索到的参数内容删除掉“ - ## 产品介绍 - [什么是MapReduce服务](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0001.md): 大数据是人类进入互联网时代以来面临的一个巨大问题:社会生产生活产生的数据量越来越大,数据种类越来越多,数据产生的速度越来越快。传统的数据处理技术,比如说单机存储,关系数据库已经无法解决这些新的大数据问题。为解决以上大数据处理问题,Apache基金会推出了Hadoop大数据处理的开源解决方案。Hadoop是一个开源分布式计算平台,可以充分利 - [产品优势](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0002.md): MapReduce服务(MRS)提供租户完全可控的企业级大数据集群云服务,轻松运行Hadoop、Spark、HBase、Kafka、ClickHouse等大数据组件,用户无需关注硬件的购买和维护。MRS服务拥有强大的Hadoop内核团队,基于华为大数据企业级平台构筑,历经行业数万节点部署量的考验,提供多级用户SLA保障。与自建Hadoop - [应用场景](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0004.md): 大数据在人们的生活中无处不在,在IoT、电子商务、金融、制造、医疗、能源和政府部门等行业均可以使用华为云MRS服务进行大数据处理。海量数据分析是现代大数据系统中的主要场景。通常企业会包含多种数据源,接入后需要对数据进行ETL(Extract-Transform-Load)处理形成模型化数据,以便提供给各个业务模块进行分析梳理,这类业务通常 - [MRS组件版本一览表](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0005.md): MRS各集群版本配套的组件及版本号信息如表1所示。Hadoop组件包含HDFS、Yarn、Mapreduce服务,DBService、KrbServer及LdapServer等集群内部使用的组件,在创建集群时的组件列表中不呈现。MRS组件的版本号通常与组件开源版本号保持一致。MRS集群内各组件不支持单独升级,请根据实际需要选择对应版本的集 - [HDFS基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000701.md): HDFS是Hadoop的分布式文件系统(Hadoop Distributed File System),实现大规模数据可靠的分布式读写。HDFS针对的使用场景是数据读写具有“一次写,多次读”的特征,而数据“写”操作是顺序写,也就是在文件创建时的写入或者在现有文件之后的添加操作。HDFS保证一个文件在一个时刻只被一个调用者执行写操作,而可以 - [HDFS HA方案介绍](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000702.md): 在Hadoop 2.0.0之前,HDFS集群中存在单点故障问题。由于每个集群只有一个NameNode,如果NameNode所在机器发生故障,将导致HDFS集群无法使用,除非NameNode重启或者在另一台机器上启动。这在两个方面影响了HDFS的整体可用性:当异常情况发生时,如机器崩溃,集群将不可用,除非重新启动NameNode。计划性的维 - [HDFS与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000703.md): HDFS是Apache的Hadoop项目的子项目,HBase利用Hadoop HDFS作为其文件存储系统。HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持。除了HBase产生的一些日志文件,HBase中的所有数据文件都可以存储在Hadoop HDFS文件系统上。HDFS是Hadoop分布式文件系统 - [HDFS开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000704.md): 离线数据汇总统计场景中,Join是一个经常用到的计算功能,在MapReduce中的实现方式大体如下:Map任务分别将两个表文件的记录处理成(Join Key,Value),然后按照Join Key做Hash分区后,送到不同的Reduce任务里去处理。Reduce任务一般使用Nested Loop方式递归左表的数据,并遍历右表的每一行,对于 - [Spark基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000801.md): Spark是一个开源的,并行数据处理框架,能够帮助用户简单、快速地开发大数据应用,对数据进行离线处理、流式处理、交互式分析等。Spark提供了一个快速的计算、写入及交互式查询的框架。相比于Hadoop,Spark拥有明显的性能优势。Spark使用in-memory的计算方式,通过这种方式来避免一个MapReduce工作流中的多个任务对同一 - [Spark HA方案介绍](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000802.md): 基于社区已有的JDBCServer基础上,采用多主实例模式实现了其高可用性方案。集群中支持同时共存多个JDBCServer服务,通过客户端可以随机连接其中的任意一个服务进行业务操作。即使集群中一个或多个JDBCServer服务停止工作,也不影响用户通过同一个客户端接口连接其他正常的JDBCServer服务。多主实例模式相比主备模式的HA方 - [Spark与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000803.md): 通常,Spark中计算的数据可以来自多个数据源,如Local File、HDFS等。最常用的是HDFS,用户可以一次读取大规模的数据进行并行计算。在计算完成后,也可以将数据存储到HDFS。分解来看,Spark分成控制端(Driver)和执行端(Executor)。控制端负责任务调度,执行端负责任务执行。读取文件的过程如图 读取文件过程所示 - [Spark开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000804.md): 出于管理和信息收集的需要,企业内部会存储海量数据,包括数目众多的各种数据库、数据仓库等,此时会面临以下困境:数据源种类繁多,数据集结构化混合,相关数据存放分散等,这就导致了跨源复杂查询因传输效率低,耗时长。当前开源Spark在跨源查询时,只能对简单的filter进行下推,因此造成大量不必要的数据传输,影响SQL引擎性能。针对下推能力进行增 - [HBase基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001001.md): 在大数据场景中,传统关系型数据库在处理海量数据时面临扩展性和性能瓶颈。当用户需要存储数十亿行、数百万列的非结构化或半结构化数据,并要求支持实时读写访问时,需要一种高可靠、高性能、可灵活扩展的分布式存储系统。HBase是一个开源的、面向列(Column-Oriented)、适合存储海量非结构化数据或半结构化数据的、具备高可靠性、高性能、可灵 - [HBase HA方案介绍](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001002.md): HBase中的HMaster负责Region分配,当RegionServer服务停止后,HMaster会把相应Region迁移到其他RegionServer。为了解决HMaster单点故障导致HBase正常功能受到影响的问题,引入HMaster HA模式。HMaster高可用性架构是通过在ZooKeeper集群创建Ephemeral no - [HBase与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001003.md): HDFS是Apache的Hadoop项目的子项目,HBase利用Hadoop HDFS作为其文件存储系统。HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持。除了HBase产生的一些日志文件,HBase中的所有数据文件都可以存储在Hadoop HDFS文件系统上。HBase和ZooKeeper的关系 - [HBase开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001004.md): HBase是一个Key-Value类型的分布式存储数据库。每张表的数据按照RowKey的字典顺序排序,因此,如果按照某个指定的RowKey去查询数据,或者指定某一个RowKey范围去扫描数据时,HBase可以快速定位到需要读取的数据位置,从而可以高效地获取到所需要的数据。在实际应用中,很多场景是查询某一个列值为“XXX”的数据。HBase - [Hive基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001101.md): 在大数据场景中,直接编写MapReduce程序处理海量结构化数据的门槛高、开发效率低。当用户需要以类SQL方式对存储在HDFS中的大规模数据进行ETL(提取、转换、加载)和分析时,Hive是一种高效的数据仓库解决方案。Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可 - [Hive CBO原理介绍](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001102.md): CBO,全称是Cost Based Optimization,即基于代价的优化器。其优化目标是:在编译阶段,根据查询语句中涉及到的表和查询条件,计算出产生中间结果少的高效join顺序,从而减少查询时间和资源消耗。Hive中实现CBO的总体过程如下:Hive使用开源组件Apache Calcite实现CBO。首先SQL语句转化成Hive的A - [Hive与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001103.md): Hive是Apache的Hadoop项目的子项目,Hive利用HDFS作为其文件存储系统。Hive通过解析和计算处理结构化的数据,Hadoop HDFS则为Hive提供了高可靠性的底层存储支持。Hive数据库中的所有数据文件都可以存储在Hadoop HDFS文件系统上,Hive所有的数据操作也都是通过Hadoop HDFS接口进行的。Hi - [Hive开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001104.md): HDFS Colocation(同分布)是HDFS提供的数据分布控制功能,利用HDFS Colocation接口,可以将存在关联关系或者可能进行关联操作的数据存放在相同的存储节点上。Hive支持HDFS的Colocation功能,即在创建Hive表时,通过设置表文件分布的locator信息,可以将相关表的数据文件存放在相同的存储节点上,从 - [Hue基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001201.md): Hue是一组WEB应用,用于和MRS大数据组件进行交互,能够帮助用户浏览HDFS,进行Hive查询,启动MapReduce任务等,它承载了与所有MRS大数据组件交互的应用。Hue主要包括了文件浏览器和查询编辑器的功能:文件浏览器能够允许用户直接通过界面浏览以及操作HDFS的不同目录;查询编辑器能够编写简单的SQL,查询存储在Hadoop之 - [Hue与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001202.md): Hue与Hadoop集群的交互关系如图1所示。 - [Hue开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001203.md): 存储策略定义。HDFS文件存储在多种等级的存储介质中,有不同的副本数。本特性可以手工设置HDFS目录的存储策略,或者根据HDFS文件最近访问时间和最近修改时间,自动调整文件存储策略、修改文件副本数、移动文件所在目录、自动删除文件,以便充分利用存储的性能和容量。MR引擎。用户执行Hive SQL可以选择使用MR引擎执行。可靠性增强。Hue自 - [Kafka基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001301.md): Kafka是一个分布式的、分区的、多副本的消息发布-订阅系统,它提供了类似于JMS的特性,但在设计上完全不同,它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性,适用于离线和在线的消息消费,如常规的消息收集、网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的互联网服务的数据收集场景。更多关于Kafka组件操作指导 - [Kafka与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001302.md): Kafka作为一个消息发布-订阅系统,为整个大数据平台多个子系统之间数据的传递提供了高速数据流转方式。Kafka可以实时接收来自外部的消息,并提供给在线以及离线业务进行处理。Kafka与其他组件的具体的关系如下图所示: - [Kafka开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001303.md): 支持监控如下Topic级别的指标:Topic输入的字节流量Topic输出的字节流量Topic拒绝的字节流量Topic每秒失败的fetch请求数Topic每秒失败的Produce请求数Topic每秒输入的消息条数Topic每秒的fetch请求数Topic每秒的produce请求数Topic输入的字节流量Topic输出的字节流量Topic拒绝 - [Storm基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001401.md): Apache Storm是一个分布式、可靠、容错的实时流式数据处理的系统。在Storm中,先要设计一个用于实时计算的图状结构,称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(master node)分发代码,将任务分配给工作节点(worker node)执行。一个拓扑中包括spout和bolt两种角色,其中s - [Storm与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001402.md): Storm,提供实时的分布式计算框架,它可以从数据源(如Kafka、TCP连接等)中获得实时消息数据,在实时平台上完成高吞吐、低延迟的实时计算,并将结果输出到消息队列或者进行持久化。Storm与其他组件的关系如图1所示:Storm和Streaming都使用的开源Apache Storm内核,不同的是,Storm使用的内核版本是1.2.1, - [Storm开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001403.md): CQLCQL(Continuous Query Language),持续查询语言,是一种用于实时数据流上的查询语言,它是一种SQL-like的语言,相对于SQL,CQL中增加了(时序)窗口的概念,将待处理的数据保存在内存中,进行快速的内存计算,CQL的输出结果为数据流在某一时刻的计算结果。使用CQL,可以快速进行业务开发,并方便地将业务提 - [Flume基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001601.md): Flume是一个高可用、高可靠,分布式的海量日志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。其中Flume-NG是Flume的一个分支,其特点是明显简单,体积更小,更容易部署,其最基本的架构如下图所示:Flume-NG由一 - [Flume与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001602.md): 当用户配置HDFS作为Flume的Sink时,HDFS就作为Flume的最终数据存储系统,Flume将传输的数据全部按照配置写入HDFS中。具体操作场景请参见使用Flume服务端从本地采集静态日志保存到HDFS和使用Flume服务端从本地采集动态日志保存到HDFS。当用户配置HBase作为Flume的Sink时,HBase就作为Flume - [Flume开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001603.md): 提升传输速度。可以配置将指定的行数作为一个Event,而不仅是一行,提高了代码的执行效率以及减少写入磁盘的次数。传输超大二进制文件。Flume根据当前内存情况,自动调整传输超大二进制文件的内存占用情况,不会导致Out of Memory(OOM)的出现。支持定制传输前后准备工作。Flume支持定制脚本,指定在传输前或者传输后执行指定的脚本 - [Loader基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001701.md): Loader是在开源Sqoop组件的基础上进行了一些扩展,实现MRS与关系型数据库、文件系统之间交换“数据”、“文件”,同时也可以将数据从关系型数据库或者文件服务器导入到HDFS/HBase中,或者反过来从HDFS/HBase导出到关系型数据库或者文件服务器中。Loader模型主要由Loader Client和Loader Server组 - [Loader与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001702.md): 与Loader有交互关系的组件有HDFS、HBase、Hive、Yarn、Mapreduce和ZooKeeper等。Loader作为客户端使用这些组件的某些功能,如存储数据到HDFS和HBase,从HDFS和HBase表读数据,同时Loader本身也是一个Mapreduce客户端程序,完成一些数据导入导出任务。Loader通过MapRed - [Loader开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_001703.md): Loader是在开源Sqoop组件的基础上进行了一些扩展,除了包含Sqoop开源组件本身已有的功能外,还开发了如下的增强特性:提供数据转化功能支持图形化配置转换步骤支持从SFTP/FTP服务器导入数据到HDFS/OBS支持从SFTP/FTP服务器导入数据到HBase表支持从SFTP/FTP服务器导入数据到Phoenix表支持从SFTP/F - [自动弹性伸缩](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0022.md): 随着企业的数据越来越多,越来越多的企业选择使用Spark/Hive等技术来进行分析,由于数据量大,任务处理繁重,资源消耗较高,因此使用成本也越来越高。当前并不是每个企业在每时每刻在进行分析,而一般是在一天的一个时间段内进行分析汇总,因此MRS提供了弹性伸缩能力,可以自动在业务在繁忙时申请额外资源,业务不繁忙时释放闲置资源,让用户按需使用, - [创建Task节点](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0023.md): MRS集群支持创建Task节点,只作为计算节点,不存放持久化的数据,是实现弹性伸缩的基础。在MRS服务只作为计算资源的场景下,使用Task节点可以节省成本,并可以更加方便快捷地对集群节点进行扩缩容,满足用户对集群计算能力随时增减的需求。当集群数据量变化不大而集群业务处理能力需求变化比较大,临时需要增大业务量时,可选择添加Task节点。临时 - [集群状态消息通知](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0024.md): 大数据集群运行过程中经常会进行如下操作:大数据集群变更,比如扩容、缩容集群。业务数据量突然变化,集群触发弹性伸缩。相关业务结束,需要终止大数据集群等。用户想要及时得知这些操作是否执行成功,以及当集群出现大数据服务不可用,或节点故障时,用户希望不用频繁登录集群查看,就可以及时地收到告警通知。MRS联合消息通知服务(SMN),可以将以上信息主 - [节点自定义引导操作](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0025.md): MRS提供标准的云上弹性大数据集群,目前可安装部署包括Hadoop、Spark等大数据组件。当前标准的云上大数据集群不能满足所有用户需求,例如如下几种场景:通用的操作系统配置不能满足实际数据处理需求,例如需调大系统最大连接数。需要安装自身业务所需的软件工具或运行环境,例如需安装Gradle、业务需要依赖R语言包。根据自身业务对大数据组件包 - [与其他云服务的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0026.md): MRS服务与周边其他云服务的关系如图1所示。MRS与其他云服务的关系图在您开启了云审计服务后,系统开始记录云服务资源的操作。云审计服务管理控制台保存最近7天的操作记录。相关操作步骤请参考云审计服务(CTS) > 用户指南。 - [约束与限制](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0027.md): 使用MRS前,您需要认真阅读并了解以下使用限制。MRS集群操作与组件使用过程中,应注意以下的禁用操作,防止集群不稳定导致业务运行异常。表4为MRS集群内各组件在操作与维护阶段应注意的高危操作。 - [配额说明](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0029.md): 配额是用户账号在对应环境配置的可用资源额度,限定配额仅是为了防止资源滥用。MapReduce服务通常使用的基础资源如下,配额由各个基础服务管理,如需扩大配额,请联系对应服务的技术支持进行扩容:弹性云服务器裸金属服务器虚拟私有云云硬盘镜像服务对象存储服务弹性公网IP消息通知服务统一身份认证服务其配额查看及修改请参见关于配额。 - [Tez](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0030.md): Tez是Apache最新的支持DAG(有向无环图)作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。MRS将Tez作为Hive的默认执行引擎,执行效率远远超过原先的MapReduce的计算引擎。有关Tez的详细说明,请参见:https://tez.apache.org/。更多关于Tez组件操作指导,请 - [Presto](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0031.md): Presto是一个开源的用户交互式分析查询的SQL查询引擎,用于针对各种大小的数据源进行交互式分析查询。其主要应用于海量结构化数据/半结构化数据分析、海量多维数据聚合/报表、ETL、Ad-Hoc查询等场景。Presto允许查询的数据源包括Hadoop分布式文件系统(HDFS),Hive,HBase,Cassandra,关系数据库甚至专有数 - [KafkaManager](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0032.md): KafkaManager是Apache Kafka的管理工具,提供Kafka集群界面化的Metric监控和集群管理。通过KafkaManager进行以下操作:支持管理多个Kafka集群支持界面检查集群状态(主题,消费者,偏移量,分区,副本,节点)支持界面执行副本的leader选举使用选择生成分区分配以选择要使用的分区方案支持界面执行分区重 - [权限管理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0033.md): 如果您需要对华为云上购买的MRS资源,为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。如果华为账号已经能满足您的要 - [Flink基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_003401.md): Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。Flink技术栈如图1所示。Flink - [Flink HA方案介绍](https://support.huaweicloud.com/productdesc-mrs/mrs_08_003402.md): 每个Flink集群只有单个JobManager,存在单点失败的情况。Flink有Yarn、Standalone和Local三种模式,其中Yarn和Standalone是集群模式,Local是指单机模式。但Flink对于Yarn模式和Standalone模式提供HA机制,使集群能够从失败中恢复。这里主要介绍Yarn模式下的HA方案。Flin - [Flink与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_003403.md): Flink支持基于Yarn管理的集群模式,在该模式下,Flink作为Yarn上的一个应用,提交到Yarn上执行。Flink基于Yarn的集群部署如图1所示。Flink Yarn Client首先会检验是否有足够的资源来启动Yarn集群,如果资源足够,会将Jar包、配置文件等上传到HDFS。Flink Yarn Client首先与Yarn - [OpenTSDB](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0035.md): OpenTSDB是一个基于HBase的分布式、可伸缩的时间序列数据库。OpenTSDB的设计目标是用来采集大规模集群中的监控类信息,并可实现数据的秒级查询,解决海量监控类数据在普通数据库中查询存储的局限性。OpenTSDB由时间序列守护进程(TSD)和一组命令行实用程序组成。与OpenTSDB的交互主要通过运行一个或多个TSD来实现。每个 - [Impala](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0038.md): Impala直接对存储在HDFS、HBase或对象存储服务(OBS)中的Hadoop数据提供快速、交互式SQL查询。除了使用相同的统一存储平台之外,Impala还使用于Apache Hive相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue中的Impala查询UI)。这为实时或面向批处理的查询提供了一个熟悉且 - [Kudu](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0039.md): Kudu是专为Apache Hadoop平台开发的列式存储管理器,具有Hadoop生态系统应用程序的共同技术特性:在通用的商用硬件上运行,可水平扩展,提供高可用性。Kudu的设计具有以下优点:能够快速处理OLAP工作负载支持与MapReduce,Spark和其他Hadoop生态系统组件集成与Apache Impala的紧密集成,使其成为将 - [Alluxio](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0040.md): Alluxio是一个面向基于云的数据分析和人工智能的数据编排技术。在MRS的大数据生态系统中,Alluxio位于计算和存储之间,为包括Apache Spark、Presto、Mapreduce和Apache Hive的计算框架提供了数据抽象层,使上层的计算应用可以通过统一的客户端API和全局命名空间访问包括HDFS和OBS在内的持久化存储 - [Ranger基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_004101.md): 在大数据集群中,HDFS、Hive、HBase、Kafka等多个组件各自维护独立的权限管理机制,管理员需要分别在各个组件中配置访问控制策略,不仅管理分散、配置繁琐,且难以实现统一的审计追踪。当集群规模扩大、用户和组件数量增多时,分散的权限管理方式效率低下,且容易出现策略不一致导致的安全风险。那么,如何对整个Hadoop生态进行集中式的细粒 - [Ranger与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_004102.md): Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS、Yarn、Hive、HBase、Kafka、Storm和Spark等,后续会支持更多组件。Ranger为各组件提供了基于PBAC(Policy-Based Access Control)的权限管理插件,用于替换组件自身原来的鉴权插件。 - [多租户资源管理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0042.md): 现代企业的数据集群在向集中化和云化方向发展,企业级大数据集群需要满足:不同用户在集群上运行不同类型的应用和作业(分析、查询、流处理等),同时存放不同类型和格式的数据。部分用户(例如银行、政府单位等)对数据安全非常关注,不接受将自己的数据与其他用户放在一起。这给大数据集群带来了以下挑战:合理地分配和调度资源,以支持多种应用和作业在集群上平稳 - [MRS安全增强](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0043.md): MRS作为一个海量数据管理和分析的平台,具备高安全性。MRS主要从以下几个方面保障用户的数据和业务运行安全。网络隔离整个系统部署在公有云上的虚拟私有云中,提供隔离的网络环境,保证集群的业务、管理的安全性。结合虚拟私有云的子网划分、路由控制、安全组等功能,为用户提供高安全、高可靠的网络隔离环境。整个系统部署在公有云上的虚拟私有云中,提供隔离 - [组件WebUI便捷访问](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0044.md): 大数据组件都有自己的WebUI页面管理自身系统,但是由于网络隔离的原因,用户并不能很简便地访问到该页面。例如访问HDFS的WebUI页面,传统的操作方法是需要用户创建ECS,使用ECS远程登录组件的UI,这使得组件的页面UI访问很是繁琐,对于很多初次接触大数据的用户很不友好。MRS提供了基于弹性公网IP来便捷访问组件WebUI的安全通道, - [MRS可靠性增强](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0045.md): MRS在基于Apache Hadoop开源软件的基础上,在主要业务部件的可靠性、性能调优等方面进行了优化和提升。管理节点均实现HAHadoop开源版本的数据、计算节点已经是按照分布式系统进行设计的,单节点故障不影响系统整体运行;而以集中模式运作的管理节点可能出现的单点故障,就成为整个系统可靠性的短板。MRS对所有业务组件的管理节点都提供了 - [作业管理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0046.md): MRS作业管理为用户提供向集群提交作业的入口,支持包括MapReduce、Spark、HQL和SparkSQL等类型的作业。结合华为云数据治理中心DataArts Studio,提供一站式的大数据协同开发环境、全托管的大数据调度能力,帮助用户快速构建大数据处理中心。通过数据治理中心DataArts Studio,用户可以先在线开发调试MR - [企业项目管理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0047.md): 企业项目是一种云资源管理方式。企业管理提供面向企业客户的云上资源管理、人员管理、权限管理、财务管理等综合管理服务。区别于管理控制台独立操控、配置云产品的方式,企业管理控制台以面向企业资源管理为出发点,帮助企业以公司、部门、项目等分级管理方式实现企业云上的人员、资源、权限、财务的管理。MRS支持已开通企业项目服务的用户在创建集群时为集群配置 - [集群运维](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0049.md): MRS提供的集群的资源是完全属于用户的,MRS提供多种方式帮助用户维护集群的正常运行。MRS为用户提供海量数据的管理及分析功能,快速从结构化和非结构化的海量数据中挖掘您所需要的价值数据。开源组件结构复杂,安装、配置、管理过程费时费力,Manager提供了企业级的大数据集群的统一管理平台:提供集群状态的监控功能,您能快速掌握服务及主机的健康 - [MapReduce基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_005001.md): MapReduce是Hadoop的核心,是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(化简)”及其主要思想,均取自于函数式编程语言及矢量编程语言。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保 - [MapReduce与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_005002.md): HDFS是Hadoop分布式文件系统,具有高容错和高吞吐量的特性,可以部署在价格低廉的硬件上,存储应用程序的数据,适合有超大数据集的应用程序。MapReduce是一种编程模型,用于大数据集(大于1TB)的并行运算。在MapReduce程序中计算的数据可以来自多个数据源,如Local FileSystem、HDFS、数据库等。最常用的是HD - [MapReduce开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_005003.md): JobHistoryServer(JHS)是用于查看MapReduce历史任务信息的服务器,当前开源JHS只支持单实例服务。JobHistoryServer HA能够解决JHS单点故障时,应用访问MapReduce接口无效,导致整体应用执行失败的场景,从而大大提升MapReduce服务的高可用性。JobHistoryServer高可用性采 - [YARN基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_005101.md): 为了实现一个Hadoop集群的集群共享、可伸缩性和可靠性,并消除早期MapReduce框架中的JobTracker性能瓶颈,开源社区引入了统一的资源管理框架YARN。YARN是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的Appli - [YARN HA方案介绍](https://support.huaweicloud.com/productdesc-mrs/mrs_08_005102.md): YARN中的ResourceManager负责整个集群的资源管理和任务调度,在Hadoop2.4版本之前,ResourceManager在YARN集群中存在单点故障的问题。YARN高可用性方案通过引入冗余的ResourceManager节点的方式,解决了这个基础服务的可靠性和容错性问题。ResourceManager的高可用性方案是通过设 - [Yarn与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_005103.md): Spark的计算调度方式,可以通过Yarn的模式实现。Spark共享Yarn集群提供丰富的计算资源,将任务分布式的运行起来。Spark on Yarn分两种模式:Yarn Cluster和Yarn Client。Yarn Cluster模式运行框架如图1所示。Spark on yarn-cluster运行框架Spark on yarn-c - [YARN开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_005104.md): 在原生的YARN资源调度机制中,如果先提交的MapReduce Job长时间地占据整个Hadoop集群的资源,会使得后提交的Job一直处于等待状态,直到Running中的Job执行完并释放资源。MRS集群提供了任务优先级调度机制。此机制允许用户定义不同优先级的Job,后启动的高优先级Job能够获取运行中的低优先级Job释放的资源;低优先级 - [集群生命周期管理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0053.md): MRS支持集群的生命周期管理包括创建集群和删除集群。创建集群:支持用户定制集群的类型、组件范围、各类型的节点数、虚拟机规格、可用区、VPC网络、认证信息,MRS将为用户自动创建一个符合配置的集群,全程无需用户参与;同时支持用户在集群中运行自定义内容;支持快速创建多应用场景集群,比如创建Hadoop分析集群、HBase集群、Kafka集群。 - [集群在线扩缩容](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0054.md): 大数据集群的处理能力通常可以通过增加集群的节点数来横向扩展,当集群规模不符合业务要求时,用户可以通过该功能进行集群节点规模的调整,进行扩容或者缩容;在缩容节点时,MRS会智能地选择负载最少或者迁移数据量最小节点,并且在缩容过程中,缩容节点不再接收新的任务,正在执行的任务继续执行,同时将该节点数据拷贝至其他节点,该节点进入退服状态,当该节点 - [升级Master节点规格](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0055.md): MRS大数据集群采用Manager实现集群的管理,而管理集群的相关服务,如HDFS存储系统的NameNode,Yarn资源管理的ResourceManager,以及MRS的Manager管理服务都部署在集群的Master节点上。随着新业务的上线,集群规模不断扩大,Master节点承担的管理负荷也越来越高,企业用户面临CPU负载过高,内存使 - [节点隔离](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0056.md): 当用户发现某个主机出现异常或故障,无法提供服务或影响集群整体性能时,可以临时将主机从集群可用节点排除,使客户端访问其他可用的正常节点。在为MRS集群安装补丁的场景中,也支持排除指定节点不安装补丁。隔离主机仅支持隔离MRS集群内的非管理节点。主机隔离后该主机上的所有角色实例将被停止,且不能对主机及主机上的所有实例进行启动、停止和配置等操作。 - [节点标签管理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0057.md): 标签是集群/节点的标识,为集群/节点添加标签,可以方便用户识别和管理拥有的集群/节点资源。MRS服务通过与标签管理服务(TMS)关联,可以让拥有大量云资源的用户,通过给云资源打标签,快速查找具有同一标签属性的云资源,进行统一检视、修改、删除等管理操作,方便用户对大数据集群及其他相关云资源的统一管理。您可以在创建集群时添加标签,也可以在集群 - [DBService](https://support.huaweicloud.com/productdesc-mrs/mrs_08_00601.md): DBService是一个高可用性的关系型数据库存储系统,适用于存储小量数据(10GB左右),比如:组件元数据。DBService仅提供给集群内部的组件使用,提供数据存储、查询、删除等功能。DBService是集群的基础组件,Hive、Hue、Oozie、Loader、CDL、Flink、HetuEngine、Kafka、Metadata、 - [KrbServer及LdapServer基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_00641.md): 为了管理集群中数据与资源的访问控制权限,推荐安装安全模式集群。在安全模式下,客户端应用程序在访问集群中的任意资源之前均需要通过身份认证,建立安全会话链接。MRS通过KrbServer为所有组件提供Kerberos认证功能,实现了可靠的认证机制。LdapServer支持轻量目录访问协议(Lightweight Directory Acces - [KrbServer及LdapServer开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_00642.md): 在使用安全模式的MRS集群中,任意服务间的相互访问基于Kerberos安全架构方案。集群内某个服务(例如HDFS)在启动准备阶段的时候,会首先在Kerberos中获取该服务对应的服务名称sessionkey(即keytab,用于应用程序进行身份认证)。其他任意服务(例如YARN)需要访问HDFS并在HDFS中执行增、删、改、查数据的操作时 - [Manager基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_00661.md): Manager是MRS的运维管理系统,为部署在集群内的服务提供统一的集群管理能力。Manager支持大规模集群的性能监控、告警、用户管理、权限管理、审计、服务管理、健康检查、日志采集等功能。Manager的整体逻辑架构如图1所示。Manager由OMS和OMA组成:OMS:操作维护系统的管理节点,OMS一般有两个,互为主备。OMA:操作维 - [Manager关键特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_00662.md): Manager提供可视化、便捷的监控告警功能。用户可以快速获取集群关键性能指标,并评测集群健康状态,同时提供性能指标的定制化显示功能及指标转换告警方法。Manager可监控所有组件的运行情况,并在故障时实时上报告警。通过界面的联机帮助,用户可以查看性能指标和告警恢复的详细方法,进行快速排障。Manager提供系统中各组件的权限集中管理功能 - [Oozie](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0067.md): Oozie是一个基于工作流引擎的开源框架,它能够提供对Hadoop作业的任务调度与协调。更多关于Oozie组件操作指导,请参考使用Oozie。Oozie引擎是一个Web App应用,默认集成到Tomcat中,采用pg数据库。基于Ext提供WEB Console,该Console仅提供对Oozie工作流的查看和监控功能。通过Oozie对外提 - [HetuEngine基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_00681.md): HetuEngine是自研企业级高性能交互式SQL分析及数据虚拟化引擎。与大数据生态无缝融合,实现海量数据秒级交互式查询;支持跨源跨域统一访问,使能数据湖内、湖间、湖仓一站式SQL融合分析。HetuEngine在兼容开源Trino SQL语法的基础之上,在安全、高可用、易用性等维度提供企业级增强特性,内核能力跟随开源社区持续演进。更多关于 - [HetuEngine与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_00682.md): HetuEngine安装依赖MRS集群,其中直接依赖的组件如表1所示。 - [ZooKeeper基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007001.md): ZooKeeper是一个分布式、高可用性的协调服务。在大数据产品中主要提供两个功能:帮助系统避免单点故障,建立可靠的应用程序。提供分布式协作服务和维护配置信息。更多关于ZooKeeper组件操作指导,请参考使用ZooKeeper。ZooKeeper集群中的节点分为三种角色:Leader、Follower和Observer,其结构和相互关系 - [ZooKeeper与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007002.md): ZooKeeper与HDFS的关系如图1所示。ZKFC(ZKFailoverController)作为一个ZooKeeper集群的客户端,用来监控NameNode的状态信息。ZKFC进程仅在部署了NameNode的节点中存在。HDFS NameNode的Active和Standby节点均部署有ZKFC进程。HDFS NameNode的ZK - [ZooKeeper开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007003.md): 安全模式下,Ephemeral node(临时节点)在session过期之后就会被系统删除,在审计日志中添加Ephemeral node被删除的审计日志,以便了解当时Ephemeral node的状态信息。所有ZooKeeper客户端的操作都要在审计日志中添加Username。从ZooKeeper客户端创建znode,其kerberos - [Spark2x基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007101.md): Spark是基于内存的分布式计算框架。在迭代计算的场景下,数据处理过程中的数据可以存储在内存中,提供了比MapReduce高10到100倍的计算能力。Spark可以使用HDFS作为底层存储,使用户能够快速地从MapReduce切换到Spark计算平台上去。Spark提供一站式数据分析能力,包括小批量流式处理、离线批处理、SQL查询、数据挖 - [Spark2x多主实例](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007103.md): 基于社区已有的JDBCServer基础上,采用多主实例模式实现了其高可用性方案。集群中支持同时共存多个JDBCServer服务,通过客户端可以随机连接其中的任意一个服务进行业务操作。即使集群中一个或多个JDBCServer服务停止工作,也不影响用户通过同一个客户端接口连接其他正常的JDBCServer服务。多主实例模式相比主备模式的HA方 - [Spark2x多租户](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007104.md): JDBCServer多主实例方案中,JDBCServer的实现使用YARN-Client模式,但YARN资源队列只有一个,为了解决这种资源局限的问题,引入了多租户模式。多租户模式是将JDBCServer和租户绑定,每一个租户对应一个或多个JDBCServer,而一个JDBCServer只给一个租户提供服务。不同的租户可以配置不同的YARN - [Spark2x与其他组件的关系](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007105.md): 通常,Spark中计算的数据可以来自多个数据源,如Local File、HDFS等。最常用的是HDFS,用户可以一次读取大规模的数据进行并行计算。在计算完成后,也可以将数据存储到HDFS。分解来看,Spark分成控制端(Driver)和执行端(Executor)。控制端负责任务调度,执行端负责任务执行。读取文件的过程如图1所示。读取文件步 - [Spark2x开源新特性说明](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007106.md): Spark2x版本相对于Spark 1.5版本新增了一些开源特性。具体特性或相关概念如下:DataSet,详见SparkSQL和DataSet原理。Spark SQL Native DDL/DML,详见SparkSQL和DataSet原理。SparkSession,详见SparkSession原理。Structured Streaming - [Spark跨源复杂数据的SQL查询优化](https://support.huaweicloud.com/productdesc-mrs/mrs_08_007109.md): 出于管理和信息收集的需要,企业内部会存储海量数据,包括数目众多的各种数据库、数据仓库等,此时会面临以下困境:数据源种类繁多,数据集结构化混合,相关数据存放分散等,这就导致了跨源复杂查询因传输效率低,耗时长。当前开源Spark在跨源查询时,只能对简单的filter进行下推,因此造成大量不必要的数据传输,影响SQL引擎性能。针对下推能力进行增 - [元数据管理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0075.md): 当创建MRS集群选择部署Hive和Ranger组件时,MRS提供多种元数据存储方式,您可以根据自身需要进行选择:本地元数据:元数据存储于集群内的本地GaussDB中,当集群删除时元数据同时被删除,如需保存元数据,需提前前往数据库手动保存元数据。外置数据连接:MRS集群创建完成后,可选择关联与当前集群同一虚拟私有云和子网的RDS服务中的Po - [ClickHouse基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0076.md): ClickHouse是一款开源的面向联机分析处理的列式数据库,其独立于Hadoop大数据体系,最核心的特点是压缩率和极速查询性能。同时,ClickHouse支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。更多关于ClickHouse组件操作指导,请参考使用ClickHouse。 - [Hudi](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0083.md): 在大数据场景中,传统HDFS文件系统以只读方式存储数据,难以直接支持数据的更新和删除操作。当用户需要对数据湖中的数据进行频繁的增删改查时,传统方案需要重写整个文件,效率较低。Hudi(Hadoop Upserts Deletes and Incrementals)是一种数据湖的存储格式,在Hadoop文件系统之上提供了更新数据和删除数据的 - [IoTDB基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0094.md): IoTDB(物联网数据库)是一体化收集、存储、管理与分析物联网时序数据的软件系统。 Apache IoTDB采用轻量式架构,具有高性能和丰富的功能。IoTDB从存储上对时间序列进行排序,索引和chunk块存储,大大地提升时序数据的查询性能。通过Raft协议,来确保数据的一致性。针对时序场景,对存储数据进行预计算和存储,提升分析场景的性能。 - [IoTDB开源增强特性](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0096.md): 可视化运维,包含安装、卸载、一键启动和停止、配置、客户端、监控、告警、健康检查、日志。可视化权限管理,无需后台命令行操作,支持库表级别读写权限控制。日志级别的可视化配置动态生效、可视化下载、可视化检索、审计日志等功能。用户认证支持Kerberos、通道SSL加密,兼容社区方式。在原生的能力上,增强集群版MQTT对接。 - [CDL](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0098.md): CDL(全称Change Data Loader)是一个基于Kafka Connect框架的实时数据集成服务。 CDL服务能够从各种OLTP数据库中捕获数据库的Data Change事件,并推送到kafka,再由sink connector推送到大数据生态系统中。CDL目前支持的数据源有MySQL、PostgreSQL、Hudi、Kafk - [图解MapReduce服务](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0105.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [常见概念](https://support.huaweicloud.com/productdesc-mrs/mrs_08_0109.md): HBase的表是三个维度排序的映射。从行主键、列主键和时间戳映射为单元格的值。所有的数据存储在HBase的表单元格中。HBase表的一个维度。列名称的格式为“: