云上计算云下数据: HDFS 缓存加速 | 学习笔记

简介: 快速学习云上计算云下数据:HDFS 缓存加速。

开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲云上计算云下数据: HDFS 缓存加速】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/833/detail/13975


云上计算云下数据:HDFS 缓存加速


内容介绍

一、背景介绍

二、功能介绍

三、实观原理

四、实操演示


一、背景介绍

传统的大数据服务,通常是自己部署一套 Hive、Spark、HDFS 在线下的 IDC 机房,现在的云计算越来越成熟,云计算可以带来弹性扩容,运维方便,节省成本等优点。

因此,越来越多的企业开始将他们的大数据平台搬到云上。

第一步他们先会将 Hive、Spark 等服务搬到云上,在云上执行计算,云下 IDC HDFS 集群存在着一些历史数据,所以,HDFS 集群的数据搬到云上需要一定的时间,并且有些客户的存在一些敏感数据,倾向于继续保留在云下。

或者说还有一些历史原因,会保存在其他云下集群上。因此这时候就涉及到跨机房跨云房访问 HDFS 数据。

云上访问余下HDFS数据,存在一些问题:

 集群之间网络延迟或者带宽限制。

 作业突发流量,线下 HDFS 资源相对于云上来说会比较有限,核心集群磁盘/网络被打满。

为了解决这些问题,就必须引入 HDFS 跨机房服务。


二、功能介绍

 Jindo Namespace Service  

 Jindo Storage Service  

 Jindo SDK

1.png

我们在计算集群上部署一套 Jindo FS,Jindo FS 具有分布式缓存的能力,它可以解决我们上面提到的两个问题,第一点,可以利用计算机学闲置资源,比如说云盘,hdd 或者内存进行数据缓存来做加速计算。

第二点,进行流量控制,避免计算机群占用核心集群过多资源。1.png

这张图就详细介绍 Jindo FS 缓存服务的系统架构。

包含三个部分,Namespace 服务保存文件的元数据和缓存原始信息的元数据。

Jindo SDK 是客户端,部署 spark 服务上。

Storage 服务负责管理缓存块的数据,整个流程是:

计算服务通过 Jindo SDK 访问数据,记录 SDK,从 Namespacs 服务查询缓存位置信息,然后向集群中的 storage 服务,读取出缓存数据,如果命中缓存直接返回,如果没有命中缓存,则从 OSS 读取数据,并且将缓存写入到 storage 服务供下次使用。


三、实观原理

 部署缓存服务  

1. 下载最新 Release 包 b2smartdata-x.x.x.tar.gz,解压并部署到集群所有节点上  

2. 修改配置文件 conf/bigboot.cfg

[bigboot-storage]  

storage.rpc.port - 6101  

storage.data-dirs =/mnt/disk1/bigboot,/mnt/disk2/bigboot,/mnt/disk3/bigboot,/mnt/disk4/bigboot  

storage.data-dirs.capacities = 527371075584,527371075584,527371075584,527371075584

storage.namespace.rpc.address = emr-header-1:8101  

storage.watermark.high.ratio-0.4 storage.watermark.low.ratio-0.2  

[bigboot-namespace] namespace.rpc.port = 8101  

namespace.meta-dir =/mnt/disk1/bigboot  

3. 修改 sbin/nodes,配置所有storage service的节点列表  

4. 启动所有服务./sbin/start-service.sh  

详细文档可参考:https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindofs_cache_mode deploy.md

 部署 Jindo SDK  

1. 安装 jar 包:下载最新的 jar 包 jindofs-sdk-x.x.xjar,在所有 Hadoop 节点安装。  

cp./jindofs-sdk-*.jar/share/hadoop/hdfs/lib/jindofs-sdkjar  

2. 将 namespace地址配置到Hadoop的core-site.xml中。  

fs.jfs.namespace.rpc-address  172.16.xx.xx:8101,172.16.xx.xx:8101,172.16.xx.xx:8101

通过 JindoFS 加速访问 HDFS  

我们通过 jfs:///路径访问,跟直接访问远端 HDFS 路径得到一样 的数据,并且获得了加速效果1.png

相关资源  

JindoFS SDK https://github.com/aliyun/alibabacloud- jindofs/blob/master/docs/indofs _sdk download.md  

JindoFS缓存服务 https://github.com/aliyun/alibabacloud- jindofs/blob/master/docs/indofs cache mode deploy.md


四、实操演示

下载最新版本的 SDK 和 smartdate1.png

可以看见 Jindo FS 的详细使用流程和配置方法,参考 Jindo FS 兼容模式部署,程序安装好后参考使用流程来进行配置部署。

Overview  

Start Time: Sun Jun 27 23:06:53 2021

Status:   Active

Meta Backend:  RocksDB (Standalone) emr-header-1.cluster-234515:8101 [192.168.0.30](Active)

Node:  Live Nodes:[3], Decommission Nodes:[0]  

Version:  3.6.0

Build No:  1d2d462e9844d63d587127504ece7c87b58ad/42

Namespace Info (3)  

Namespace: ifs:/ftest/  

Namespaces:  test

Mode:  BLOCK_MODE

Backend URI:  oss://chengli-sh-test/uyue/C-DBD8BBF30589E5BE  

Summary:  Directory Count:[1], File Count: [0], File Size:[0], Task Count:[0], Computed at 2021-06-27 23:48:03

每个节点都有700GB的内存

利用 Jindo FS 加速缓存的效果,可以看到效果还是比较明显的。

相关文章
|
27天前
|
存储 缓存 算法
分布式缓存有哪些常用的数据分片算法?
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、数据特征以及系统的可扩展性要求等因素综合考虑,选择合适的数据分片算法,以实现分布式缓存的高效运行和数据的合理分布。
|
2月前
|
缓存 监控 前端开发
处理页面缓存中数据不一致的问题
【10月更文挑战第9天】
42 2
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
47 4
|
2月前
|
消息中间件 缓存 NoSQL
大数据-49 Redis 缓存问题中 穿透、雪崩、击穿、数据不一致、HotKey、BigKey
大数据-49 Redis 缓存问题中 穿透、雪崩、击穿、数据不一致、HotKey、BigKey
55 2
|
2月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
39 2
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
89 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
41 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
49 0
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
166 6
|
2月前
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
62 3