保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

大数据扫盲!详解Hadoop核心架构

  通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍。基本涵盖了Hadoop分布式平台的所有技术核心。
  通过阶段性的调研总结,从内部机理的角度详细分析,HDFS、MapReduce、Hbase、Hive是如何运行,以及基于Hadoop数据仓库的构建和分布式数据库内部具体实现。
  HDFS的体系架构
  整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持,并通过MR来实现对分布式并行任务处理的程序支持。
  HDFS采用主从(MasterSlave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的(在最新的Hadoop2。2版本已经实现多个NameNode的配置这也是一些大公司通过修改hadoop源代码实现的功能,在最新的版本中就已经实现了)。NameNode作为主服务器,管理文件系统命名空间和客户端对文件的访问操作。DataNode管理存储的数据。HDFS支持文件形式的数据。
  从内部来看,文件被分成若干个数据块,这若干个数据块存放在一组DataNode上。NameNode执行文件系统的命名空间,如打开、关闭、重命名文件或目录等,也负责数据块到具体DataNode的映射。DataNode负责处理文件系统客户端的文件读写,并在NameNode的统一调度下进行数据库的创建、删除和复制工作。NameNode是所有HDFS元数据的管理者,用户数据永远不会经过NameNode。
  HDFS体系结构图
  图中涉及三个角色:NameNode、DataNode、Client。NameNode是管理者,DataNode是文件存储者、Client是需要获取分布式文件系统的应用程序。
  文件写入:
  1)Client向NameNode发起文件写入的请求。
  2)NameNode根据文件大小和文件块配置情况,返回给Client它管理的DataNode的信息。
  3)Client将文件划分为多个block,根据DataNode的地址,按顺序将block写入DataNode块中。
  文件读取:
  1)Client向NameNode发起读取文件的请求。
  2)NameNode返回文件存储的DataNode信息。
  3)Client读取文件信息。
  HDFS作为分布式文件系统在数据管理方面可借鉴点:
  文件块的放置:一个Block会有三份备份,一份在NameNode指定的DateNode上,一份放在与指定的DataNode不在同一台机器的DataNode上,一根在于指定的DataNode在同一Rack上的DataNode上。备份的目的是为了数据安全,采用这种方式是为了考虑到同一Rack失败的情况,以及不同数据拷贝带来的性能的问题。
  MapReduce体系架构
  MR框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的不同的从节点上。主节点监视它们的执行情况,并重新执行之前失败的任务。从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接受到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。JobTracker可以运行于集群中的任意一台计算机上。TaskTracker负责执行任务,它必须运行在DataNode上,DataNode既是数据存储节点,也是计算节点。JobTracker将map任务和reduce任务分发给空闲的TaskTracker,这些任务并行运行,并监控任务运行的情况。如果JobTracker出了故障,JobTracker会把任务转交给另一个空闲的TaskTracker重新运行。
  HDFS和MR共同组成Hadoop分布式系统体系结构的核心。HDFS在集群上实现了分布式文件系统,MR在集群上实现了分布式计算和任务处理。HDFS在MR任务处理过程中提供了文件操作和存储等支持,MR在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成分布式集群的主要任务。
  Hadoop上的并行应用程序开发是基于MR编程框架。MR编程模型原理:利用一个输入的keyvalue对集合来产生一个输出的keyvalue对集合。MR库通过Map和Reduce两个函数来实现这个框架。用户自定义的map函数接受一个输入的keyvalue对,然后产生一个中间的keyvalue对的集合。MR把所有具有相同的key值的value结合在一起,然后传递个reduce函数。Reduce函数接受key和相关的value结合,reduce函数合并这些value值,形成一个较小的value集合。通常我们通过一个迭代器把中间的value值提供给reduce函数(迭代器的作用就是收集这些value值),这样就可以处理无法全部放在内存中的大量的value值集合了。
  流程简而言之,大数据集被分成众多小的数据集块,若干个数据集被分在集群中的一个节点进行处理并产生中间结果。单节点上的任务,map函数一行行读取数据获得数据的(k1,v1),数据进入缓存,通过map函数执行map(基于keyvalue)排序(框架会对map的输出进行排序)执行后输入(k2,v2)。每一台机器都执行同样的操作。不同机器上的(k2,v2)通过merge排序的过程(shuffle的过程可以理解成reduce前的一个过程),最后reduce合并得到,(k3,v3),输出到HDFS文件中。
  谈到reduce,在reduce之前,可以先对中间数据进行数据合并(Combine),即将中间有相同的key的对合并。Combine的过程与reduce的过程类似,但Combine是作为map任务的一部分,在执行完map函数后仅接着执行。Combine能减少中间结果keyvalue对的数目,从而降低网络流量。
  在此我向大家推荐一个大数据开发交流圈:658558542里面整理了一大份学习资料,全都是些干货,包括大数据技术入门,大数据离线处理、数据实时处理、Hadoop、Spark、Flink、推荐系统算法以及源码解析等,送给每一位大数据小伙伴,让自学更轻松。这里不止是小白聚集地,还有大牛在线解答!欢迎初学和进阶中的小伙伴一起进群学习交流,共同进步!
  Map任务的中间结果在做完Combine和Partition后,以文件的形式存于本地磁盘上。中间结果文件的位置会通知主控JobTracker,JobTracker再通知reduce任务到哪一个DataNode上去取中间结果。所有的map任务产生的中间结果均按其key值按hash函数划分成R份,R个reduce任务各自负责一段key区间。每个reduce需要向许多个map任务节点取的落在其负责的key区间内的中间结果,然后执行reduce函数,最后形成一个最终结果。有R个reduce任务,就会有R个最终结果,很多情况下这R个最终结果并不需要合并成一个最终结果,因为这R个最终结果可以作为另一个计算任务的输入,开始另一个并行计算任务。这就形成了上面图中多个输出数据片段(HDFS副本)。
  Hbase数据管理
  Hbase就是Hadoopdatabase。与传统的mysql、oracle究竟有什么差别。即列式数据与行式数据由什么区别。NoSql数据库与传统关系型数据由什么区别:
  HbaseVSOracle
  1、Hbase适合大量插入同时又有读的情况。输入一个Key获取一个value或输入一些key获得一些value。
  2、Hbase的瓶颈是硬盘传输速度。Hbase的操作,它可以往数据里面insert,也可以update一些数据,但update的实际上也是insert,只是插入一个新的时间戳的一行。Delete数据,也是insert,只是insert一行带有delete标记的一行。Hbase的所有操作都是追加插入操作。Hbase是一种日志集数据库。它的存储方式,像是日志文件一样。它是批量大量的往硬盘中写,通常都是以文件形式的读写。这个读写速度,就取决于硬盘与机器之间的传输有多快。而Oracle的瓶颈是硬盘寻道时间。它经常的操作时随机读写。要update一个数据,先要在硬盘中找到这个block,然后把它读入内存,在内存中的缓存中修改,过段时间再回写回去。由于你寻找的block不同,这就存在一个随机的读。硬盘的寻道时间主要由转速来决定的。而寻道时间,技术基本没有改变,这就形成了寻道时间瓶颈。
  3、Hbase中数据可以保存许多不同时间戳的版本(即同一数据可以复制许多不同的版本,准许数据冗余,也是优势)。数据按时间排序,因此Hbase特别适合寻找按照时间排序寻找Topn的场景。找出某个人最近浏览的消息,最近写的N篇博客,N种行为等等,因此Hbase在互联网应用非常多。
  4、Hbase的局限。只能做很简单的Keyvalue查询。它适合有高速插入,同时又有大量读的操作场景。而这种场景又很极端,并不是每一个公司都有这种需求。在一些公司,就是普通的OLTP(联机事务处理)随机读写。在这种情况下,Oracle的可靠性,系统的负责程度又比Hbase低一些。而且Hbase局限还在于它只有主键索引,因此在建模的时候就遇到了问题。比如,在一张表中,很多的列我都想做某种条件的查询。但却只能在主键上建快速查询。所以说,不能笼统的说那种技术有优势。
  5、Oracle是行式数据库,而Hbase是列式数据库。列式数据库的优势在于数据分析这种场景。数据分析与传统的OLTP的区别。数据分析,经常是以某个列作为查询条件,返回的结果也经常是某一些列,不是全部的列。在这种情况下,行式数据库反应的性能就很低效。
  行式数据库:Oracle为例,数据文件的基本组成单位:块页。块中数据是按照一行行写入的。这就存在一个问题,当我们要读一个块中的某些列的时候,不能只读这些列,必须把这个块整个的读入内存中,再把这些列的内容读出来。换句话就是:为了读表中的某些列,必须要把整个表的行全部读完,才能读到这些列。这就是行数据库最糟糕的地方。
  列式数据库:是以列作为元素存储的。同一个列的元素会挤在一个块。当要读某些列,只需要把相关的列块读到内存中,这样读的IO量就会少很多。通常,同一个列的数据元素通常格式都是相近的。这就意味着,当数据格式相近的时候,数据就可以做大幅度的压缩。所以,列式数据库在数据压缩方面有很大的优势,压缩不仅节省了存储空间,同时也节省了IO。(这一点,可利用在当数据达到百万、千万级别以后,数据查询之间的优化,提高性能,示场景而定)
  Hive数据管理
  Hive是建立在Hadoop上的数据仓库基础架构。它提供了一系列的工具,用来进行数据提取、转换、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据机制。可以把Hadoop下结构化数据文件映射为一张成Hive中的表,并提供类sql查询功能,除了不支持更新、索引和事务,sql其它功能都支持。可以将sql语句转换为MapReduce任务进行运行,作为sql到MapReduce的映射器。提供shell、JDBCODBC、Thrift、Web等接口。优点:成本低可以通过类sql语句快速实现简单的MapReduce统计。作为一个数据仓库,Hive的数据管理按照使用层次可以从元数据存储、数据存储和数据交换三个方面介绍。
  (1)元数据存储
  Hive将元数据存储在RDBMS中,有三种方式可以连接到数据库:
  内嵌模式:元数据保持在内嵌数据库的Derby,一般用于单元测试,只允许一个会话连接
  多用户模式:在本地安装Mysql,把元数据放到Mysql内
  远程模式:元数据放置在远程的Mysql数据库
  (2)数据存储
  首先,Hive没有专门的数据存储格式,也没有为数据建立索引,用于可以非常自由的组织Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,这就可以解析数据了。
  其次,Hive中所有的数据都存储在HDFS中,Hive中包含4中数据模型:Tabel、ExternalTable、Partition、Bucket。
  Table:类似与传统数据库中的Table,每一个Table在Hive中都有一个相应的目录来存储数据。例如:一个表zz,它在HDFS中的路径为:whzz,其中wh是在hivesite。xml中由指定的数据仓库的目录,所有的Table数据(不含ExternalTable)都保存在这个目录中。
  Partition:类似于传统数据库中划分列的索引。在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition数据都存储在对应的目录中。例如:zz表中包含ds和city两个Partition,则对应于ds20140214,citybeijing的HDFS子目录为:whzzds20140214cityBeijing;
  Buckets:对指定列计算的hash,根据hash值切分数据,目的是为了便于并行,每一个Buckets对应一个文件。将user列分数至32个Bucket上,首先对user列的值计算hash,比如,对应hash0的HDFS目录为:whzzds20140214cityBeijingpart00000;对应hash20的,目录为:whzzds20140214cityBeijingpart00020。
  ExternalTable指向已存在HDFS中的数据,可创建Partition。和Table在元数据组织结构相同,在实际存储上有较大差异。Table创建和数据加载过程,可以用统一语句实现,实际数据被转移到数据仓库目录中,之后对数据的访问将会直接在数据仓库的目录中完成。删除表时,表中的数据和元数据都会删除。ExternalTable只有一个过程,因为加载数据和创建表是同时完成。世界数据是存储在Location后面指定的HDFS路径中的,并不会移动到数据仓库中。
  (3)数据交换
  用户接口:包括客户端、Web界面和数据库接口
  元数据存储:通常是存储在关系数据库中的,如Mysql,Derby等
  Hadoop:用HDFS进行存储,利用MapReduce进行计算。
  关键点:Hive将元数据存储在数据库中,如Mysql、Derby中。Hive中的元数据包括表的名字、表的列和分区及其属性、表的属性(是否为外部表)、表数据所在的目录等。
  Hive的数据存储在HDFS中,大部分的查询由MapReduce完成。
  总结:
  通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍。基本涵盖了Hadoop分布式平台的所有技术核心。从体系架构到数据定义到数据存储再到数据处理,从宏观到微观的系统介绍,为Hadoop平台上大规模的数据存储和任务处理打下基础。
  感谢您的观看,如有不足之处,欢迎批评指正。
  对大数据感兴趣的同学可以关注我,并在后台私信发送关键字:大数据即可获取免费的大数据学习资料。
  知识体系已整理好(笔记,PPT,学习视频),欢迎大家来领取!

这样做真不容易作文400字一次,李英由于出了车祸而受伤住进了一家医院。上午,当老师接到李英父母的电话时,表示很遗憾和惋惜,因为今天是一学期一次的期末考试,对每个人都有很重要的作用,并且李英是一个学……秋姑娘来了六年级作文秋姑娘又悄悄来到了人间,她还带了一盒‘蜡笔’给人间带来不同颜色。看,秋姑娘来到了花园里,花园里的小草都无精打采的,他们也换了一件褐色的衣裳。小花也和小草一样,低着头好像一……有一种裁员叫毕业前段时间京东给被裁的员工发了一份毕业须知。开头写:毕业快乐!恭喜您从京东顺利毕业!感谢一路陪伴!2018年刘强东京东不会开除任何一个兄弟的声音还犹言在耳。我当时困惑难道员……精华小学开学第一天作文400字五篇在日常生活或是工作学习中,大家都不可避免地要接触到作文吧,作文是通过文字来表达一个主题意义的记叙方法。还是对作文一筹莫展吗?以下是小编为大家整理的小学开学第一天作文400字5篇……作文科学的追求科学的追求ldquo;我从来不曾有过幸运,将来也永远不指望幸运,我的最高原则是:不论对任何困难都决不屈服!rdquo;这是波兰著名科学家居里夫人说的一句话。我非常钦佩居里……妈妈,别打我想想前不久发生的事,我满肚子不高兴。那天是星期天,我一个人在家做完作业,就一边看电视,一边吃东西。那知道妈妈回来后发了火:ldquo;你看,家里被你弄得这么脏这么乱,自己……2015初三感恩生活的作文600字【第一篇】生活是五彩缤纷的,是充满喜怒哀乐的。在生活中,你会增长见识,增进了解,懂得道理hellip;hellip;每一天,都是上苍对我们的恩赐,让我们怀有一颗感恩的心,……记一次有趣的活动安溪县第十小学六年3班陈厚宇今天,我被老妈硬拉着起床,经过整理后,老妈把我带到作文班。还未进门我就在想,我们这个怪老师今天会出什么怪招。我一进门,就坐在自己的位置上,只见老师拿……20个戳心哲理小故事及感悟人生就是一场旅行,我们在这场旅行中经历,然后感悟,最终实现成长。分享20个戳心小故事,每个感悟都是让你,生活得更好的人生智慧。01hr一位老太太有两个女儿,大女儿卖草帽,……关于独立翅膀的初中作文翅膀是每个人都想拥有的,它是一个神圣的词,有了翅膀就可以飞翔在湛蓝的天空,而我就有一对独立的翅膀。下面就是小编整理的关于独立翅膀的初中作文,一起来看一下吧。儿子,你的头发……利用idnsportal绕过激活锁进入桌面可能很多小伙伴在将iPhone刷机后,遇到了激活锁,但又将Appleid和密码忘了,那改怎么办呢?利用idnsportal崩溃进入桌面步骤:首先将设备进入xm……有关音乐的作文4篇音乐,是我每天必不可少的维生素,一天不听音乐,我就感觉怅然若失。音乐不但能陶冶人的情操,还能让人全身心的放松。下面由小编为您整理出的有关音乐的作文,一起来看看吧。有关音乐的作文……
毕业旅行的作文看着同学刚洗出来的毕业旅行照片,我的嘴角不禁杨起笑容,回忆起三天两夜的毕业旅行,可真令我回味无穷呀铃!铃!铃!月色还未退尽,天空渐渐泛起鱼肚白,我的闹钟已起床,也已叫醒了我。我……只爱读书作文600字天气总是忽冷忽热的,并没有什么常性。但是哪怕是冷,也只不过是风大了些的,比起寒冷逼人的严冬,现在要温和的多。我并不习惯裹得严严实实的,只喜欢呼吸着风,安然地倾听它的声音。……关于爱心的作文爱心让生活变的更美好有人说微笑可以让生活更美好,有人说友谊可以让生活变的更美好,还有人说宽容可以让生活变的更美好。但我说爱心才能让生活变的美好。记得那天,我一个坐汽车去姥姥家。半路,上来了一……关于人物运动优美段落小丽抿着嘴,弓着腰,蹑手蹑脚地,一步一步慢慢地靠近它。靠近了,靠近了,又见她悄悄地将右手伸向蝴蝶,张开的两个手指一合,夹住了粉蝶的翅膀。小丽高兴得又蹦又跳。他弯着腰,篮球……同事要搭我的顺风车上下班,每月给我200元油费,我是否该拒绝应该拒绝。看似你同事还不错,不白蹭车,主动承担油费,实际呢?你收了他的钱,就要每天接送,风雨无阻。等于他200块钱就租了一辆上下班接送他的专车。而你同事,会觉得他没……电脑远程控制有哪几款软件比较好用?这里简单介绍2个不错的电脑远程控制软件向日葵和TeamViewer,这2个软件都可以实现电脑的远程控制,而且使用起来非常方便,下面我简单介绍一下这2个软件的安装和使用:向日葵……德国人每天只工作5小时,在德国生活是一种什么感受?三叔在德国生活了十几年,平均每天只工作3个多小时,月薪却有5000欧元,合人民币36000元,有一栋小别墅,还娶了一个皮肤白皙的德国姑娘。爷爷有三个儿子,大伯只有初中文化……游敬亭山三年级作文在现实生活或工作学习中,大家都跟作文打过交道吧,作文可分为小学作文、中学作文、大学作文(论文)。还是对作文一筹莫展吗?以下是小编帮大家整理的游敬亭山三年级作文,欢迎阅读与收藏。……重塑行业赛道容声冰箱牵头制定健康冰箱标准2月25日,海信家电旗下品牌容声冰箱联合中国家用电器研究、中国科学院、中国海洋大学等权威机构,在青岛举行了健康冰箱团体标准制定的启动仪式。中国家用电器研究院副院长曲宗峰称……剥鸡蛋比赛作文500字星期四,我们吃午饭的时候。老师给我们发了一个蛋,还说要同学们撞蛋,撞蛋后评选出蛋王,然后再进行单手剥蛋,再评选出一个剥蛋王。经过层层选拔,终于已经评出了今年的蛋王mdas……早高FENG苹果20英寸可折叠设备可能放弃实体键盘雅虎邮箱2苹果20英寸可折叠设备可能放弃实体键盘据传苹果的20英寸可折叠设备可能是MacBookPro和iPad的混合体,会放弃实体键盘,转而使用基于软件的版本。MarkGurma……遇见另一个自己作文800字初生的鸟伴着对新世界的好奇走出了鸟巢,坠入了柳条尖和浓郁的花香凑成的星星点点中,依偎着柔和的春风,学会了飞行,开拓了自己的天空。站在枝头,被泥土芬芳的气息缠绕。我被外面的……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网