开发者社区> huangchuang> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 基于阿里云面向对象存储(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上存储的数据。

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

相关文章
第1期:一图了解阿里云对象存储OSS
阿里云对象存储OSS是一款海量,安全,低成本,高可靠的云存储服务。跟着阿里云内容设计中心来一起了解一下OSS吧~
320 0
阿里云OSS对象存储服务上传失败问题之一
OSS是阿里云提供一个对象存储服务,有着稳定高效的特点,但在操作时有些问题还是必须要注意一下的
634 0
一文了解阿里云对象存储OSS
对象存储OSS是什么? 对象存储服务(Object Storage Service,简称 OSS),以 HTTP RESTful API 的形式对外提供服务,是阿里云提供的海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面覆盖从热到冷的各种数据,优化存储成本。其数据可靠性不低于 99.9999999999%(12 个 9),服务可用性
7596 0
一分钟了解阿里云产品:对象存储OSS概述
阿里云的产品种类繁多,今天让我们一起来了解下对象存储(Object Storage Service,简称OSS)吧!
1327 0
三大场景,对象存储OSS带你快速上云
本文介绍对象存储OSS的主要应用场景。 图片和音视频等应用的海量存储 OSS可用于图片、音视频、日志等海量文件的存储。
2565 0
基于对象存储 OSS 的智能数据分析处理框架和功能
今年参加了 2019 全球闪存峰会(Flash Memory World),分享了“基于云存储的智能数据分析处理架构”,重点介绍在对象存储 OSS 之上的数据处理功能,现整理相关内容和大家探讨。
2498 0
对象存储 OSS 常见问题
本文列举了阿里云对象存储 OSS 的常见问题,帮助您快速了解 OSS。
8996 0
如何设置对象存储OSS静态网站托管功能?
今天为大家介绍一下如何设置OSS的默认页面。OSS的静态网站托管功能,主要是允许客户将一个.html的静态文件上传到bucket中作为bucket外网域名访问的一个特定页面。 接下来,我们登录控制台给大家详细介绍一下设置方法。
3305 0
如何设置对象存储OSS跨域(CORS)?
CORS的中文名是跨域资源共享,是HTML5提供的标准跨域解决方案。跨域访问,也叫JavaScript跨域访问问题,是浏览器出于安全考虑而设置的一个限制,即同源策略。当来自于A网站的页面中的JavaScript代码希望访问B网站的时候,浏览器会拒绝该访问,因为A、B两个网站是属于不同的域。
6612 0
对象存储OSS的几个基本概念
本文主要介绍一下OSS使用中的几种基本概念。我们将给大家介绍OSS的Bucket、Object、Region、Endpoint和AccessKey。 Bucket 首先给大家介绍一下Bucket,Bucket是用户用来管理所存储Object的储物空间。
6015 0
+关注
6
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载