OSS 数据湖实践 —— EMR+OSS入门

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 基于阿里云面向对象存储(OSS) 技术优势,利用EMR的计算能力,把二者结合起来,快速搭建大数据计算环境,实现大数据分析需求。

对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件;E-MapReduce(EMR)构建于云服务器ECS上,基于开源的Apache Hadoop和Apache Spark,可以方便地使用Hadoop和Spark生态系统中的其他周边系统(例如,Apache Hive、Apache Pig和HBase等)来分析和处理数据;E-MapReduce还可以与阿里云的云数据存储系统OSS进行数据传输,把二者各自优势结合起来,使存储计算分离,方便快捷搭建大数据计算环境,实现大数据分析需求。

前提条件

• 已注册阿里云账号,详情请参见注册阿里云账号
• 已开通E-MapReduce服务和OSS服务。
• 已完成云账号的授权,详情请参见角色授权

步骤一:创建EMR集群及相关配置

在使用spark 操作oss中的数据之前,您需要在本地安装MAVEN、JAVA、SCALA环境,以及在E-MapReduce上创建Hadoop集群。

1、在本地安装JAVA、MAVEN、SCALA环境;

2、登录阿里云E-MapReduce控制台,创建Hadoop集群(可选服务中必选spark、smartdata、bigboot、knox服务)

1589163886750_0654e08f_f1c3_49a1_ad28_82ec2d2a21ec

3、在创建集群时,设置knox账号密码,挂载公网 及设置集群登录密码;

1589164051185_f1df5548_e6f3_4573_a02c_f88f48e291f6

4、集群创建之后,在集群服务smartdata smartdata-site配置oss数据源;

增加两个配置项,分别为fs.jfs.cache.oss-accessKeyId、fs.jfs.cache.oss-accessKeySecret;
1589175412244_18ba5166_5fd6_4e33_be32_20de342f9a51
然后点击保存,以及右上方操作中重启组件;

5、登录hadoop集群header节点,验证oss 数据源是否生效

hadoop fs -ls oss://your-bucket-name/dir/   #测试读OSS
hadoop fs -mkdir oss://your-bucket-name/dir/   #测试写OSS

步骤二:使用EMR集群提交spark作业,读写OSS

1、编写spark代码,从OSS中读取json数据,然后向OSS写入delta格式数据,制作为jar包

import org.apache.spark.sql.{Row, SparkSession}
object WriteOSS {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder
      .appName("Spark OSS")
      .getOrCreate()
    val data=spark.read.json("oss://bucketname/test.json")
    data.write.format("delta").save("oss://bucketname/test_delta_data")
    }
}

2、把jar包上传至EMR集群上,然后把jar包放在本地hdfs下,或者利用hadoop命令把jar包上传到oss中都可

• 使用scp工具把jar包传送到EMR集群的header节点上
• 把jar包拷贝到oss bucket下

./ossutil64 cp test.jar oss://bucket-name/dir

• 把jar包拷贝到本地集群hfs文件系统中

hadoop fs -put localfile hdfsfile

3、在数据开发中创建spark job作业

1589269866848_5a7ddaea_d01d_4732_8d1d_e99b258698ad

4、在test job编辑框中输入作业提交命令

--class OSSReadWrite --master yarn --deploy-mode client 
--driver-memory 5g --num-executors 50 --executor-memory 3g 
--executor-cores 3 --conf spark.default.parallelism=500 
--conf spark.yarn.am.memoryOverhead=1g 
--conf spark.yarn.am.memory=2g 
oss://your-bucket-name/test.jar

5、运行作业,查看作业日志

1589276162092_89e1b53c_9907_4b42_b252_d57ab0070082

总结

至此,我们就完成了从创建EMR hadoop集群,配置好OSS数据源,开发OSS读写作业,数据开发中创建test job,提交作业,并且查看运行日志一系列操作。
在此基础之上,我们可以根据个人需求,进行其他作业开发,分析利用OSS上存储的数据。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
8月前
|
存储 SQL 分布式计算
阿里云全托管flink-vvp平台hudi connector实践(基于emr集群oss-hdfs存储)
阿里云全托管flink-vvp平台hudi sink connector实践,本文数据湖hudi基于阿里云E-MapReduce产品,以云对象存储oss-hdfs作为存储
|
3月前
|
存储 对象存储 SQL
【获奖名单公示】Hologres实时湖仓分析挑战赛
5分钟快速使用Hologres实时湖仓能力,无需移动数据,直接加速读取存储于数据湖OSS上的Hudi、Delta、Paimon等格式类型的数据
【获奖名单公示】Hologres实时湖仓分析挑战赛
|
7月前
|
SQL 弹性计算 分布式计算
使用EMR+DLF+OSS-HDFS进行数据湖分析
本实验通过使用EMR,搭建EMR集群,对OSS-HDFS进行数据湖分析
543 0
|
7月前
|
存储 分布式计算 关系型数据库
AnalyticDB MySQL — Spark 助力在OSS上构建低成本数据湖
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。通过和OSS团队的深入合作,AnalyticDB MySQL 的Spark能力 更好发挥了云原生数据湖方案的优势,本文为你详细解读!
|
8月前
|
存储 分布式计算 关系型数据库
AnalyticDB MySQL Spark 助力在OSS上构建低成本数据湖
借助AnalyticDB MySQL Spark 可以轻松处理OSS上PB级数据,助力企业构建低成本数据湖
|
存储 SQL 缓存
阿里云EMR 2.0:定义下一代云原生智能数据湖
本次分享主要介绍了阿里云云原生数据湖分析解决方案的三个核心要素:全托管,湖存储;一站式,湖管理;多模态,湖计算。
29569 0
阿里云EMR 2.0:定义下一代云原生智能数据湖
|
存储 边缘计算 编解码
|
1月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
758 1
|
28天前
|
存储 安全 对象存储
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
本文详细介绍了怎样帮助新手小白从注册,购买阿里云OSS,到一步一步配置OSS做为图床,和PicGo、Typora软件连接,配置好关联之后,在使用Typora写文章时,如果需要插入图片,只需要将图片复制粘贴到Typora的编辑区域,就会自动通过PicGo上传到指定图床,自动复制外网能访问的URL并展示,简直不要太方便,极大的解决了编辑文章时复制处理图片链接的痛点。
147 2
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
|
2月前
|
对象存储
minio临时凭证直传切换到阿里云oss
minio临时凭证直传切换到阿里云oss
170 1