MAPREDUCE服务 MRS-HDFS应用开发快速入门:获取样例工程
获取样例工程
- 通过开源镜像站获取样例工程。
下载样例工程的Maven工程源码和配置文件,并在本地配置好相关开发工具,可参考通过开源镜像站获取样例工程。
根据集群版本选择对应的分支,下载并获取 MRS 相关样例工程。
例如本章节场景对应示例为“hdfs-example-security”样例,获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.2.0.1/src/hdfs-example-security。
- 本地使用IDEA工具导入样例工程,等待Maven工程下载相关依赖包,具体操作可参考配置并导入样例工程。
图1 HDFS样例工程示例
本地配置好Maven及SDK相关参数后,样例工程会自动加载相关依赖包。
- 将准备应用开发配置文件中获取的集群配置文件及用户认证文件放置在样例工程的“conf”目录下。
- 在HDFS样例工程代码中,不同的样例工程,使用的认证代码不同,包括基本安全认证和带ZooKeeper认证。
本示例中,不需要访问HBase或ZooKeeper,所以使用基本的安全认证代码即可。
在“com.huawei.bigdata.hdfs.examples”包的“HdfsExample”类中修改“PRNCIPAL_NAME”为实际用户名,例如“developuser”。private static final String PATH_TO_HDFS_SITE_XML = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "hdfs-site.xml"; private static final String PATH_TO_CORE_SITE_XML = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "core-site.xml"; private static final String PRNCIPAL_NAME = "developuser"; private static final String PATH_TO_KEYTAB = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "user.keytab"; private static final String PATH_TO_KRB5_CONF = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "krb5.conf"; ...
本样例工程中,基于业务场景的开发思路如下,各功能代码片段详情说明可参考HDFS样例代码说明。
以“/user/hdfs-examples/test.txt”文件的读写删除等操作为例,说明HDFS文件的基本操作流程:
- 通过集群安全认证。
- 创建FileSystem对象:fSystem。
- 调用fSystem的mkdir接口创建目录。
- 调用fSystem的create接口创建FSDataOutputStream对象:out,使用out的write方法写入数据。
- 调用fSystem的append接口创建FSDataOutputStream对象:out,使用out的write方法追加写入数据。
- 调用fSystem的open接口创建FSDataInputStream对象:in,使用in的read方法读取文件。
- 调用fSystem中的delete接口删除文件。
- 调用fSystem中的delete接口删除文件夹。