一个Hadoop集群拥有多个并行的计算机。用以存储和处理大规模的数据集

Hadoop强调代码向数据迁移

要执行的程序在规模上比数据小的多,更easy移动,此外通过网络移动数据比载入执行程序更花时间,这样不如不移动数据。而是让执行程序(可执行代码)

载入到数据所在的机器上去

数据拆分后放在集群中分布,而且尽可能让计算也在同一台计算机上,最适合一次写入,多次读取的数据存储需求,在这方面它就像SQL世界的数据仓库

当你用MapReduce模型写应用程序,hadoop替你管理全部与扩展性相关的底层问题

NameNode位于HDFS主端,它指导端的I/O操作任务,NameNode是HDFS的书记员,它跟踪文件是怎样分成文件块,以及这些文件块存在哪些存储节点,监控整个分布式系统是否正常执行状态。

执行NameNode。须要大量内存和I/O资源,不会同一时候是DataNode或者TaskTracker

每一个HDFS集群的节点都会驻留一个DataNode守护进程,运行将HDFS数据块读取或写入到本地文件系统的文件里

当希望对HDFS文件读写时,文件被切割为多个快,由NameNode告知client每一个数据块驻留在哪个DataNode

Datanode不断向NameNode报告。初始化时,每一个DataNode将存储的数据块告知NameNode

Secondary NameNode(SNN)是一个用于监測HDFS集群状态的辅助进程,每一个集群仅仅有一个SNN,它独占一台server,它不会执行DataNode或TaskTracker守护进程。它不接收或记录HDFS的实时变化,它与NameNode通信,依据集群设置的时间间隔获取HDFS的元数据快照。

JobTracker是应用程序和Hadoop之间的纽带。一旦提交代码到集群上,JobTracker就会确定执行计划,它包含决定处理哪些文件,为不同的任务分配哪些节点以及监控全部任务的执行。假设任务失败,jobtracker会重新启动任务。但所分配的节点可能不同 ,同一时候受到提前定义的重试次数限制,每一个Hadoop集群仅仅有一个jobtracker。它通常执行在集群server的主节点上。监測MapReduce作业的整个执行过程

TaskTracker管理每一个任务在每一个节点的运行情况。每一个TaskTracker负责运行JobTracker分配的单项任务。尽管每一个节点上仅有一个TaskTracker,可是每一个TaskTracker能够生成多个JVM,来并行的处理很多Map或Reduce任务

TaskTracker的一个职责是持续不断的向JobTracker通信,假设JobTracker在指定时间内未收到TaskTracker的“心跳”,它会觉得该节点的TaskTracker崩溃。进而提交对应的任务到集群的其它节点

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVlZGthbmU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

单机模式,伪分布模式。全分布模式之间切换,使用符号链接而不是不断改动xml配置文件,须要为每种模式生成一个配置文件夹并存放对应的xml文件

然后能够使用linux命令 In -s conf.cluster conf  在不同配置之间切换。这个技巧有助于暂时将一个节点从集群中分离出来。

从而通过伪分布模式调试一个节点的MapReduce程序。但要确保这些模式在HDFS上有不同的文件存储位置。并在改配置之前停止全部守护进程

配完后使用jps查看,发现总是有一些没有启动,很郁闷,在多番研究后发现有两个原因,一个是在/tmp文件夹下有曾经使用2.02版本号留下的文件没有删除。二个是由于port被占用了

解决方法:

一.删除/tmp下的全部文件

  1. [root@localhost hadoop]# su -
  2. [root@localhost ~]# cd /tmp/
  3. [root@localhost tmp]# ls
  4. hadoop-shen                        hsperfdata_shen
  5. hadoop-shen-datanode.pid           Jetty_0_0_0_0_50030_job____yn7qmk
  6. hadoop-shen-jobtracker.pid         Jetty_0_0_0_0_50070_hdfs____w2cu08
  7. hadoop-shen-namenode.pid           Jetty_0_0_0_0_50075_datanode____hwtdwq
  8. hadoop-shen-secondarynamenode.pid  Jetty_0_0_0_0_50090_secondary____y6aanv
  9. hadoop-shen-tasktracker.pid
  10. [root@localhost tmp]# rm -rf *

二.对占用的port进行释放

  1. [shen@localhost hadoop]$ lsof -i:9000
  2. [shen@localhost hadoop]$ lsof -i:50070
  3. [shen@localhost hadoop]$ lsof -i:50030
  4. [shen@localhost hadoop]$ lsof -i:50075
  5. [shen@localhost hadoop]$ lsof -i:50060
  6. COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  7. java    4280 shen   79u  IPv6  51108      0t0  TCP *:50060 (LISTEN)
  8. [shen@localhost hadoop]$ kill 4280
  9. [shen@localhost hadoop]$ lsof -i:50020
  10. [shen@localhost hadoop]$ lsof -i:50010

如上图,就是由于50060port被占用,所以无法启动TaskTracker。kill后一切正常


  1. [shen@localhost hadoop]$ jps
  2. 13510 DataNode
  3. 13656 SecondaryNameNode
  4. 13918 TaskTracker
  5. 13750 JobTracker
  6. 13362 NameNode
  7. 13994 Jps

看到这个这是无比激动啊。


附port说明:


默认port    设置位置                                                                                                 描写叙述信息
9000          namenode                                                                                               交互port
8020          namenode                                                                                               RPC交互port

8021          JT RPC                                                                                                   交互port

50030        mapred.job.tracker.http.address JobTracker administrative web GUI     JOBTRACKER的HTTPserver和port

50070        dfs.http.address NameNode administrative web GUI                              NAMENODE的HTTPserver和port

50010        dfs.datanode.address DataNode control port                                          DATANODE控制端口,主要用于DATANODE初始化时向NAMENODE提出注冊和应答请求

50020        dfs.datanode.ipc.address DataNode IPC port, used for block transfer    DATANODE的RPCserver地址和端口

50060        mapred.task.tracker.http.address Per TaskTracker web interface           TASKTRACKER的HTTPserver和port

50075        dfs.datanode.http.address Per DataNode web interface                          DATANODE的HTTPserver和port

50090        dfs.secondary.http.address Per secondary NameNode web interface     辅助DATANODE的HTTPserver和port

三.对namenode进行格式化

假设有改动过namenode dir 位置,须要确保位置不存在,并对/tmp文件夹下文件进行删除。不然会总是Format abort

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVlZGthbmU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


Hadoop学习;測试;启动bug;secondary合并edits到fsimage的更多相关文章

  1. hadoop基准測试

    写測试hadoop jarhadoop-0.20.2-test.jar TestDFSIO -write -nrFiles 10 -fileSize 1000 ----- TestDFSIO ---- ...

  2. 公布一个基于CSDN Code的学习測试仓库

    使用CSDN Code代码托管平台有一段时间了,今天新建立了一个公开的仓库https://code.csdn.net/smstong/learngit/tree/master,供大家測试合并请求等协作 ...

  3. Hadoop学习1--解决启动过程中的问题

    方法:http://www.aboutyun.com/thread-12694-1-1.html http://www.linuxidc.com/topicnews.aspx?tid=13 http: ...

  4. 泛泰A820L (高通MSM8660 cpu) 3.4内核的CM10.1(Android 4.2.2) 測试版第二版

    欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam  (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...

  5. Hadoop学习(2)-- HDFS

    随着信息技术的高度发展,数据量越来越多,当一个操作系统管辖范围存储不下时,只能将数据分配到更多的磁盘中存储,但是数据分散在多台磁盘上非常不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,因此诞 ...

  6. Web安全測试二步走

    Web安全測试时一个比較复杂的过程,软件測试人员能够在当中做一些简单的測试,例如以下: Web安全測试也应该遵循尽早測试的原则,在进行功能測试的时候(就应该运行以下的測试Checklist安全測试场景 ...

  7. Testin云測试破7000万次:崩溃成90%手游应用质量难题

    Testin云測试破7000万次:崩溃成90%手游应用质量难题 2014/11/13 · Testin · 业界资讯 11月13日.全球最大的移动游戏.应用真机和用户云測试平台Testin云測宣布,已 ...

  8. iOS单元測试:Specta + Expecta + OCMock + OHHTTPStubs + KIF

    框架选择 參考这篇选型文章,http://zixun.github.io/blog/2015/04/11/iosdan-yuan-ce-shi-xi-lie-dan-yuan-ce-shi-kuang ...

  9. 【Android开发-6】了解内情,我们须要一些调试和測试手段

    前言:人生不可能十全十美,总会有些遗憾存在,经历过遗憾,我们才懂的什么是生活. 程序也一样.追求完美,就必定会有经历bug存在的时候. 经历过不断的bug磨练.我们技术才会不断的成长.对于调试bug, ...

随机推荐

  1. 操作服务器及MySQL数据库可以使其远程链接

    转自原文操作服务器及MySQL数据库可以使其远程链接 一般情况分三个地方准备,MySQL数据库,防火墙,还有你的服务器主机的准备 操作系统为centos6.5.其他系统大致差不多. 1:在服务器中安装 ...

  2. QTP自带订票实现循环执行,參数化和将异常提示信息输出

    做这个样例主要是为了积累一些较基础的知识,以便日后可參考学习 这个样例是一个订票的C/Sclient程序 一.业务需求: 1.实现异常和正常数据登录窗体,系统对数据进行校验 2.登录成功后.进行订票业 ...

  3. WebService概述和CXF入门小程序

    一. 什么是WedService? WebService不是框架, 甚至不是一种技术, 而是一种跨平台,跨语言的规范, WebService的出现是为了解决这种需求场景: 不同平台, 不同语言所编写的 ...

  4. MapReduce编程之倒排索引

    任务要求: //输入文件格式 18661629496 110 13107702446 110 1234567 120 2345678 120 987654 110 2897839274 1866162 ...

  5. 谷歌开源可视化工具Facets,将用于人+AI协作项目研究——无非就是一个用于特征工程探索的绘图工具集,pandas可以做的

    见:http://www.infoq.com/cn/news/2017/07/goole-sight-facets-ai https://github.com/PAIR-code/facets/blo ...

  6. 利用DBMS_SQLTUNE优化SQL

    DBMS_SQLTUNE优化SQL是在oracle10g才出来的新特性,使用它能很大程度上方便对sql的分析和优化.执行DBMS_SQLTUNE包进行sql优化需要有advisor的权限: stat& ...

  7. 如何用php实现qq登陆网站

    PHP网站入QQ互联,使用QQ号码登录网站. 平台接口系列文章 PHP网站入QQ互联,使用QQ号码登录网站 PHP网站接入人人网,授权登陆 php facebook api网站接入facebook 1 ...

  8. Laravel异常处理

    Laravel异常处理 标签(空格分隔): php 自定义异常类 <?php namespace App\Exceptions; use Throwable; use Exception; cl ...

  9. ROS-Gazebo文件标签解读

    前言:Gazebo是一个三维机器人仿真器,它是独立的软件,支持ROS. 标签 功能 <gazebo> 设置Gazebo仿真的参数 <mu1>, <mu2> 设置摩擦 ...

  10. CentOS 6.5下部署日志服务器 Rsyslog+LogAnalyzer+MySQL

    简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所 ...