Hadoop哲学

Hadoop是什么?

首先,从最基本的层面来讲——Hadoop最初是Apache 软件基金会的一个开源项目。后来,Map/Reduce 和 NDFS也分别被纳入这一项目中,很快就形成了一个广泛而丰富的开源生态系统。如今,Cloudera的“Hadoop发行版”(CDH/HDP/CDP)包含30多个开源项目,涵盖存储、计算平台(例如YARN,以及未来的Kubernetes)、批处理/实时计算框架(Spark、Flink等)、编排、SQL、NoSQL、ML、安全/管理等等。

所以,如果把Hadoop仅仅定义为MapReduce,那么,MapReduce的确正在衰落。但这并不妨碍Spark、Flink以及其他技术的兴起——这使客户感到高兴。这就是平台的美妙和强大之处——它可以进化,可以拥抱新的范式。

那么,如果Hadoop不是一个“项目”或“一组项目”,它又是什么呢?

“Hadoop”是一种哲学——是一场运动,是管理和分析数据的现代化体系结构的发展。

 

“Hadoop 哲学”

“Hadoop 哲学”始终遵循以下原则:

1. 转向分解软件堆栈,将每一层(存储、计算平台、批处理/实时/SQL计算框架等)构建为可组合的乐高积木,而不是单一且不灵活的软件栈(例如以垂直方式整合的具有定制存储格式、解析器、执行引擎等的数据库。

尤其是,通过建立开放的元数据、安全和管理平台来协调分解的堆栈,有助于实现这一点。

2. 转向用于大型分布式系统的商品硬件,而不再是专有/单片硬件+软件堆栈。

在经济学理论中,商品被定义为一种物品或服务,具有充分的可替代性和广泛的可获得性,这通常会导致较小的利润率,使价格以外的因素(如品牌)变得并不那么重要。

请参阅下面的讨论,了解商品硬件在架构上如何很好地转化为公共云。

3. 转向利用开放数据标准和开源技术,而不是专有的、供应商控制的技术。这不仅仅是开放标准——标准是实现,而不仅仅是“规范”。

4. 转向灵活多变的技术生态系统(MRv1 -> YARN -> K8s, MapReduce -> Spark/Flink等),而不是对所有的整体堆栈一刀切,从而在每一层都能实现创新。

从某种层面来说,“Hadoop哲学”对于数据架构来说,就像著名的Unix 哲学对于软件开发一样,Eric Raymond在其著作《Unix编程艺术》中阐述了17条Unix规则,同样适用于该领域:

1. 模块原则:使用简洁的接口拼合简单的部件。

HDFS, YARN/K8s, Spark, Hive等既可以相互组合,又相互依赖。

3. 组合原则:设计时考虑拼接组合。

Impala,Hive, Spark等可用于端到端的解决方案。

4. 分离原则:策略同机制分离,接口同引擎分离。

HDFS既是文件系统接口,也是文件系统实现。这就是Spark通过Hadoop兼容文件系统“API”与S3对话的原因。

6. 吝啬原则:除非确无它法,不要编写庞大的程序。

避免出现“大”而“胖”的层,而是使用依赖于其他层的模块化层,例如Phoenix和HBase。

7. 透明性原则:设计要可见,以便审查和调试。

开源FTW!

16. 多样原则:决不相信所谓“不二法门”的断言。

Hadoop生态系统提供了多种工具,因为它们适用于不同的场景,并且具有不同的优势(可以通过Spark或Hive实现ETL,通过Hive/Tez或Impala实现SQL,通过LLAP或SparkSQL实现SQL)。

17. 扩展原则:设计着眼未来,未来总比预想来得快。

在2005-2006年时,很难预测到HBase, Hive, Impala, Spark, Flink, Kafka等产品的出现,但在过去13年多的时间里,它们成为了高质产品和堆栈的关键组件,这已经是很好的成果了。

云是什么呢?

如今,公共云(以及私有云)显然将成为企业部署体系结构中不可或缺的一部分。

公共云本质上就是企业硬件基础设施(服务器、网络、数据中心等)的商品化。因此,它完全符合Hadoop哲学的原则——专注于商品硬件。此外,整个Hadoop生态系统一直都是为了“变形”和吸收新影响而构建的——Tom White在2006年编写了第一个S3-Hadoop连接器,Amazon在2009年引入了EMR服务。

与此相比,传统数据库供应商很难分解单个的、高度工程化、融合一体化的硬件/软件堆栈,并使它们在公共云中进行“本地化”工作。

不幸的是,就整个行业来说,没能很好的帮助市场(尤其是金融市场)理解Hadoop与传统技术在公共云方面的区别。这值得思考,且亟待改善。

亚马逊的 EMR、Azure的HDInsight,以及谷歌的Dataproc都是很好的例子,能够很好地说明“Hadoop”是如何在客户群的公共云中大规模推动巨头价值和业务的。

Cloudera是什么?

Cloudera是一家数据公司。这家公司能够将数据转化为清晰且可操作的观点,这主要是通过“Hadoop哲学”来实现的。我们建立了这个市场——为自己的过去感到骄傲,但并没有被蒙蔽。我们借力于技术浪潮(公共云、Kubernetes等),这不仅有益于客户,也符合公司的使命。

即使再过一百年,企业依然会希望将数据转化为观点。这是我们正在做的,并将持续做下去。

有些事情确实发生了改变——这需要引起注意。五年前,当我们还是IT技术时,就获得了通行证。所有的酷小孩都想和我们一起玩,把他们能找到的所有用例分享过来,还向他们的朋友们炫耀我们。在某种程度上,当时的主流情绪是“已经知道答案是Hadoop——那么问题是什么?”。这导致在产品生命周期的早期出现了一些不合理的、不切实际的期望。现在我们需要努力去说服客户,才能让其使用我们的产品,但是带给他们的价值和理念是毋庸置疑的。我们还需要说服客户使用如CDP之类的技术。但他们今天确实在与我们合作,正如他们在集体平台上运行的数千BP的数据和数百万分析程序所证明的那样!

本质上,通过参与用户和企业存储/管理/保护/控制/分析数据的用例,我们将继续蓬勃发展。随着“Hadoop已死”的说法重现又消退,我们会被误解,也愿意被误解一段时间——因为我们重视结果。所有伟大的公司都会时不时的被误解,坚持到最后就是胜利者。

只要有数据,就会有Hadoop。

Hadoop的旧理念已死。Hadoop的新理念长青。

 

 

采用PyQt5框架与Python编程语言构建图书信息管理平台 本项目基于Python编程环境,结合PyQt5图形界面开发库,设计实现了一套完整的图书信息管理解决方案。该系统主要面向图书馆、书店等机构的日常运营需求,通过模块化设计实现了图书信息的标准化管理流程。 系统架构采用典型的三层设计模式,包含数据存储层、业务逻辑层和用户界面层。数据持久化方案支持SQLite轻量级数据库与MySQL企业级数据库的双重配置选项,通过统一的数据库操作接口实现数据存取隔离。在数据建模方面,设计了包含图书基本信息、读者档案、借阅记录等核心数据实体,各实体间通过主外键约束建立关联关系。 核心功能模块包含六大子系统: 1. 图书编目管理:支持国际标准书号、中国图书馆分类法等专业元数据的规范化著录,提供批量导入与单条录入两种数据采集方式 2. 库存动态监控:实时追踪在架数量、借出状态、预约队列等流通指标,设置库存预警阈值自动提醒补货 3. 读者服务管理:建立完整的读者信用评价体系,记录借阅历史与违规行为,实施差异化借阅权限管理 4. 流通业务处理:涵盖借书登记、归还处理、续借申请、逾期计算等标准业务流程,支持射频识别技术设备集成 5. 统计报表生成:按日/月/年周期自动生成流通统计、热门图书排行、读者活跃度等多维度分析图表 6. 系统维护配置:提供用户权限分级管理、数据备份恢复、操作日志审计等管理功能 在技术实现层面,界面设计遵循Material Design设计规范,采用QSS样式表实现视觉定制化。通过信号槽机制实现前后端数据双向绑定,运用多线程处理技术保障界面响应流畅度。数据验证机制包含前端格式校验与后端业务规则双重保障,关键操作均设有二次确认流程。 该系统适用于中小型图书管理场景,通过可扩展的插件架构支持功能模块的灵活组合。开发过程中特别注重代码的可维护性,采用面向对象编程范式实现高内聚低耦合的组件设计,为后续功能迭代奠定技术基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值