Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发M

近期为了分析国内航空旅游业常见安全漏洞,想到了用大数据来分析,其实数据也不大,只是生产项目没有使用Hadoop,因此这里实际使用一次。

先看一下通过hadoop分析后的结果吧,最终通过hadoop分析国内典型航空旅游业厂商的常见安全漏洞个数的比例效果如下:

Linux上搭建Hadoop2.6.3集群以及WIN7通过Eclipse开发M

第一次正式使用Hadoop,肯定会遇到非常多的问题,参考了很多网络上的文章,我把自己从0搭建到使用的过程记录下来,方便以后自己或其他人参考。

之前简单用过storm,适合实时数据的处理。hadoop更偏向静态数据的处理,网上很多hadoop的教程,但有的版本比较老:比如有的是属于hadoop1.x时代,有的本机是Ubuntu上安装,有的介绍理论,有的直接介绍代码demo。我的电脑是WIN7,打算在测试服务器linux Red Hat系列下搭建集群,然后通过本机win7开发并联调MapReduce程序。由于内容比较多,这篇博文主要写理论和Hadoop伪集群/集群安装过程以及Eclipse的插件安装,后面有时间再写一篇Eclipse开发的DEMO以及如何通过hadoop分析的航空旅游业典型安全漏洞。

下面主要写以下部分,理论知识描述可能会有误,主要是方便以后自己或别人参考:

一、Hadoop版本介绍

二、Hadoop名词理论介绍

三、SSH无密码登陆Linux

四、Hadoop单机安装

五、Hadoop单机模式运行

六、Hadoop伪分布式部署

七、Hadoop集群部署

八、Eclipse插件安装

九、安装调试过程中我遇到的问题

一、Hadoop版本介绍

Hadoop有1.x和2.x两个版本,参考别人官方一点的说法:Hadoop 1.x由一个分布式文件系统HDFS和一个离线计算框架MapReduce组成,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成;而Hadoop 2.x则包含一个支持NameNode横向扩展的HDFS,一个资源管理系统YARN和一个运行在YARN上的离线计算框架MapReduce,YARN它将JobTracker中的资源管理和作业控制功能分开,分别由组件ResourceManager和ApplicationMaster实现,其中,ResourceManager负责所有应用程序的资源分配,而ApplicationMaster仅负责管理一个应用程序。

他们的架构做了较大调整,内部细节感兴趣可以去研究,但对开发人员最直观看到的就是配置文件的参数名称不一样了。

二、Hadoop名词理论介绍

系统角色:ResourceManager ,ApplicationMaster , NodeManager

应用名称:Job

组建接口:Mapper , Reducer

HDFS:Namenode ,Datanode

Hadop1.x时代系统角色有JobTracker和TaskTracker的概念,Hadoop2.X时代用Yarn替换了这两个角色。TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过 heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。

ResourceManager 是一个中心的服务,它做的事情是调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况

NodeManager 功能比较专一,就是负责 Container 状态的维护,并向 ResourceManager 保持心跳。

ApplicationMaster 负责一个 Job 生命周期内的所有工作,类似老的框架中 JobTracker。但注意每一个 Job(不是每一种)都有一个 ApplicationMaster,它可以运行在 ResourceManager 以外的机器上。

NameNode可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的Meta-data存储在内存中,这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等。

Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。

hadoop系统中,master/slaves的一般对应关系是:
master---NameNode;ResourceManager ;
slaves---Datanode;NodeManager
在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”,而从一个作业划分出的运行于各个计算节点的工作单元称为“任务(task)”。

Mapper任务运行时,它把输入文件切分成行并把每一行提供给可执行文件进程的标准输入传到map函数。 同时,mapper收集可执行文件进程标准输出的内容,并把收到的每一行内容转化成key/value对,作为mapper的输出。 其中key的值为距离文件第0个字符的距离,value为该行的值。

Reducer类中reduce函数接受Map函数组装的key/value,其中key为Map输出的键,values是各个键对应的数据集合。

三、SSH无密码登陆Linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d95e7b8a3c8953a66d5bc495a2a61601.html