程序员必须要知道的Hadoop的一些事实
程序员必须要知道的Hadoop的一些事实。现如今,Apache Hadoop已经无人不知无人不晓。当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软......

1:Hadoop是由多个产品组成的。
人们在谈论Hadoop的时候,常常把它当做单一产品来看待,但事实上它由多个不同的产品共同组成。
Russom说:“Hadoop是一系列开源产品的组合,这些产品都是Apache软件基金会的项目。”
一提到Hadoop,人们往往将其与MapReduce放在一起,但其实HDFS和MapReduce一样,也是Hadoop的基础。
2:Apache Hadoop是开源技术,但专有厂商也提供Hadoop产品。
由于Hadoop属于开源技术,可免费下载,所以IBM、Cloudera和EMC Greenplum等厂商都可以推出他们各自的Hadoop特别发行版本。
这些特别发行版本一般都会有一些附加特性,比如高级管理工具及相关的支持维护服务。有人可能对此嗤之以鼻:既然开源社区是免费的,那么我们为什么还要为它的服务付费?Russom解释道,这些版本的HDFS对一些IT部门更合适,特别是企业IT系统已经相对成熟的用户。
3:Hadoop是一个生态系统,而非一个产品。
Hadoop是由开源社区和各个厂商共同开发和推动的。具体说来,厂商的Hadoop的产品其结构化和关系性更强一些。
Russom说:“一直以来报表平台、数据集成平台在为更新的平台提供各种各样的接口,Hadoop当然也不例外。”
4:HDFS是文件系统,而不是数据库管理系统。
Russom最无法忍受的,就是人们常常把二者混为一谈。能够对数据集进行管理是数据管理系统很重要的特性之一,这一点HDFS是不具备的。
数据库管理系统中,我们通过查询索引可以实现对数据的随机访问,它往往处理的是结构化的数据,而在Hadoop中不会处理这样的数据类型。
5:Hive与SQL类似,却非标准SQL。
传统获取数据的业务工具大多都是基于SQL的,这比较让人头疼,因为Hadoop使用的是一种类似SQL但不是SQL的语言——Apache Hive和HiveQL。
Russom说:“我常听到别人说,‘Hive学起来非常简单,直接学Hive就行。’但这并不能解决与SQL工具兼容的根本问题。”
Russom认为兼容性只是一个短时间问题,但却阻碍了Hadoop的普及。
6:Hadoop与MapReduce相互关联,但不相互依赖。
MapReduce早在HDFS出现以前就由Google开发推出。除此之外,诸如MapR一类的厂商一直在宣传MapReduce功能的多样性,无需HDFS支持。
尽管如此,Russom却认为它们具有很好的互补性。HDFS的大部分价值都体现在可层叠到分布式文件系统的工具上。
7:MapReduce提供的是对分析的控制,而不是分析本身。
MapReduce是一种通用执行驱动引擎,可协助大数据分析。它能读取手写代码数据,对其进行并行自动处理,并将结果映射到单一集合中。然而我们需要明确一点,MapReduce自身并不进行分析工作。
Russom说:“MapReduce可以看作是升级版的MPP架构。你无论怎样编写代码,它都可以把它们并行化,非常强大。”
8:Hadoop的意义不仅仅在于数据量,更在于数据的多样化。
有人把Hadoop归类为海量数据处理技术,但是Hadoop真正的价值却是对多样化数据处理的能力。
Russom说:“Hadoop的处理范围为大多数数据仓库所不及,比如针对半结构化与完全非结构化的数据。”
9:Hadoop是数据仓库的补充,不是数据仓库的替代品。
Hadoop对多样化数据类型进行管理的能力使得“数据仓库将死”的言论四起,然而Russom却进行了反驳。
他反问道:“在IT领域,人们多久替换一项技术?几乎从来没有过。”
数据仓库在其领域中的性能仍然出色,Hadoop可起到对数据仓库技术进行补充的作用。数据仓库和其他系统的架构越来越多地开始向分布式靠拢,Hadoop在这里将发挥其作用。
10:Hadoop不仅仅是Web分析。
Hadoop在互联网中的运用非常普遍,Russom认为Hadoop普及趋势的部分原因是因为它可以处理更多类型的分析。
Russom举了铁路公司、机器人和零售业的例子。铁路公司可使用传感器对异常高温的轨道车辆进行探测,以阻止事故的发生。
Russom尽管十分看好Hadoop的前景,但同时认为它的普及还需要数年时间。
11:大数据不一定非Hadoop不可。
别看现在大数据和Hadoop已经密不可分,Russom却认为Hadoop并不是大数据的“唯一”。他提到了许多其他厂商的产品,如Teradata、Sybase IQ(被SAP收购)和Vertica(被HP收购)等。
除此之外,在Hadoop没有诞生之时,一些企业就已经开始研究大数据了。例如,电信行业多年以前就有呼叫明细记录。
12:Hadoop不是“免费午餐”。
虽然Hadoop属于开源技术,但是软件的安装部署是需要花钱的。Russom称,由于Hadoop在管理工具与支持服务方面的不足,企业在使用过程中很容易产生额外费用。另外,由于它没有优化程序,我们只能请专业人士在运行环境中手写输入代码,而这些专业人士的薪酬价码都不菲。
更不用提部署Hadoop集群的硬件和相关配置的成本。
最后告知大家:“千万别以为Hadoop是免费的或者很便宜,它背后的隐性开销你是一下子看不到的。”
程序员必须要知道的Hadoop的一些事实的更多相关文章
- 关于Unicode,字符集,字符编码,每个程序员都应该知道的事
关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...
- 每个php程序员都应该知道的15个最佳PHP库
PHP是一种功能强大的web站点脚本语言,通过PHP,web网站开发者可以更容易地创建动态的引人入胜的web页面.开发人员可以使用PHP代码与一些网站模板和框架来提升功能和特性.然而,编写PHP代码是 ...
- 每个JavaScript程序员都需要知道的5个数组方法
Array.forEach() .forEach() 方法能够方便的让你 遍历数组里的每个元素,你可以在回调函数里对每个元素进行操作..forEach()方法没有返回值,你不需要在回调函数里写retu ...
- 每一位想有所成就的程序员都必须知道的15件事(走不一样的路,要去做,实践实践再实践,推销自己,关注市场)good
从 为之漫笔作者:为之漫笔 有超过 100 人喜欢此条目 原文地址:How to advance your career? Read the Passionate Programmer! 我刚看完Ch ...
- 谦先生的程序员日志之我的hadoop大数据生涯一
从一个初级程序员到高级程序员的经历 你好!我是谦先生,我是茫茫程序猿中的一猿,平凡又执着. 刚入行的时候说实话,啥都不懂,就懂点皮毛的java,各种被虐狗的感觉.又写js又写css又写后台...慢慢被 ...
- (转)C系程序员面试必知必会之大端小端
C程序员经常被问及的一道面试题是:什么是大端/小端,怎么样判断是大端/小端?大端小端问题对于嵌入式程序员绝对不会陌生(否则,别告诉我你是搞嵌入式的),它与CPU体系结构有关.比如常见的X86处理器 ...
- 程序员与数据库打交道的JDBC知识概要
1.JDBC全称:Java database connectivity,Java数据库连接. (1) JDBC是一种用于执行SQL语句的Java API,为多种关系数据库提供多种统 ...
- 后端程序员之路 47、Hadoop hdfs
Hadoop的核心是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase.Hive等,这些都是基于HDFS和MapReduce发 ...
- 每个新手程序员都必须知道的Python技巧
当下,Python 比以往的任何时候都更加流行,人们每天都在实践着 Python 是多么的强大且易用. 我从事 Python 编程已经有几年时间了,但是最近6个月才是全职的.下面列举的这些事情,是我最 ...
随机推荐
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- .NET 提升教育 第一期:VIP 付费课程培训通知!
为响应 @当年在远方 同学的建议,在年前尝试进行一次付费的VIP培训. 培训的课件:点击下载培训周期:10个课程左右,每晚1个半小时培训价格:1000元/人.报名方式:有意向的请加QQ群:路过秋天.N ...
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...
- ExtJS 4.2 Date组件扩展:添加清除按钮
ExtJS中除了提供丰富的组件外,我们还可以扩展他的组件. 在这里,我们将在Date日期组件上添加一个[清除]按钮,用于此组件已选中值的清除. 目录 1. Date组件介绍 2. 主要代码说明 3. ...
- ASP.NET Core应用中如何记录和查看日志
日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.Logger ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- hadoop2.7之Mapper/reducer源码分析
一切从示例程序开始: 示例程序 Hadoop2.7 提供的示例程序WordCount.java package org.apache.hadoop.examples; import java.io.I ...
- SDWebImage源码解读 之 NSData+ImageContentType
第一篇 前言 从今天开始,我将开启一段源码解读的旅途了.在这里先暂时不透露具体解读的源码到底是哪些?因为也可能随着解读的进行会更改计划.但能够肯定的是,这一系列之中肯定会有Swift版本的代码. 说说 ...
- thinkphp数据的查询和截取
public function NewsList(){ $this->assign('title','news'); $p = I('page',1); $listRows = 6; $News ...
- 安卓GreenDao框架一些进阶用法整理
大致分为以下几个方面: 一些查询指令整理 使用SQL语句进行特殊查询 检测表字段是否存在 数据库升级 数据库表字段赋初始值 一.查询指令整理 1.链式执行的指令 return mDaoSession. ...