内容简介:自从进入信息社会以来,IT技术影响着人们生活的每一个角落。在经过了数次技术革新后,大数据技术已经潜移默化的成为了各行各业的必修课。而聊到大数据技术,当然是少不了Hadoop。Hadoop是Apache下一个开源子项目,实现了一种分布式系统基础架构。而Hadoop框架最核心的设计就是:HDFS和MapReduce。
自从进入信息社会以来,IT技术影响着人们生活的每一个角落。在经过了数次技术革新后,大数据技术已经潜移默化的成为了各行各业的必修课。
而聊到大数据技术,当然是少不了Hadoop。
Hadoop是Apache下一个开源子项目,实现了一种分布式系统基础架构。而Hadoop框架最核心的设计就是:HDFS和MapReduce。
要想了解Hadoop,就必须知道HDFS和MapReduce是什么。
HDFS,全称Hadoop File System,是一个可扩展的分布式文件系统,但其在设计上有如下特点使其区别于其他系统,从而保证了它本身的优势:
1、支持大文件存储。
HDFS能够支持以T为单位的单文件存储,从而确定了其应对大数据应用的基础。
2、文件分块存储。
HDFS上的文件是切割成小块存储到集群的不同节点之上,这样在读取文件时可以做到从多个机器上并行读取,从而提高读取的效率。
3、流式数据访问。
一次写入多次读写,这种模式跟传统文件不同,它不支持在线改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。用户如需修改原先的文件内容,则要先将文件下载到本地,再将线上文件删除,最后在本地修改好后进行重新上传,以次来达到修改的目的。
4、廉价的硬件设备。
HDFS的设计是能够运行在大量的廉价设备上,通过集群系统的容错功能保证集群的正常运转。
5、数据备份。
HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。
HDFS可运行在廉价的硬件设备上,又能够存储海量数据,还有备份机制不怕机器节点故障,故而能为大量的用户提供性能较高的服务。
而MapReduce则是一种编程模型,用于大规模数据集的并行运算,“Map”和“Reduce”是从函数式编程语言和矢量编程语言中借鉴的。编程人员使用此平台编写程序,可以直接运行在分布式系统上。
Hadoop中MapReduce程序运行包括3个步骤,Map(主要分解并行的任务)、Shuffle(排序和压缩,主要是提高Reduce的效率)和Reduce(将处理结果汇总)。
Map
Map以并行方式对输入的文件进行操作,其第一步就是把文件集分割成多个子集。如果单个的文件大到影响查找效率,那么它将会被分割成一些小的文件。
Reduce
当一个Reduce任务开始时,其输入数据分散在各个节点上Map的输出文件里。在分布式的模式下,需要先把这样文件复制到本地系统中。当所有的数据都被复制到Reduce任务所在的机器上,Reduce任务会把这些文件合并到一个文件中。然后将这个文件合并分类,使得相同Key的键值对可以排在一起。接下来的Reduce操作就相对简单了,顺序地读入这个文件,将key(键)所对应的values传给Reduce方法后再读取一个key。最后,输出是由每个Reduce任务的输出文件组成。
研发云中的eHadoop由HDFS和MapReduce及以下9个组件构成:
1、Ganglia
Ganglia是一个开源集群监视项目,主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
2、Nagios
Nagios是一款网络监视工具,能有效监控Windows、 Linux 和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
3、YARN——资源管理系统
MapReduce任务流程是从客户端提交任务开始,直到任务运行结束的一系列流程,MapReduce运行时任务调度由YARN提供,所以需要MapReduce相关服务和YARN相关服务进行协同工作。
4、HControl
HControl是BC-Hadoop及大云大数据套件的管理软件,主要作用是能够自动化部署、启停、配置、监控整个集群
5、ZooKeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
6、Oozie
Oozie是用于Hadoop平台的一种工作流调度引擎,统一调度hadoop系统中常见的mr任务启动hdfs操作、 shell 调度、hive操作等,能完成大部分hadoop任务处理。
7、hive
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 sql 查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
8、pig
Pig是一种数据流语言和运行环境,用于检索非常大的数据集。为大型数据集的处理提供了一个更高层次的抽象。
9、Spark
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
研发云中的eHadoop通过云计算技术整合IT资源,为用户提供可伸缩,易管理的大数据处理集群,用户可以在几分钟内轻松的创建一个大数据处理集群,并通过页面管理多种类型的计算作业,以及管理分布式文件系统和云存储。
其具有以下特点:
快速部署
用户可以随时申请并迅速使用资源,eHadoop从申请到生成仅需数分钟时间。企业使用eHadoop,实现了低成本、缩短数据处理时间的目的。其可以利用eHadoop的分布式运行框架迅速搭建起自己的分布式运算系统,亦可以用eHadoop的分布式文件系统,快速搭建自己的分布式存储服务,从而在大数据中发掘数据价值。
稳定可靠
eHadoop的服务稳定,并为用户提供多种监控方式,方便用户了解集群状态。
按需使用
用户可以根据业务系统的需求随时订购多种规格的eHadoop系统,系统对其进行扩容并支持按需计费。
所以说想要吃透大数据,Hadoop这一关必须得过!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 再说 Swift namespace
- 再说Python面向对象的三大特性
- 不要再说虚拟 DOM 有多快了
- Elasticsearch 是一把梭,用起来再说
- 看了这个别再说找工作难
- 别再说Serializable性能不如Parcelable啦
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。