在文件存储HDFS版上使用 Apache Spark-阿里云开发者社区

开发者社区> alidfs> 正文

在文件存储HDFS版上使用 Apache Spark

简介: 本文档主要介绍如何在挂载文件存储HDFS版的 Hadoop 集群上安装及使用 Spark。
+关注继续查看

一 前言

本文档主要介绍如何在挂载文件存储HDFS版的 Hadoop 集群上安装及使用 Spark。


二 准备工作

  1. 开通文件存储HDFS版服务并创建文件系统实例和挂载点,详情请参见快速入门
  2. 在 Hadoop 集群所有节点上安装JDK。版本不能低于1.8。
  3. 下载 Apache Hadoop 压缩包,下载地址:官方链接。建议您选用的 Hadoop 版本不低于2.7.2,本文档中使用的 Hadoop 版本为 Apache Hadoop 2.7.2。
  4. 下载 Apache Spark 压缩包,下载地址:官方链接。本文档中使用的版本为官方提供的预编译版本 Apache Spark 2.4.8 。


三 配置 Hadoop

  1. 执行如下命令解压 Hadoop 压缩包到指定目录。
tar -zxf hadoop-2.7.2.tar.gz -C /usr/local/
  1. 修改 hadoop-env.sh 配置文件。
    • 执行如下命令打开 hadoop-env.sh 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
    • 配置 JAVA_HOME 目录,如下所示。
export JAVA_HOME=/usr/java/default
  1. 修改 core-site.xml 配置文件。
    • 执行如下命令打开 core-site.xml 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/core-site.xml
    • 在 core-site.xml 配置文件中,配置如下信息,详情请参见挂载文件系统
<configuration>
    <property>
         <name>fs.defaultFS</name>
         <value>dfs://x-xxxxxxxx.cn-xxxxx.dfs.aliyuncs.com:10290</value>  
         <!-- 该地址填写您的挂载点地址 -->
    </property>
    <property>
         <name>fs.dfs.impl</name>
         <value>com.alibaba.dfs.DistributedFileSystem</value>
    </property>
    <property>
         <name>fs.AbstractFileSystem.dfs.impl</name>
         <value>com.alibaba.dfs.DFS</value>
    </property>
</configuration>
  1. 修改 yarn-site.xml 配置文件。
    • 执行如下命令打开 yarn-site.xml 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/yarn-site.xml
    • 在 yarn-site.xml 配置文件中,配置如下信息。
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>xxxx</value>
        <!-- 该地址填写集群中resourcemanager的hostname -->
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>16384</value>
        <!-- 根据您当前的集群能力进行配置此项 -->
    </property>
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>4</value>
        <!-- 根据您当前的集群能力进行配置此项 -->
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-vcores</name>
        <value>4</value>
        <!-- 根据您当前的集群能力进行配置此项 -->
    </property>
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>3584</value>
        <!-- 根据您当前的集群能力进行配置此项 -->
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>14336</value>
        <!-- 根据您当前的集群能力进行配置此项 -->
    </property>
</configuration>
  1. 修改 slaves 配置文件。
    • 执行如下命令打开 slaves 配置文件。
vim /usr/local/hadoop-2.7.2/etc/hadoop/slaves
    • 在 slaves 配置文件中,配置集群计算节点的 hostname。
cluster-header-1
cluster-worker-1
  1. 配置环境变量。
    • 执行如下命令打开 /etc/profile 配置文件。
vim /etc/profile
    • 在 /etc/profile 配置文件中,配置 HADOOP_HOME 。
export HADOOP_HOME=/usr/local/hadoop-2.7.2
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$($HADOOP_HOME/bin/hadoop classpath)
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    • 执行如下命令使配置生效。
source /etc/profile
  1. 配置文件存储HDFS版的Java SDK。

您可以单击此处,下载文件存储HDFS版最新的Java SDK,将其部署在Hadoop生态系统组件的CLASSPATH上,详情请参见挂载文件系统

cp aliyun-sdk-dfs-x.y.z.jar  /usr/local/hadoop-2.7.2/share/hadoop/hdfs
  1. 执行如下命令将${HADOOP_HOME}文件夹同步到集群的其他节点的相同目录下,并按照本章节步骤 6 对集群其他节点配置 Hadoop 的环境变量。
scp -r hadoop-2.7.2/ root@cluster-worker-1:/usr/local/


四 验证 Hadoop 配置

完成 Hadoop 配置后,不需要格式化 NameNode,也不需要使用 start-dfs.sh 来启动 HDFS 相关服务。在 ResourceManager 节点启动 Yarn 服务,验证 Hadoop 配置成功的方法请参见文档:验证安装。


五 配置 Spark

  1. 执行如下命令解压 Spark 压缩包到指定目录。
tar -zxf spark-2.4.8-bin-hadoop2.7.tgz -C /usr/local/
  1. 将文件存储HDFS版 Java SDK 放到 Spark 的 jars 目录下。
cp aliyun-sdk-dfs-x.y.z.jar /usr/local/spark-2.4.8-bin-hadoop2.7/jars/
  1. 注意事项
  • 如果您需要对 Spark 进行额外的配置,请参考官方文档:配置操作指南


六 验证 Spark 配置

读取文件存储HDFS版上的数据进行 WordCount 计算并将结果写到文件存储HDFS版上。

## 请将下方文档中的 f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com 替换为您的挂载点
## 在文件存储HDFS版上生成测试数据
hadoop jar ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar \
randomtextwriter \
-D mapreduce.randomtextwriter.totalbytes=10240 \
-D mapreduce.randomtextwriter.bytespermap=1024 \
dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/input

## 启动 spark-shell 执行 WordCount
${SPARK_HOME}/bin/spark-shell --master yarn
scala> val res = sc.textFile("dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
scala> res.collect.foreach(println)
scala> res.saveAsTextFile("dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/output")

## 查看写入文件存储HDFS版的结果数据
hadoop fs -ls dfs://f-xxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/output

image


了解更多关于文件存储HDFS版的产品信息,欢迎访问https://www.aliyun.com/product/alidfs

如果您对文件存储HDFS版有任何问题,欢迎钉钉扫描以下二维码加入文件存储HDFS版技术交流群。

image


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10018 0
如何在函数计算中使用 Node.js 处理 multipart 文件上传请求
web 开发中我们经常会允许用户通过 HTTP POST 请求上传文档到服务器,本文将介绍在函数计算中基于 node.js 使用 multipart form-data 来实现文件上传服务。
2709 0
在文件存储 HDFS 上使用 Apache Flink
本文主要为大家介绍在文件存储HDFS上搭建及使用Apache Flink的方法。
479 0
js判断文件格式及大小
//上传文件大小以及格式验证 function getPhotoSize(obj){ photoExt=obj.
675 0
使用函数计算对表格存储中数据做简单清洗
表格存储的增量数据流功能能够使用户使用API获取Table Store表中增量数据,并可以进行增量数据流的实时增量分析、数据增量同步等。通过创建Table Store触发器,能够实现Table Store Stream和函数计算的自动对接,让计算函数中自定义的程序逻辑自动处理Table Store表中发生的数据修改,充分的利用了函数计算全托管、弹性伸缩的特点。
2993 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13821 0
使用阿里云容器服务 ACK 和文件存储 NAS 构建现代化企业应用
大规模构建容器化应用程序需要高可靠、弹性、共享且支持高性能数据处理的数据存储解决方案。通过迁移到公共云,企业可以获得更高的生产效率和更低的成本。阿里云文件存储可以为现代化应用提供强健的数据稳定性,可靠性,高性能和在线扩展能力。
1322 0
使用阿里云文件存储实现容器持久化存储
阿里云文件存储实现容器持久化存储的架构、最佳实践、应用场景以及案例。
4065 0
+关注
12
文章
0
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载