获取MRS应用开发样例工程
MRS样例工程构建流程
MRS样例工程构建流程包括三个主要步骤:
获取MRS样例工程
MRS样例工程下载地址为https://github.com/huaweicloud/huaweicloud-mrs-example。
切换分支为与MRS集群相匹配的版本分支,例如“mrs-3.2.0.1”,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。
MRS LTS版本对应样例工程下载地址:
- MRS 3.3.0-LTS版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.3.0。
- MRS 3.2.0-LTS.1版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.2.0.1。
- MRS 3.1.2-LTS.3版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.2。
MRS普通版本对应样例工程下载地址:
- MRS 3.0.2版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.0.2。
- MRS 3.1.0版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.0。
- MRS 3.1.5版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.5。
- MRS 2.1.x版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-2.1。
- MRS 1.9.x版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-1.9。
- MRS 1.8.x版本:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-1.8。
- MRS 1.8之前版本:http://mapreduceservice.obs-website.cn-north-1.myhuaweicloud.com/。
配置华为开源镜像仓
华为提供开源镜像站(网址为https://mirrors.huaweicloud.com/),各服务样例工程依赖的jar包都可在华为开源镜像站下载,剩余所依赖的开源jar包请直接从Maven中央库或者其他用户自定义的仓库地址下载。
本地环境使用开发工具下载依赖的jar包前,需要确认以下信息。
- 确认本地环境网络正常。
打开浏览器访问:华为提供开源镜像站(https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/),查看网站是否能正常访问。如果访问异常,请先开通本地网络。
- 确认当前开发工具是否开启代理。下载jar包前需要确保开发工具代理关闭。
比如以2020.2版本的IntelliJ IDEA开发工具为例,单击“File > Settings > Appearance & Behavior > System Settings > HTTP Proxy”,选择“No proxy”,单击“OK”保存配置。
开源镜像配置方式如下所示:
- 使用前请确保您已安装JDK 1.8及以上版本和Maven 3.0及以上版本。
- 单击此处,下载华为开源镜像站提供的“settings.xml”文件,覆盖至“<本地Maven安装目录>/conf/settings.xml”文件即可。
若无法直接下载,在华为开源镜像站(https://mirrors.huaweicloud.com/)搜索并单击名称为“HuaweiCloud SDK”的版块,按照页面弹出的设置方法进行操作。
- 如果不想覆盖Maven配置文件,也可以参考以下方法手动修改“settings.xml”配置文件或者组件样例工程中的“pom.xml”文件,配置镜像仓地址。
- 配置方法一:
手动在“settings.xml”配置文件的“mirrors”节点中添加以下开源镜像仓地址:
<mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <url>https://repo1.maven.org/maven2/</url> </mirror>
在“settings.xml”配置文件的“profiles”节点中添加以下镜像仓地址:
<profile> <id>huaweicloudsdk</id> <repositories> <repository> <id>huaweicloudsdk</id> <url>https://repo.huaweicloud.com/repository/maven/huaweicloudsdk/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> </profile>
在“settings.xml”配置文件的“activeProfiles”节点中添加如下profile地址:
<activeProfile>huaweicloudsdk</activeProfile>
- 华为开源镜像站不提供第三方开源jar包下载,请配置开源镜像后,额外配置第三方Maven镜像仓库地址。
- 使用IntelliJ IDEA开发工具时,可单击“File > Settings > Build, Execution, Deployment > Build Tools > Maven”查看当前“settings.xml”文件放置目录。
- 配置方法二:
请直接在二次开发工程样例工程中的“pom.xml”文件添加如下镜像仓地址:
<repositories> <repository> <id>huaweicloudsdk</id> <url>https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>central</id> <name>Maven Central</name> <url>https://repo1.maven.org/maven2/</url> </repository> </repositories>
- 配置方法一:
- 配置Maven默认编码和JDK。在“settings.xml”配置文件的“profiles”节点中添加以下内容:
<profile> <id>JDK1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
MRS各组件样例工程汇总
MRS样例代码库提供了各组件的基本功能样例工程供用户使用,当前版本各组件提供的样例工程汇总参见表1。
组件 |
样例工程位置 |
描述 |
|
---|---|---|---|
ClickHouse |
clickhouse-examples |
指导用户基于Java语言,实现MRS集群中的ClickHouse的数据表创建、删除以及数据的插入、查询等操作。 本工程中包含了建立服务端连接、创建数据库、创建数据表、插入数据、查询数据及删除数据表等操作示例。 |
|
ClickHouseJDBC-Transaction-JavaExample |
ClickHouse事务开发代码样例,仅MRS 3.3.0及之后版本支持。 |
||
Doris |
doris-examples/doris-jdbc-example |
Doris数据读写操作的应用开发示例,仅MRS 3.3.0及之后版本支持。 通过调用Doris接口可实现创建用户表、向表中插入数据、查询表数据、删除表等功能 |
|
Flink |
|
FlinkCheckpointJavaExample |
Flink异步Checkpoint机制的Java/Scala示例程序。 本工程中,程序使用自定义算子持续产生数据,产生的数据为一个四元组(Long,String,String,Integer)。数据经统计后,将统计结果打印到终端输出。每隔6秒钟触发一次checkpoint,然后将checkpoint的结果保存到HDFS中。 |
FlinkCheckpointScalaExample |
|||
FlinkHBaseJavaExample |
Flink API作业读写HBase数据的Java示例程序。 MRS 3.2.0及之后版本支持。 |
||
FlinkKafkaJavaExample |
Flink向Kafka生产并消费数据的Java/Scala示例程序。 在本工程中,假定某个Flink业务每秒就会收到1个消息记录,启动Producer应用向Kafka发送数据,然后启动Consumer应用从Kafka接收数据,对数据内容进行处理后并打印输出。 |
||
FlinkKafkaScalaExample |
|||
FlinkPipelineJavaExample |
Flink Job Pipeline的Java/Scala示例程序。 本样例中一个发布者Job自己每秒钟产生10000条数据,另外两个Job作为订阅者,分别订阅一份数据。订阅者收到数据之后将其转化格式,并抽样打印输出。 |
||
FlinkPipelineScalaExample |
|||
FlinkSqlJavaExample |
使用客户端通过jar作业提交SQL作业的应用开发示例。 |
||
FlinkStreamJavaExample |
Flink构造DataStream的Java/Scala示例程序。 本工程示例为基于业务要求分析用户日志数据,读取文本数据后生成相应的DataStream,然后筛选指定条件的数据,并获取结果。 |
||
FlinkStreamScalaExample |
|||
FlinkStreamSqlJoinExample |
Flink SQL Join示例程序。 本工程示例调用flink-connector-kafka模块的接口,生产并消费数据。生成Table1和Table2,并使用Flink SQL对Table1和Table2进行联合查询,打印输出结果。 |
||
FlinkRESTAPIJavaExample |
本工程示例调用FlinkServer的RestAPI创建租户。 |
||
flink-examples/flink-sql |
本工程示例使用Flink Jar提交SQL作业。 |
||
flink-examples/pyflink-example |
pyflink-kafka |
本工程示例使用Python提交普通作业,提供Python读写Kafka作业的样例。 |
|
pyflink-sql |
本工程示例使用Python提交SQL作业,提供Python提交SQL作业的样例。 |
||
HBase |
hbase-examples |
hbase-example |
HBase数据读写操作及全局二级索引的应用开发示例。通过调用HBase接口可实现以下功能:
|
hbase-rest-example |
HBase Rest接口应用开发示例。 使用Rest接口实现查询HBase集群信息、获取表、操作NameSpace、操作表等功能。 |
||
hbase-thrift-example |
访问HBase ThriftServer应用开发示例。 访问ThriftServer操作表、向表中写数据、从表中读数据。 |
||
hbase-zk-example |
HBase访问ZooKeeper应用开发示例。 在同一个客户端进程内同时访问MRS ZooKeeper和第三方的ZooKeeper,其中HBase客户端访问MRS ZooKeeper,客户应用访问第三方ZooKeeper。 |
||
HDFS |
|
HDFS文件操作的Java示例程序。 本工程主要给出了创建HDFS文件夹、写文件、追加文件内容、读文件和删除文件/文件夹等相关接口操作示例。 |
|
hdfs-c-example |
HDFS C语言开发代码样例。 本示例提供了基于C语言的HDFS文件系统连接、文件操作如创建文件、读写文件、追加文件、删除文件等。 |
||
HetuEngine |
|
通过不同方式连接HetuEngine的Java、Python示例程序。 通过HSFabric、HSBroker等连接方式,使用用户名和密码连接到HetuEngine,或通过KeyTab文件认证方式连接HetuEngine,组装对应的SQL发送到HetuEngine执行,完成对Hive数据源的增删改查操作。 |
|
Hive |
hive-examples |
hive-jdbc-example |
Hive JDBC处理数据Java示例程序。 本工程使用JDBC接口连接Hive,在Hive中执行相关数据操作。使用JDBC接口实现创建表、加载数据、查询数据等功能,还可实现在同一个客户端进程内同时访问FusionInsight ZooKeeper和第三方的ZooKeeper。 |
hive-jdbc-example-multizk |
|||
hcatalog-example |
Hive HCatalog处理数据Java示例程序。 使用HCatalog接口实现通过Hive命令行方式对MRS Hive元数据进行数据定义和查询操作。 |
||
python-examples |
使用Python连接Hive执行SQL样例。 可实现使用Python对接Hive并提交数据分析任务。 |
||
python3-examples |
使用Python3连接Hive执行SQL样例。 可实现使用Python3对接Hive并提交数据分析任务。 |
||
IoTDB |
iotdb-examples |
iotdb-flink-example |
通过Flink访问IoTDB数据的示例程序,包括FlinkIoTDBSink和FlinkIoTDBSource。 FlinkIoTDBSink可实现通过Flink job将时序数据写入到IoTDB中。FlinkIoTDBSource则通过Flink job将时序数据从IoTDB读取出来并且打印。 |
iotdb-jdbc-example |
IoTDB JDBC处理数据Java示例程序。 本示例演示了如何使用JDBC接口连接IoTDB,并执行IoTDB SQL语句。 |
||
iotdb-kafka-example |
通过Kafka访问IoTDB数据的示例程序。 本示例演示了如何先将时序数据发送到Kafka,再使用多线程将数据写入到IoTDB中。 |
||
iotdb-session-example |
IoTDB Session处理数据Java示例程序。 本示例演示了如何使用Session方式连接IoTDB,并执行IoTDB SQL语句。 |
||
iotdb-udf-exmaple |
该样例程序介绍了如何实现一个简单的IoTDB自定义函数(UDF)。 |
||
Kafka |
kafka-examples |
Kafka流式数据的处理Java示例程序。 本工程基于Kafka Streams完成单词统计功能,通过读取输入Topic中的消息,统计每条消息中的单词个数,从输出Topic消费数据,然后将统计结果以Key-Value的形式输出。 |
|
Manager |
manager-examples |
FusionInsight Manager API接口调用示例。 本工程调用Manager API接口实现集群用户的创建、修改及删除等操作。 |
|
MapReduce |
|
MapReduce任务提交Java示例程序。 本工程提供了一个MapReduce统计数据的应用开发示例,实现数据分析、处理,并输出满足用户需要的数据信息。 另外以MapReduce访问HDFS、HBase、Hive为例,介绍如何编写MapReduce作业访问多个服务组件。帮助用户理解认证、配置加载等关键使用方式。 |
|
Oozie |
|
OozieMapReduceExample |
Oozie提交MapReduce任务示例程序。 本示例演示了如何通过Java API提交MapReduce作业和查询作业状态,对网站的日志文件进行离线分析。 |
OozieSparkHBaseExample |
使用Oozie调度Spark访问HBase的示例程序。 |
||
OozieSparkHiveExample |
使用Oozie调度Spark访问Hive的示例程序。 |
||
Spark |
|
SparkHbasetoCarbonJavaExample |
Spark同步HBase数据到CarbonData的Java示例程序。 本示例工程中,应用将数据实时写入HBase,用于点查业务。数据每隔一段时间批量同步到CarbonData表中,用于分析型查询业务。 |
SparkHbasetoHbaseJavaExample |
Spark从HBase读取数据再写入HBase的Java/Scala/Python示例程序。 本示例工程中,Spark应用程序实现两个HBase表数据的分析汇总。 |
||
SparkHbasetoHbasePythonExample |
|||
SparkHbasetoHbaseScalaExample |
|||
SparkHivetoHbaseJavaExample |
Spark从Hive读取数据再写入到HBase的Java/Scala/Python示例程序。 本示例工程中,Spark应用程序实现分析处理Hive表中的数据,并将结果写入HBase表。 |
||
SparkHivetoHbasePythonExample |
|||
SparkHivetoHbaseScalaExample |
|||
SparkJavaExample |
Spark Core任务的Java/Python/Scala/R示例程序。 本工程应用程序实现从HDFS上读取文本数据并计算分析。 SparkRExample示例不支持未开启Kerberos认证的集群。 |
||
SparkPythonExample |
|||
SparkScalaExample |
|||
SparkRExample |
|||
SparkLauncherJavaExample |
使用Spark Launcher提交作业的Java/Scala示例程序。 本工程应用程序通过org.apache.spark.launcher.SparkLauncher类采用Java/Scala命令方式提交Spark应用。 |
||
SparkLauncherScalaExample |
|||
SparkOnHbaseJavaExample |
Spark on HBase场景的Java/Scala/Python示例程序。 本工程应用程序以数据源的方式去使用HBase,将数据以Avro格式存储在HBase中,并从中读取数据以及对读取的数据进行过滤等操作。 |
||
SparkOnHbasePythonExample |
|||
SparkOnHbaseScalaExample |
|||
SparkOnHudiJavaExample |
Spark on Hudi场景的Java/Scala/Python示例程序。 本工程应用程序使用Spark操作Hudi执行插入数据、查询数据、更新数据、增量查询、特定时间点查询、删除数据等操作。 |
||
SparkOnHudiPythonExample |
|||
SparkOnHudiScalaExample |
|||
SparkOnMultiHbaseScalaExample |
Spark同时访问两个集群中的HBase的Scala示例程序。 本示例不支持未开启Kerberos认证的集群。 |
||
SparkSQLJavaExample |
Spark SQL任务的Java/Python/Scala示例程序。 本工程应用程序实现从HDFS上读取文本数据并计算分析。 |
||
SparkSQLPythonExample |
|||
SparkSQLScalaExample |
|||
SparkStreamingKafka010JavaExample |
Spark Streaming从Kafka接收数据并进行统计分析的Java/Scala示例程序。 本工程应用程序实时累加计算Kafka中的流数据,统计每个单词的记录总数。 |
||
SparkStreamingKafka010ScalaExample |
|||
SparkStreamingtoHbaseJavaExample010 |
Spark Streaming读取Kafka数据并写入HBase的Java/Scala/Python示例程序。 本工程应用程序每5秒启动一次任务,读取Kafka中的数据并更新到指定的HBase表中。 |
||
SparkStreamingtoHbasePythonExample010 |
|||
SparkStreamingtoHbaseScalaExample010 |
|||
SparkStructuredStreamingJavaExample |
在Spark应用中,通过使用StructuredStreaming调用Kafka接口来获取单词记录,然后把单词记录分类统计,得到每个单词记录数。 |
||
SparkStructuredStreamingPythonExample |
|||
SparkStructuredStreamingScalaExample |
|||
SparkThriftServerJavaExample |
通过JDBC访问Spark SQL的Java/Scala示例程序。 本示例中,用户自定义JDBCServer的客户端,使用JDBC连接来进行表的创建、数据加载、查询和删除。 |
||
SparkThriftServerScalaExample |
|||
StructuredStreamingADScalaExample |
使用Structured Streaming,从kafka中读取广告请求数据、广告展示数据、广告点击数据,实时获取广告有效展示统计数据和广告有效点击统计数据,将统计结果写入kafka中。 |
||
StructuredStreamingStateScalaExample |
在Spark结构流应用中,跨批次统计每个session期间发生了多少次event以及本session的开始和结束timestamp;同时输出本批次被更新状态的session。 |
||
SpringBoot(MRS 3.3.0及之后版本支持) |
clickhouse-examples |
clickhouse-rest-client-example |
SpringBoot连接ClickHouse服务应用开发示例。 本示例中,包含了建立服务端连接、创建数据库、创建数据表、插入数据、查询数据等操作示例。 |
doris-examples |
doris-rest-client-example |
Doris数据读写操作的SpringBoot应用开发示例。 提供SpringBoot连接Doris的样例程序。 |
|
flink-examples |
flink-dws-read-example |
GaussDB(DWS) SpringBoot方式连接Flink服务的应用开发示例。 |
|
flink-dws-sink-example |
|||
hbase-examples |
SpringBoot连接Phoenix应用开发示例。 提供SpringBoot连接HBase与Phoenix的样例程序。 |
||
hive-examples |
hive-rest-client-example |
SpringBoot连接Hive应用开发示例。 本工程使用SpringBoot方式连接Hive,在Hive中执行创建表、加载数据、查询数据、删除表等操作。 |
|
kafka-examples |
SpringBoot连接Kafka实现Topic生产消费的应用开发示例。 |