为何HDFS是大数据分析的软肋

简介:

分布式文件系统是大型分析非常重要的一环。即使你是在使用Spark,你仍然需要将大量的数据快速的存入内存,所以文件系统一定要可以是高速率的。但是,HDFS并不像它标榜的那样好,它是大数据分析的薄弱环节。

什么是分布式文件系统?普通的文件系统是基于块来存储文件的。查找文件时,要去磁盘中匹配每一个块。一般是有文件分配表或多种FAT的。但是,分布式文件系统的物理存储资源是不一定直接连接在本地节点上的,而是通过计算机网络与节点相连。另外,像RAID或SAN系统,块是会复制的,因此,网络节点丢失并不会造成数据丢失。

HDFS存在的缺陷

HDFS中的文件分配表的核心是NameNode。客户端主要通过NameNode执行数据操作,DataNode会与其他DataNode进行通信并复制数据块以实现冗余,这样单一的DataNode损坏不会导致集群的数据丢失。但是NameNode一旦发生故障,后果会非常严重。虽然NameNode可以故障转移,但是需要花费大量的时间。这也意味着序列中会有更多的等待时间。HDFS的垃圾回收,尤其是Java垃圾回收是需要占用大量的内存,一般是本机有效内存的10倍。

因为HDFS的设计更多的是建立在响应"一次写入、多次读写"任务的基础上。在多数情况下,分析任务都会涉及数据集中的大部分数据,也就是说,对HDFS来说,请求读取整个数据集要比读取一条记录更加高效。所以HDFS在语言选择方面更偏向于基础语言,而不是高级语言。

传统的操作可以用更短的时间来开发部署,维护成本更低、安全性更好。业内有这样一种说法,大多数操作系统支持C语言、汇编和Java的原因是,文件系统处于一个较低的水平。

HDFS的工具和其他文件系统的工具相较是有差距的。比起你曾经处理的任何文件系统或分布式存储HDFS周围的工具是一种较差。基于Java的文件系统只能搭上IT人员最喜爱的POSIX工具的末班车。你尝试过NFS挂载HDFS吗?其它的HDFS工具的安装也是非常复杂的。相反的,如果你使用REST bridge Tool和客户端命令行就会非常容易。

HDFS支持原生代码扩展,提高了运行效率。另外,社区也为NameNode的发展做出了很多贡献。如果你想要打造一个高端的系统,那么必须打破监测和诊断工具中的NameNode瓶颈。总之,在操作系统上使用基于C或C ++的较为成熟的分布式文件系统往往是一个更好的选择。

Spark和云计算需求的变化

早期的Hadoop企业部署基本上是在本地完成的,随着Spark和云部署的崛起,使用Amazon S3作为数据源的情况渐渐多了起来。

Hadoop供应商都期望能够出现更为统一的Hadoop平台,期望HDFS能够与安全组件集成。Spark本身就因文件系统的多样性而存在很多矛盾,所以,想要和文件系统紧密集成几乎是不可能的。

MAPR FS文件系统渐渐引起了企业的兴趣。MAPR FS没有NameNode,而是采用了更标准和熟悉的集群方案方案。 MAPR的分区设计也很好的避免了瓶颈。

除了上述的分布式文件系统,还有很多的分布式文件系统可以供选择,例如Ceph、Gluster。Gluster是一种更为标准的分布式文件系统,擅长I/O操作。目前,大多数人选择使用Spark来存储文件是因为他们对于Spark更加熟悉,而并非是因为它性能好、速度快。

大型HDFS安装的迁移是不可能一蹴而就的,但是随着时间的迁移,未来我们在Spark和云项目中会越来越少的看到HDFS。也许,HDFS会脱离YARN,单独成为Hadoop的一部分。


本文作者:佚名

来源:51CTO

相关文章
|
1月前
|
SQL 分布式计算 数据可视化
Tableau与大数据:可视化工具在大数据分析中的应用
【4月更文挑战第8天】Tableau是一款领先的数据可视化工具,擅长于大数据分析,提供广泛的数据连接器,支持多源整合。它与Hadoop、Spark等深度集成,实现高效大数据处理。Tableau的拖拽式界面和交互式分析功能使得非技术人员也能轻松探索数据。在实战中,Tableau用于业务监控、数据storytelling和自助式分析,推动数据民主化,提升决策效率。未来,Tableau将持续创新,扩展生态系统,并保障数据安全与合规性,助力企业最大化数据价值。
40 0
|
1月前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
2月前
|
供应链
代采系统如何利用大数据分析优化采购决策?
代采系统可以利用大数据分析来优化采购决策
|
2月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
2月前
|
存储 分布式计算 算法
【底层服务/编程功底系列】「大数据算法体系」带你深入分析MapReduce算法 — Shuffle的执行过程
【底层服务/编程功底系列】「大数据算法体系」带你深入分析MapReduce算法 — Shuffle的执行过程
29 0
|
4天前
|
数据可视化 大数据 Python
python大数据分析处理
python大数据分析处理
10 0
|
4天前
|
机器学习/深度学习 人工智能 大数据
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀
|
10天前
|
存储 机器学习/深度学习 数据采集
大数据处理与分析实战:技术深度剖析与案例分享
【5月更文挑战第2天】本文探讨了大数据处理与分析的关键环节,包括数据采集、预处理、存储、分析和可视化,并介绍了Hadoop、Spark和机器学习等核心技术。通过电商推荐系统和智慧城市交通管理的实战案例,展示了大数据在提高用户体验和解决实际问题上的效能。随着技术进步,大数据处理与分析将在更多领域发挥作用,推动社会进步。
|
13天前
|
存储 运维 监控
|
13天前
|
存储 数据可视化 大数据
大数据分析与处理:探索数据的深层价值
大数据分析与处理:探索数据的深层价值
41 2

热门文章

最新文章