hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(下)

2019-11-18杂谈搜奇网17°c
A+ A-

相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大、综合成本低、支持非结构化数据、查询天真多变等特性,遭到越来越多企业的喜爱,逐渐成为了当代数据平台的中心和架构范式。

作为微软Azure上最新一代的数据湖效劳,Data Lake Storage Gen2的宣布,将云上数据湖的才和体验提拔上了一个新的台阶。在前面的文章中,我们已离别引见了其基础运用和大数据集群挂载的场景。作为本系列的下篇,让我们继承深度体验之旅。

 ADLS Gen2体验:数据湖同享

在企业中,一个巨大的数据湖每每须要被同享。比方数据湖一般会被划分为多个地区,这些地区最好能够被各自对应的盘算集群所接见以举行差别的盘算使命。这也充分表现了盘算存储星散的理念,是云盘算的架构精华。那末ADLS Gen2可否支持这一主要场景呢?

答案是一定的。关于各盘算集群而言,无妨淡化它本身的“当地”存储,转为斟酌集群是不是能够读取接见远端的数据湖实例——在如许的思绪下,就可以够设立一个一致而自力的数据湖实例,被多个盘算集群同享,同时按目次举行权限设置和数据断绝。数据湖的生命周期可自力于盘算集群的竖立和烧毁,在须要时作为外部数据被援用和接见就可以够了。

接下来我们之前篇文章竖立的HDInsight Spark集群为例,继承数据湖同享的实战考证。微软的一段文档通知了我们怎样让HDInsight集群接见“外部”的ADLS Gen2:

To add a secondary Data Lake Storage Gen2 account, at the storage account level, simply assign the managed identity created earlier to the new Data Lake Storage Gen2 storage account that you wish to add.

https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-use-data-lake-storage-gen2

看起来很是轻易,只须要将代表集群的identity给予响应的ADLS Gen2权限即可。注重这里的权限粒度事实上能够设置得异常仔细,准确到目次以致文件层级,这正是我们须要的。

接下来我们来构建和试验如许一个罕见的主要场景:原始数据位于数据湖的地区一中,由集群1的spark顺序来举行处置惩罚,并将处置惩罚后的数据落地到统一数据湖的地区二中;集群2则运用hive来对地区二中的处置惩罚后数据举行查询。注重这里因为盘算存储举行了星散,数据处置惩罚和查询集群都能够是无状况的,无事情负载时能够封闭,也能够随时竖立或横向扩大。

我们先来预备同享数据湖,在系列上篇中已竖立的存储账号cloudpickerdlg2中新建一个文件体系datalakefs-shared用于同享数据。随后在个中离别竖立zone-rawdata和zone-processed两个文件夹,并在zone-rawdata文件夹中存放入前面运用过的小说《双城记》文本文件ATaleOfTwoCities.txt:

接下来,为使Spark集群顺遂接见这个中心数据湖中的数据,我们只需对之前竖立的spark-cluster-identity离别对两个文件夹举行受权。这里为zone-rawdata给予读权限,关于zone-processed给予读写权限:   

随后,我们就可以够复用系列中篇里的Spark集群来接见这个远端的数据湖了。再次祭出Jupyter Notebook举行数据处置惩罚,并将Spark的处置惩罚效果以parquet情势写入zone-processed:

val domain = "abfss://datalakefs-shared@cloudpickerdlg2.dfs.core.windows.net/"
val book = spark.sparkContext.textFile(domain + "zone-rawdata/ATaleOfTwoCities.txt")
val wordCounts = book.flatMap(l => l.split(" ")).map(w => (w, 1)).reduceByKey((a,b) => a+b).map( { case (w, c) => (w, c, w.length) } )
val wordCountsWithSchema = spark.createDataFrame(wordCounts).toDF("word", "count", "word_length")
wordCountsWithSchema.write.parquet(domain + "zone-processed/ATaleOfTwoCities.parq")

 运转以后能够看到,效果集parquet文件已位于zone-processed中了。

接下来我们举行斟酌查询数据湖的部份,能够竖立一个自力的Hive查询集群并指向数据湖上的处置惩罚效果。在Azure上有一个特地为高性能在线查询优化的HDInsight大数据集群范例,被称为Interactive Query,个中运用了Hive LLAP,很合适我们的场景。我们无妨就布置它作为查询集群。

在此我们略去竖立Hive LLAP集群的细致历程,其步骤与竖立Spark集群相似,根据Wizard的提醒逐渐拔取即可。须要注重的是,我们也响应地须要为查询者竖立一个对应的身份hive-cluster-identity,并将这个hive-cluster-identity设置为查询集群的身份。

在同享数据湖datalakefs-shared方面无需和查询集群发作直接关联,只要把待读取的途径(zone-processed文件夹)向hive-cluster-identity开放读取权限即可:

 然后就可以够在Hive集群上用SQL来举行数据湖查询了:

--竖立外部表指向数据湖中parquet数据
create external table WordsOnDataLake(
    word string,
    count int,
    word_length  int
) STORED AS PARQUET
LOCATION 'abfss://datalakefs-shared@cloudpickerdlg2.dfs.core.windows.net/zone-processed/ATaleOfTwoCities.parq';

-- 马上就可以直接查询数据湖上数据,例如按单词长度分组聚合统计
select word_length, sum(count) as total_count from WordsOnDataLake
group by word_length 
order by total_count desc
limit 10;

末了顺遂地跑出了效果:

+--------------+--------------+--+
| word_length  | total_count  |
+--------------+--------------+--+
| 3            | 31667        |
| 4            | 24053        |
| 2            | 22800        |
| 5            | 15942        |
| 6            | 12133        |
| 7            | 9624         |
| 8            | 6791         |
| 9            | 4716         |
| 1            | 4434         |
| 0            | 4377         |
+--------------+--------------+--+
10 rows selected (4.295 seconds)

能够看到Hive LLAP顺遂地读取了远端数据湖的数据,而且速率很是可观,数秒内就返回了效果。假如封闭LLAP形式而采纳传统体式格局实行(将hive.llap.execution.mode设为none),笔者试验下来一样的查询须要25秒左右才完成。

在现实场景中,Hive LLAP集群能够始终保持在线,以便应对随时到来的查询要求;而担任ETL的Spark集群则可按需启动,盘算使命完成后封闭。如许的设想既充分运用了同享数据湖的架构,也表现了云端按需伸缩启停的特性。

 

总结

数据湖是最近几年盛行的架构头脑,有助于进步数据效劳才的天真性,也为企业跨范畴一致大数据平台的构建供应了指点范式和落地支持。

因而,公有云巨子们纷纭为数据湖构建供应及增强了对应的产物线,本系列文章聚焦的Azure Data Lakge Storege Gen2等于个中杰出代表。经由过程三篇文章的层层深切,我们既剖析了产物功用,又连系运用场景举行了POC考证。实践证明,ADLS Gen2能够成为构建企业级数据湖的坚实基础和牢靠保证。

末了,我们运用一张架构图来作为全文的收束,它很好地总结了ADLS Gen2的才、定位及与周边体系的关联:

  (图片来自https://www.blue-granite.com/blog/10-things-to-know-about-azure-data-lake-storage-gen2)

从现在开始,就请斟酌运用ADLS Gen2和相干配套云效劳,来构建你本身的数据湖吧!

相干文章:

构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(上)

构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(中)

 

“云间拾遗”专注于从用户视角引见云盘算产物与手艺,坚持以实操体验为中心输出内容,同时连系产物逻辑对运用场景举行深度解读。迎接扫描下方二维码关注“云间拾遗”微信民众号。

 

 

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(下)

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282209.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>