浅谈Hadoop
这些年来数据的增长量真是发生了天翻地覆的变化,原来大家过年的时候都会很认真的拍一张全家福,恨不得把胶卷能够正反两用,多存点照片,现在好了,手机各类终端齐上阵,微博,微信,图片,小视频,所有的数据真是应有尽有。数据量上来了,数据的分析工作就显得尤为重要了。用现在很形象的一种描述就是,让数据说话。
Hadoop的使命就是主要海量数据的存储和分析,也有两个核心的功能,一个是HDFS,一个就是MapReduce。怎么理解呢,HDFS就是Hadoop Distributed FileSystem, MapReduce是一个编程模型,所做的工作是map和reduce两部分,这些海量数据需要存储,这个很容易理解,那么什么是MapReduce呢?
举一个简单的例子。
我们存在一些文本数据,是关于pm2.5的。记录了每天的数据情况。内容如下:
20150321 01 60
20150321 06 50
20150321 12 100
20150320 01 200
20150320 06 150
20150320 12 160
20150319 01 150
20150319 06 200
如果我们想知道这些数据中每天的pm2.5最高的值,不需要精确到小时,按天即可。
我们可以做一个映射,这个操作就是类似map部分。
20150321 60
20150321 50
20150321 100
20150320 200
20150320 150
20150320 160
20150319 150
20150319 200
然后进一步处理得到
20150321 (60,505,100)
20150320 (200,150,160)
20150319 (150,200)
这个处理就是一个类似map的操作。把数据做了映射。
reduce的部分,来看看进一步的处理,对于每天的数据,查看最大的值。
20150321 (100)
20150320 (200)
20150319 (200)
这就是一个基本的MapReduce的过程,因为是一个编程模型,可以通过多种语言来实现。这也是Hadoop精明的地方之一,就跟Java中的Servlet一样,定义一个借口,借口的实现根据不同的web容器来具体实现。
Hadoop其实还有很有的组件,
比如Pig是一种数据流艳艳和运行环境,通常用来检索非常大的数据集
Hive是一个分布式,按列存储的数据仓库,管理HDFS中的数据。
HBase是一个分布式,按列存储的数据库
ZooKeeper是一个分布式,高可用性的协调服务。
Sqoop是HDF和数据库之间传输数据的工具
Avro是一种支持高校,跨语言的RPC和永久存储数据的序列化系统
如果这么扩展,一下子感觉Hadoop抽象起来,高不可攀,不过核心的部分还是HDFS和MapReduce.深入理解这两个部分也是作为学习Hadoop的基础。
原以为大数据总是和数据库 有着千丝万缕的联系,但是大数据的书中似乎都在尽力去撇清和传统关系型数据库的关系。
翻看了一些书,加上一些自己的理解,拿oracle来比较,我认为主要有以下几个方面。
首先是处理的数据量上Hadoop面向的是P级,而传统数据库是G,T级,一般大型库在T级也高不过几百T。
其次Hadoop的分布式存储一个很明显的差别,分布式的思想会尽可能希望数据能够分布得更散。而oracle的设计思想就是share everything,尽可能的把数据都汇总起来共享,Oracle中的RAC+ASM尤其说明了它的这种特点。无论你通过多少个实例来达到高可用性,但是数据源都是同一处共享存储,加上自动化存储管理,不过oracle中ASM所做的工作和HDFS有些类似。
在数据的处理上,关系型数据库处理xml数据或者clob,blob数据总是一件比较纠结的事情,性能是一大硬伤。比如海量的图片,在oracle中就只能是blob的存储了,而这些数据在Hadoop中只在数据处理的时候才进行解释,在这方面可能显得更加轻量级。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
大数据技术现状
大数据技术在开发者或从业人员的应用中逐步走向成熟,这些成熟的技术在开发人员的探索中得到了初步的稳定发展,公司的使用便是对这些技术的肯定。包括开发语言,数据分析语言、数据库等在内的大数据工具,究竟哪个更适合自己的业务,相信开发者们都有自己的评判标准。 在众多的开发语言中,大数据平台开发者们尤为青睐Java,占到了总比例的65%, 远远超过其他开发语言。值得一提的是,Hadoop本身就由Java实现的。 在大数据分析语言中,SQL的使用比例达到了64%,是R语言使用者人数的2倍之多。博云网称,我们从中不难看出SQL-on-XXX项目的前景;同时从R的支持率上,也看到了更多非技术人员,比如数据分析师对低门槛分析类语言的需求。 在大数据存储上,HBase则以67.55%的比例位居榜首,远超其他数据仓库,当然这点与Hadoop原生支持是分不开的。 对存储在HBase或Cassandra这样NOSQL数据库中的数据进行复杂查询,Solr、Elasticsearch、Splunk等主流的搜索引擎差距并不大。
- 下一篇
众推平台架构——分布式爬虫
分布式爬虫架构 经过新一轮的投票,项目的范围已经基本确定。 大家决定 全力以付,集中攻克“分布式爬虫”。 分布式爬虫架构1 使用队列,即生产者,消费都模式。 由于生产者将规则生成到队列,然后由爬虫集群(消费者)到队列中取规则,然后按优先级等规则进行爬取。 分布式爬虫架构2 类似于webmagic,webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。 分布式爬虫架构3 分布式爬虫架构3,参考的Cola是一个分布式的爬虫框架,用户只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。 基于Cola实现的爬虫位于contrib/目录下。目前实现了四个爬虫: wiki:维基百科。 weibo:新浪微博爬虫。从初始用户出发,然后是其关注和粉丝,依次类推,抓取指定个数的新浪微博用户的微博、个人信息、关注和粉丝。...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境