Hadoop相关的概念的粗浅认识

概述:本文是对hadoop相关的技术名词的解释,很浅,大部分是从别的文章看完之后自己的理解,如有不当之处请大牛们能够不吝指教。hadoop是一套用Java编程语言实现的分布式大数据分析编程框架。大数据是指PB(1000TB)级别的数据量。Hadoop框架提供了在分布式环境下获取、分析、存储、同步控制的编程接口,还提供了一些现成的数据管理和系统监控工具。

1、MapReduce 映射和化简 是一种对数据分析的方法,做法是:指定一个Map(映射)函数把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。灵感来自lisp和其他函数式编程语言中的古老的映射和化简操作

Map操作就是一个映射函数就是对一些独立元素组成的概念上的列表(例如,一个测试成绩的列表)的每一个元素进行指定的操作(比如,有人发现所有学生的成绩都被高估了一分,他可以定义一个“减一”的映射函数,用来修正这个错误。)。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的。

Reduce 操作指的是对一个列表的元素进行适当的合并(继续看前面的例子,如果有人想知道班级的平均分该怎么做?他可以定义一个化简函数,通过让列表中的奇数(odd)或偶数(even)元素跟自己的相邻的元素相加的方式把列表减半,如此递归运算直到列表只剩下一个元素,然后用这个元素除以人数,就得到了平均分)。虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。

以上内容参考 wikiPedia

可能有人要问了为啥用这破玩意儿啊? 在内存中直接相加处以总数,纳秒级完成的操作啊。个人理解是因为这玩意儿处理的是大数据,如果班级人数少于100w的话,Mapreduce肯定可以扔掉了,但是,如果班级人数1000亿呢? 这些数据加起来的容量就有10GB,内存爆了啊!


2、HDFS: 刚才说了1000亿个数据内存是放不下了,总要有地方存储啊。于是就有了Hadoop Distributed File System 分布式文件系统,为啥要是分布式的呢?刚才说了Hadoop是个集群。不可能让集群的几千台机器同时访问一个服务器吧。再说了这个系统存储的数据量是PB级别的,咱家的硬盘肯定搞不定了,就需要对文件有新的索引方式。另外万一集群中有机器挂了,怎么办?HDFS就提供了一套容灾机制,来确保数据的可靠性。


3、Pig: 是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、表达转换数据以及存储最终结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。

现在我们有了算法Mapreduce,有了数据HDFS。要想使用这个算法来分析数据就要写代码。刚才说了Hadoop是用Java开发出来的,肯定有很多的Java API,但是大家知道Java要编译,要调试,对于数据分析者来说,门槛有点高。于是就有了Pig这个编程语言,它类似脚本语言,可以实现快速的数据分析。


4、Hiv 在Hadoop中扮演数据仓库的角色。Hive添加数据的结构在HDFS(hive superimposes structure on data in HDFS),并允许使用类似于SQL语法进行数据查询。与Pig一样,Hive的核心功能是可扩展的。


5、HBase: Hadoop核心还是一套批处理系统,数据加载进HDFS、处理然后检索。对于计算这或多或少有些倒退,但通常互动和随机存取数据是有必要的。HBase作为面向列的数据库运行在HDFS之上。HBase以Google BigTable为蓝本。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。HBase利用MapReduce来处理内部的海量数据。同时Hive和Pig都可以与HBase组合使用,Hive和Pig还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。

但为了授权随机存储数据,HBase也做出了一些限制:例如Hive与HBase的性能比原生在HDFS之上的Hive要慢4-5倍。同时HBase大约可存储PB级的数据,与之相比HDFS的容量限制达到30PB。HBase不适合用于ad-hoc分析,HBase更适合整合大数据作为大型应用的一部分,包括日志、计算以及时间序列数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值