使用E-MapReduce服务处理阿里云文件存储(NAS)的数据

    xiaoxiao2026-04-18  1

    简介

    文件存储是阿里云今年新推出的存储服务,因为它提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。E-MapReduce服务是阿里云上的开源大数据解决方案,可以帮用户构建基于Hadoop等开源组件的大数据平台。

    今天我给大家介绍一个使用场景,可以将E-MapReduce的Hadoop作业和文件存储(NAS)结合在一起,发挥分布式存储和分布式计算在一起的威力。

    环境准备

    第一步:按照官方文档在文件存储的管理控制台依次创建文件系统、创建挂载点、配置权限组规则。值得注意的是,如果使用经典网络环境,挂载点不提供默认权限组,且经典网络类型权限组规则授权地址只能是单个 IP 而不能是网段,所以你需要在控制台里手动添加规则。所以需要确保E-MapReduce集群里所有的节点都设置了对NAS的访问权限(读写)。

    第二步:通过SSH登录E-MapReduce节点,挂载NAS。注意:master节点和worker节点都需要挂载:

    sudo mkdir /mnt/nas sudo mount -t nfs4 <nas-url>.cn-hangzhou.nas.aliyuncs.com:/ /mnt/nas

    第三步:测试挂载是否生效,比如可以在Master节点上创建目录:

    mkdir /mnt/nas/wc-in

    并在worker节点上创建文件

    touch /mnt/nas/wc-in/1.txt

    确保所有节点上都能看到文件,这样NAS配置就算成功了

    [hadoop@emr-header-1 ~]$ ls -l /mnt/nas/wc-in total 8 -rw-rw-r-- 1 hadoop hadoop 27 12月 12 10:32 1.txt -rw-rw-r-- 1 hadoop hadoop 28 12月 12 10:32 2.txt

    运行Hadoop MapReduce任务

    环境准备好之后,我们就可以运行Hadoop任务,这里的例子采用了最常见的WordCount:

    hadoop jar /opt/apps/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount file:///mnt/nas/wc-in file:///mnt/nas/wc-out

    因为NAS就是挂载在本地的文件系统,所以可以采用Hadoop自带的处理组件,我们只需要在输入和输出目录(或文件)前面加上 file:/// 前缀,MapReduce任务就会自动定位到NAS上,处理NAS上的数据,并把结果写到NAS上。

    查看结果

    [hadoop@emr-worker-2 wc-out]$ cat /mnt/nas/wc-out/part-* world 2 aliyun 2 alibaba 1 hadoop 1 hello 1 tencent 1 相关资源:敏捷开发V1.0.pptx
    最新回复(0)