作业服务器宕机
服务器宕机 时间:2021-03-01 阅读:(
)
实战Hadoop——开启通向云计算的捷径2这是一个信息爆炸的时代,互联网上的信息正在以几何级数的速度增长.
在这个大背景下,消耗CPU最多的计算逐渐从"提升软件本身性能"方面转移到信息处理方面.
与此同时,摩尔定律似乎也不再像以前那么准确地发挥作用了.
在这样的严峻形势下,各大厂商面临着极大的挑战——他们需要从TB乃至PB级的数据中挖掘出有用的信息,并对这些海量的数据进行快捷、高效的处理.
在这段特殊时期,Google公司以MapReduce为基石,结合GFS、Bigtable逐步发展成为全球互联网企业的领头羊.
然而,出于技术保密的原因,Google公司并没有开源其MapReduce的实现细节,这使得人们无法深入了解和认识它.
就在这时,一头神秘的大象——Hadoop从天而降,它的开源给人们带来了新的希望.
1.
1初识神象要认识Hadoop这头神象,便不得不提它的"父亲"DougCutting,以及它的"近亲"Nutch和Lucene.
"父亲"DougCutting本人不仅是Nutch的创始人,还是Lucene项目的创始人,他就像希腊神话中的"盗火人"普罗米修斯,把高深莫测的搜索技术形成产品贡献给普罗大众.
"近亲"Lucene是一个Java高性能全文索引引擎工具包,它可以方便地嵌入到各种实际应用中实现全文索引搜索功能.
而Nutch则是一个应用程序,它是一个以Lucene为基础实现的搜索引擎应用,Lucene为Nutch提供了文本搜索和索引的API.
与此同时,Nutch不仅提供了搜索功能,而且还提供了数据抓取的功能.
此外,Nutch中还包含一个分布式文件系统用于存储数据.
2003和2004年,Google先后发表了《TheGoogleFileSystem》、《MapReduce:SimplifiedDataProcessingonLargeClusters》两篇论文.
这两个创新性的思路点燃了DougCutting和MikeCafarella的斗志,他们花了2年的业余时间实现了DFS(分布式文件系统)和MapReduce机制.
这次改第1章神奇的大象——Hadoop3造使Nutch可以在20台机器上支持几亿的数据规模,其编程和运维的简易性也得到了大幅提升,但系统的吞吐能力与一个真正的网页搜索系统仍有不小的差距.
2006年是开源社区如火如荼的一年,当Yahoo!
在考虑构建一个高度利用硬件资源、并且维护和开发都非常简易的软件架构时,DougCutting和他的"孩子"Nutch进入了Yahoo!
的视野.
DougCutting和Yahoo!
各有千秋,一方具有超强的技术前瞻性和实战经验,而另一方能提供世界上数一数二的数据、硬件和人力资源.
就这样,双方一拍即合,在同年1月DougCutting正式加入了Yahoo!
,2月Hadoop这头小象从Nutch中分离出来,并且正式成为Apache组织中一个专注于DFS和MapReduce的开源项目.
作为一个分布式系统基础架构,Hadoop使用户可以在不了解分布式底层细节的情况下,充分利用集群的威力,开发分布式程序,实现高速运算和存储.
Hadoop这个名字[5]不是一个缩写,它是一个虚构的名字.
该项目的创建者,DougCutting如此解释Hadoop的得名:"这个名字是我孩子给一个棕黄色的填充大象玩具命名的.
我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处.
小孩子是这方面的高手.
Google就是由小孩命名的.
"五年的时间里,昔日的小象历练成了一头日渐成熟和强大的神象.
2007年1月Hadoop单cluster集群已达900个节点;2008年4月[1],依托拥有910个节点的群集,Hadoop在209秒内完成了对1TB数据的排序,击败了前一年的297秒冠军;2009年4月,取得了在1400个节点的集群上对500G数据排序仅用时59秒的成绩.
如今的它不仅仅致力于应对网络流量和科学研究,而且还涉猎搜索引擎、广告优化、机器学习等领域,并成为IT产业里优秀的大数据平台.
实战Hadoop——开启通向云计算的捷径41.
2Hadoop初体验1.
2.
1了解Hadoop的构架Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多小的工作单元,并把这些单元放到任何集群节点上执行.
在MapReduce中,一个准备提交执行的应用程序称为"作业(job)",而从一个作业划分出的、运行于各计算节点的工作单元称为"任务(task)".
此外,Hadoop提供的分布式文件系统(HDFS)主要负责各个节点上的数据存储,并实现了高吞吐率的数据读写.
在分布式存储和分布式计算方面,Hadoop都使用主/从(Master/Slave)架构.
在一个配置完整的集群上想让Hadoop这头大象奔跑起来,需要在集群中运行一系列后台(deamon)程序.
不同的后台程序扮演不同的角色,这些角色由NameNode、DataNode、SecondaryNameNode、JobTracker、TaskTracker组成.
其中NameNode、SecondaryNameNode、JobTracker运行在Master节点上(如图1-1所示),而在每个Slave节点上,部署一个DataNode和TaskTracker,以便这个Slave服务器上运行的数据处理程序能尽可能直接处理本机的数据.
对Master节点需要特别说明的是,在小集群中,SecondaryNameNode可以属于某个从节点;在大型集群中,NameNode和JobTracker被分别部署在两台服务器上.
下面介绍各个角色在Hadoop中的作用[3].
1.
NameNodeNameNode是HDFS的守护程序,负责记录文件是如何分割成数据块第1章神奇的大象——Hadoop5的,以及这些数据块分别被存储到哪些数据节点上.
它的主要功能是对内存及I/O进行集中管理.
图1-1Hadoop主从节点结构分解一般来说,NameNode所在的服务器不存储任何用户信息或执行计算任务,以避免这些程序降低服务器的性能.
如果其它从服务器因出现软硬件的问题而宕机,Hadoop集群仍旧可以继续运转,或者快速重启.
但是,由于NameNode是Hadoop集群中的一个单点,一旦NameNode服务器宕机,整个系统将无法运行.
2.
DataNode集群中的每个从服务器都运行一个DataNode后台程序,这个后台程序负责把HDFS数据块读写到本地的文件系统.
当需要通过客户端读/写某个数据时,先由NameNode告诉客户端去哪个DataNode进行具体的读/写操作,然后,客户端直接与这个DataNode服务器上的后台程序进行通信,并且对相关的数据块进行读/写操作.
实战Hadoop——开启通向云计算的捷径63.
SecondaryNameNodeSecondaryNameNode是一个用来监控HDFS状态的辅助后台程序.
就像NameNode一样,每个集群都有一个SecondaryNameNode,并且部署在一台单独的服务器上.
SecondaryNameNode不同于NameNode,它不接收或记录任何实时的数据变化,但是,它会与NameNode进行通信,以便定期地保存HDFS元数据的快照.
由于NameNode是单点的,通过SecondaryNameNode的快照功能,可以将NameNode的宕机时间和数据损失降低到最小.
同时,如果NameNode发生问题,SecondaryNameNode可以及时地作为备用NameNode使用.
4.
JobTrackerJobTracker后台程序用来连接应用程序与Hadoop.
用户代码提交到集群以后,由JobTracker决定哪个文件将被处理,并且为不同的task分配节点.
同时,它还监控所有运行的task,一旦某个task失败了,JobTracker就会自动重新开启这个task,在大多数情况下这个task会被放在不同的节点上.
当然,具体运行情况取决于重启的预设值.
每个Hadoop集群只有一个JobTracker,一般运行在集群的Master节点上.
5.
TaskTrackerTaskTracker与负责存储数据的DataNode相结合,其处理结构上也遵循主/从架构.
JobTracker位于主节点,统领MapReduce工作;而TaskTrackers位于从节点,独立管理各自的task.
每个TaskTracker负责独立执行具体的task,而JobTracker负责分配task.
虽然每个从节点上仅有唯一的一个TaskTracker,但是每个TaskTracker可以产生多个Java虚拟机(JVM),用于并行处理多个map以及reduce任务.
TaskTracker的一个重要职责就是与JobTracker交互.
如果JobTracker无法准时地获取TaskTracker提交的信息,JobTracker就判定TaskTracker已经崩溃,并将任务分配给其他节点处理.
第1章神奇的大象——Hadoop71.
2.
2查看Hadoop活动通过"http://(Masternode的主机名/IP):50030"命令链接到JobTracker,可以直观地查看Hadoop执行任务时的情况.
1.
JobTracker页面图1-2给出通过http://UbuntuMaster:50030访问JobTracker主页的截图.
页面最上方给出了Hadoop的安装细节,读者可以了解Hadoop的版本号、编译时间以及JobTracker的当前状态(在本例中,状态是running)和启动时间.
集群信息(ClusterSummary)部分提供的是关于集群的概要信息.
包括:当前正在集群上运行的map和reduce的数量、作业提交的数量、集群的负载状况、集群中可用的map和reduce任务数("MapTaskCapacity"和"ReduceTaskCapacity"),每个节点平均可用的任务数、列入黑名单的TaskTrackers数等信息.
调度信息(SchedulingInformation)显示正在运行的作业调度器的相关信息(此处是"默认值"),单击"default"可以查看作业队列(显示的是正在运行、完成和失败的作业).
如果任务还没有完成,那么每部分都会有一个作业表,表里每行显示出作业的ID、作业拥有者、作业名(使用JobConf的setJobName()方法设置的mapred.
job.
name属性)以及进度信息.
接下来的三部分依次给出了有关作业运行(RunningJobs)、结束(CompletedJobs)以及失败(FailedJobs)的信息,读者可通过这三部分了解作业运行状态.
页面的最后给出了一些链接信息,它们指向了JobTracker日志以及JobTracker历史信息,这些信息是永久存储的.
2.
作业页面单击图1-2中的作业ID,可以进入如图1-3所示的作业页面.
页面最上实战Hadoop——开启通向云计算的捷径8方是作业的摘要,包括:作业的拥有者、作业名和作业运行时间.
作业文件是整理过的作业配置文件,包括作业运行中有效的所有属性和值.
如果不确定某个属性的值,可以单击该属性查看文件.
图1-2JobTracker页面图1-3作业页面第1章神奇的大象——Hadoop9当作业在运行时,可通过作业页面监视作业进度,页面信息会定期自动更新.
摘要信息下方的表格展示map和reduce进度.
NumTasks显示该作业map和reduce的总数(图中的作业示例执行了两个map任务和一个reduce任务).
其他列显示的是这些任务的状态:Pending(挂起)、Running(运行)、Complete(完成)和Killed(失败).
最后一列显示的是一个作业所有map和reduce任务中失败和中止的任务尝试(TaskAttempt)总数(TaskAttempt标记为Killed的原因可能是:它们是推测执行的副本,TaskAttempt运行的TaskTracker已结束,或这些TaskAttempt已被用户中止).
该页的中间部分是用来给作业计数的表.
在作业运行时,表中的这些信息都会定期地动态更新.
该页面的后半部分显示每个任务进度的完成图(如图1-4所示).
其中,Reduce完成图可以分为三个阶段:copy(map输出的数据传输到reduce的TaskTracker需要通过copy来实现)、sort(在reduce输入时,对数据进行sort)以及reduce(reduce函数运行产生最后输出结果).
图1-4任务进度图此外,通过"http://(Masternode的主机名/IP):50070"可以链接到NameNode,对HDFS进行检测.
另外,在NameNode和JobTrackerWeb页实战Hadoop——开启通向云计算的捷径10面内,还含有大量链接,可以获取更多有关Hadoop配置和操作的其它信息(包括运行日志),读者需要时可以自行查看更多的细节.
1.
3Hadoop族群Hadoop之所以在本书中称为神象并不仅仅因为它自身很强大,更重要的是以它为代表的整个Hadoop族群都不可小觑!
下面简单介绍一下Hadoop的家族成员.
1.
Hadoop子项目HadoopCommon:就是原来的HadoopCore,是整个Hadoop项目的核心部分,为Hadoop各子项目提供各种工具,比如配置文件和日志操作等.
其他的Hadoop子项目都是在HadoopCommon的基础上发展的.
HDFS:向应用程序提供高吞吐量访问的分布式文件系统,是GFS的开源实现(详见第2章介绍).
MapReduce:大型数据的分布式并行编程模型和程序执行框架,Google的MapReduce的开源实现(详见第3章介绍).
2.
Hadoop相关项目Avro:DougCutting主持的RPC项目,有点类似于Google的protobuf和Facebook的thrift.
它作为Hadoop的RPC(远程过程调用模块),使Hadoop的RPC模块通信速度更快,数据结构更紧凑.
Cassandra:是一套开源分布式NoSQL数据库系统.
它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与第1章神奇的大象——Hadoop11AmazonDynamo的完全分布式的架构于一身(详见第8章介绍).
Chukwa:一个基于Hadoop用来管理大型分布式系统的数据采集系统(详见第9章介绍).
Hama:为科学计算提供的一个基于整体同步并行计算技术的分布式计算框架.
HBase:是ApacheHadoop项目的一个重要部分,是一个开源的、基于列存储模型的分布式数据库(详见第4章介绍).
Hive:提供数据摘要和查询功能的数据仓库(详见第6章介绍).
Pig:是在MapReduce上构建的一种高级的数据流语言,是Sawzall的开源实现.
Sawzall是一种建立在MapReduce基础上的领域语言,它的程序控制结构(如if、while等)与C语言无异,但它的领域语言语义使它完成相同功能的代码比MapReduce的C++代码简洁得多(详见第7章介绍).
ZooKeeper:用于解决分布式系统中一致性问题,是Chubby的开源实现(详见第10章介绍).
DMIT.io是成立于2018年的一家国外主机商,提供VPS主机和独立服务器租用,数据中心包括中国香港、美国洛杉矶和日本等,其中日本VPS是新上的节点,基于KVM架构,国际线路,1Gbps带宽,同时提供月付循环8折优惠码,或者年付一次性5折优惠码,优惠后最低每月8.72美元或者首年65.4美元起,支持使用PayPal或者支付宝等付款方式。下面列出部分日本VPS主机配置信息,价格以月付为例。CPU:...
对于如今的云服务商的竞争着实很激烈,我们可以看到国内国外服务商的各种内卷,使得我们很多个人服务商压力还是比较大的。我们看到这几年的服务商变动还是比较大的,很多新服务商坚持不超过三个月,有的是多个品牌同步进行然后分别的跑路赚一波走人。对于我们用户来说,便宜的服务商固然可以试试,但是如果是不确定的,建议月付或者主力业务尽量的还是注意备份。HostYun 最近几个月还是比较活跃的,在前面也有多次介绍到商...
如今我们无论线上还是线下选择商品的时候是不是习惯问问是不是有优惠活动,如果有的话会加速购买欲望。同样的,如果我们有准备选择Vultr商家云服务器的时候,也会问问是不是有Vultr优惠码或者优惠券这类。确实,目前Vultr商家有一些时候会有针对新注册用户赠送一定的优惠券活动。那就定期抽点时间在这篇文章中专门整理最新可用Vultr优惠码和商家促销活动。不过需要令我们老用户失望的,至少近五年我们看到Vu...
服务器宕机为你推荐
伪装微信地理位置如何用伪装微信地理位置?博客外链怎么用博客发外链?人人时光机怎么查看人人网的注册时间?如何建立自己的网站如何建立自己的网站开机滚动条如何关闭开机滚动条?系统分析员如何成为系统分析师?系统分析员考系统分析员有什么好处?网站优化方案几种常用的网站优化方法gbk编码表gbk内码表怎么看发邮件怎么发发邮件怎么发?
域名空间代理 100m网站空间 重庆虚拟主机 已备案域名 美国服务器租用 php主机租用 海外服务器 免费cdn加速 密码泄露 警告本网站美国保护 福建天翼加速 坐公交投2700元 165邮箱 域名评估 新家坡 卡巴斯基试用版 新世界服务器 上海电信测速 个人免费邮箱 成都主机托管 更多