开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲:Hadoop/Spark 访问 OSS 加速】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/833/detail/13966
Hadoop/Spark 访问 OSS 加速
内容介绍
一、JindoFS SDK 介绍
二、 Hadoop 使用 JindoFS SDK
三、Spark 使用 JindoFS SDK
四、演示
一、JindoFS SDK 介绍
• JindoFS SDK 是一个简单易用面向 Hadoop/Spark 生态的 OSS 客户端,为阿里云 OSS 提供高度优化的 HadoopFileSystem 实现。
• 通过 JindoFS SDK,可以在 Hadoop 环境中直接使用 oss://bucket/ 的方式访问阿里云 OSS 上的内容。
例如:
hadoop dfs -ls oss: / / bucket/dir
为什么使用 JindoFS SDK
• 优异的性能表现:和开源版本的 Hadoop-OSS-SDK 进行对比,各项操作性能均显著好于 Hadoop-OSS-SDK
• 良好的兼容性:兼容市面上大部分 Hadoop 版本,JindoFS SDK 在 Hadoop2.3 及以上的版本上验证通过
• 专业团队维护:阿里云 EMRHadoop 团队维护,JindoFS Hadoop SDK 在阿里云 EMR等产品中广泛使用
• 功能更新快:及时跟进 OSS 最新特性和优化,版本更新及时。
Hadoop 使用 JindoFS SDK 访问 OSS
安装 jar 包
• 下载最新的jar包 jindofs-sdk-x.x.x.jar,将sdk包安装到hadoop的classpath下。
配置 JindoFSOSS 实现类
• 将 JindoFS OSS 实现类配置到Hadoop的core-site.xml中。
fs.AbstractFileSystem.oss.implcom.aliyun.emr.fs.oss.osS
fs.oss.impl
com.aliyun.emr.fs.oss.Jindo0ssFileSystem
配置 OSSAccess Key
• 将OSS的AccessKey、Access Key Secret、Endpoint等预先配置在Hadoop的core-site.xml中。
jindo. common.accessKeyIdxxx
jindo.common.accessKeySecretxxx
jindo.common.oss.endpointoss-cn-xxx.aliyuncs.com
二、使用 JindoFSSDK 访问 OSS
用HadoopShell访问OSS,下面列举了几个常用的命令。
• put操作:hadoop fs -put oss:///
• ls 操作:hadoop fs -ls oss:///
• mkdir操作:hadoopfs -mkdiross:///
• rm操作: hadoop fs rm oss:///
Spark 使用 JindoFS SDK 访问 OSS
在 Spark CLASSPATH 中添加 JindoFS SDK
• 下载最新的jar包 jindofs-sdk-x.x.x.jar,将sdk包安装到 Spark的classpath下。
• cp jindofs-sdk-${version}.jar $SPARK_HOME/jars/
三、配置 JindoFS SDK
全局配置:参考 Hadoop 配置
任务级别配置:spark-submit--conf
spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.emr.fs.oss.OSS --conf
spark.hadoop.fs.oss.impl=com.aliyun.emr.fs.oss.JindoOssFileSystem --conf spark.hadoop.fs.jfs.cache.oss.accessKeyId=xxx --conf spark.hadoop.fs.jfs.cache.oss.accessKeySecret=xxx --conf spark.hadoop.fs.jfs.cache.oss.endpoint=oss-cn-xxx.aliyuncs.com
访问 OSS
• 完成配置之后,启动的 Spark 任务访问 OSS 默认就使用 JindoSDK 访问
四、演示
• \1. 下载 JindoFS SDK
• \2. 将jar包拷贝到 hadoop classpath
• \3. 修改配置
• \4. 演示 hadoop 命令
• \5. 将 jar 包拷贝到 Spark${SPARK_HOME}/jars
• \6. 演示 Spark 访问 OSS