novakr 2015-04-02T03:26:35+00:00 jr.zengjr@gmail.com hadoop2.6新特性 2015-04-02T11:26:26+00:00 novakr /2015/04/02/mapreduce-2.6 hadoop2.6新特性

http://hadoop.apache.org/docs/r2.6.0/

  • Common

    KMS
    TRACING

  • HDFS

    加密解密
    归档

  • YARN

    节点标签
    长任务
    回滚升级

]]>
mapreduce过程的理解 2015-04-01T14:44:24+00:00 novakr /2015/04/01/mapreduce-1 mapreduce过程的理解

]]>
spark集群安装布署 2015-03-14T23:51:48+00:00 novakr /2015/03/14/spark-install spark集群安装布署
  1. JDK安装配置
  2. ssh无密码登录
  3. hadoop集群安装配置
  4. scala安装配置
  5. spark安装配置

前三步都都已经设置过了,现在只要进行scala和spark的安装

scala安装

下载scala

安装验证如下

[zengjr@hadoop-zengjr spark]$ ls
scala-2.10.4.tgz  scala-docs-2.10.4.tgz
[zengjr@hadoop-zengjr spark]$ tar zxvf scala-2.10.4.tgz -C /opt/modules/    

##scala
export SCALA_HOME=/opt/modules/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
"/etc/profile" 98L, 2252C written                                                                                                                    
[root@hadoop-zengjr scala-2.10.4]# exit
exit
[zengjr@hadoop-zengjr scala-2.10.4]$ source /etc/profile
[zengjr@hadoop-zengjr scala-2.10.4]$ scala -version
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL

分发内容到其它机器,修改其它机器环境

scp -r scala-2.10.4/ zengjr@hadoop-slave01.xiaoqee.com:/opt/modules/
scp -r scala-2.10.4/ zengjr@hadoop-slave02.xiaoqee.com:/opt/modules/

spark安装

下载spark

scp -r spark-1.2.1/ zengjr@hadoop-slave01.xiaoqee.com:/opt/modules/
scp -r spark-1.2.1/ zengjr@hadoop-slave02.xiaoqee.com:/opt/modules/

[zengjr@hadoop-zengjr modules]$ jps
5267 JournalNode
4751 QuorumPeerMain
5452 DataNode
5964 DFSZKFailoverController
8138 NodeManager
6122 NameNode
8313 Jps

spark编译

文档: http://spark.apache.org/docs/1.2.1/building-spark.html

编译

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"  

mvn  -Phadoop-2.4 -Dhadoop.version=2.5.0 -Dprotobuf.version=2.5.0 -Pyarn -Phive -Phive-0.13.1  -Pspark-ganglia-lgpl  -Phive-thriftserver  -DskipTests package  

成功后结果:

Finished in 1 ms
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Spark Project Parent POM .......................... SUCCESS [6:31.580s]
[INFO] Spark Project Networking .......................... SUCCESS [4:02.924s]
[INFO] Spark Project Shuffle Streaming Service ........... SUCCESS [13.186s]
[INFO] Spark Project Core ................................ SUCCESS [12:32.042s]
[INFO] Spark Project Bagel ............................... SUCCESS [58.480s]
[INFO] Spark Project GraphX .............................. SUCCESS [3:12.488s]
[INFO] Spark Project Streaming ........................... SUCCESS [3:32.578s]
[INFO] Spark Project Catalyst ............................ SUCCESS [3:45.477s]
[INFO] Spark Project SQL ................................. SUCCESS [4:15.451s]
[INFO] Spark Project ML Library .......................... SUCCESS [5:29.892s]
[INFO] Spark Project Tools ............................... SUCCESS [30.299s]
[INFO] Spark Project Hive ................................ SUCCESS [6:03.313s]
[INFO] Spark Project REPL ................................ SUCCESS [1:46.258s]
[INFO] Spark Project YARN Parent POM ..................... SUCCESS [9.942s]
[INFO] Spark Project YARN Stable API ..................... SUCCESS [1:43.722s]
[INFO] Spark Project Hive Thrift Server .................. SUCCESS [1:45.940s]
[INFO] Spark Ganglia Integration ......................... SUCCESS [18.260s]
[INFO] Spark Project Assembly ............................ SUCCESS [1:20.399s]
[INFO] Spark Project External Twitter .................... SUCCESS [45.683s]
[INFO] Spark Project External Flume Sink ................. SUCCESS [1:13.772s]
[INFO] Spark Project External Flume ...................... SUCCESS [1:00.997s]
[INFO] Spark Project External MQTT ....................... SUCCESS [13:44.861s]
[INFO] Spark Project External ZeroMQ ..................... SUCCESS [44.883s]
[INFO] Spark Project External Kafka ...................... SUCCESS [1:13.872s]
[INFO] Spark Project Examples ............................ SUCCESS [4:39.398s]
[INFO] Spark Project YARN Shuffle Service ................ SUCCESS [10.114s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:21:48.551s
[INFO] Finished at: Sat Feb 14 16:04:13 EST 2015
[INFO] Final Memory: 92M/583M
[INFO] ------------------------------------------------------------------------
[zengjr@hadoop-zengjr spark-1.2.1]$     

可以在目录/opt/modules/spark-1.2.1/assembly/target/scala-2.10有这个包spark-assembly-1.2.1-hadoop2.5.0.jar

通过make-distribution.sh打成部署包 修改make-distribution.sh,如下:

VERSION=1.2.1
SPARK_HADOOP=2.5.0
SPARK_HIVE=1
#VERSION=$(mvn help:evaluate -Dexpression=project.version 2>/dev/null | grep -v "INFO" | tail -n 1)
#SPARK_HADOOP_VERSION=$(mvn help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
#    | grep -v "INFO"\
#    | tail -n 1)
#SPARK_HIVE=$(mvn help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
#    | grep -v "INFO"\
#    | fgrep --count "<id>hive</id>";\
#    # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
#    # because we use "set -o pipefail"
#    echo -n)

打包语句:

./make-distribution.sh --tgz -Phadoop-2.4 -Dhadoop.version=2.5.0 -Dprotobuf.version=2.5.0 -Pyarn -Phive -Phive-0.13.1  -Pspark-ganglia-lgpl  -Phive-thriftserver  -DskipTests package
##结果如下:
Finished in 1 ms
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Spark Project Parent POM .......................... SUCCESS [18.583s]
[INFO] Spark Project Networking .......................... SUCCESS [24.560s]
[INFO] Spark Project Shuffle Streaming Service ........... SUCCESS [15.287s]
[INFO] Spark Project Core ................................ SUCCESS [8:52.458s]
[INFO] Spark Project Bagel ............................... SUCCESS [58.349s]
[INFO] Spark Project GraphX .............................. SUCCESS [2:34.262s]
[INFO] Spark Project Streaming ........................... SUCCESS [3:57.053s]
[INFO] Spark Project Catalyst ............................ SUCCESS [3:52.841s]
[INFO] Spark Project SQL ................................. SUCCESS [4:07.589s]
[INFO] Spark Project ML Library .......................... SUCCESS [4:43.135s]
[INFO] Spark Project Tools ............................... SUCCESS [29.357s]
[INFO] Spark Project Hive ................................ SUCCESS [4:39.562s]
[INFO] Spark Project REPL ................................ SUCCESS [1:36.797s]
[INFO] Spark Project YARN Parent POM ..................... SUCCESS [6.771s]
[INFO] Spark Project YARN Stable API ..................... SUCCESS [1:42.630s]
[INFO] Spark Project Hive Thrift Server .................. SUCCESS [59.735s]
[INFO] Spark Ganglia Integration ......................... SUCCESS [11.546s]
[INFO] Spark Project Assembly ............................ SUCCESS [2:23.891s]
[INFO] Spark Project External Twitter .................... SUCCESS [54.180s]
[INFO] Spark Project External Flume Sink ................. SUCCESS [47.781s]
[INFO] Spark Project External Flume ...................... SUCCESS [1:08.434s]
[INFO] Spark Project External MQTT ....................... SUCCESS [55.674s]
[INFO] Spark Project External ZeroMQ ..................... SUCCESS [55.100s]
[INFO] Spark Project External Kafka ...................... SUCCESS [1:04.037s]
[INFO] Spark Project Examples ............................ SUCCESS [3:12.068s]
[INFO] Spark Project YARN Shuffle Service ................ SUCCESS [10.701s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 51:24.572s
[INFO] Finished at: Sat Feb 14 19:11:11 EST 2015
[INFO] Final Memory: 78M/510M
[INFO] ------------------------------------------------------------------------
[zengjr@hadoop-zengjr spark-1.2.1]$ ls
assembly  CONTRIBUTING.md  dist    examples  lib_managed           network  python     sbt                    sql        tox.ini
bagel     core             docker  external  LICENSE               NOTICE   README.md  scalastyle-config.xml  streaming  yarn
bin       data             docs    extras    make-distribution.sh  pom.xml  repl       scalastyle-output.xml  target
conf      dev              ec2     graphx    mllib                 project  sbin       spark-1.2.1-bin-.tgz   tools

生成spark-1.2.1-bin-.tgz文件

解压部署包

[zengjr@hadoop-zengjr spark-1.2.1]$ tar -zxvf spark-1.2.1-bin-.tgz -C /opt/modules/
[zengjr@hadoop-zengjr modules]$ rm -rf spark-1.2.1
[zengjr@hadoop-zengjr modules]$ mv spark-1.2.1-bin-/ spark-1.2.1
[zengjr@hadoop-zengjr modules]$ ls
apache-maven-3.0.5  findbugs-1.3.9  hadoop-2.5.0  hadoop-2.5.0-src  jdk1.7.0_67  protobuf-2.5.0  scala-2.10.4  spark-1.2.1  spark-1.2.1_bak  zookeeper
[zengjr@hadoop-zengjr modules]$ cd spark-1.2.1
[zengjr@hadoop-zengjr spark-1.2.1]$ ls
bin  conf  data  ec2  examples  lib  LICENSE  NOTICE  python  README.md  RELEASE  sbin
[zengjr@hadoop-zengjr spark-1.2.1]$ cd conf/
[zengjr@hadoop-zengjr conf]$ ls
fairscheduler.xml.template  log4j.properties.template  metrics.properties.template  slaves.template  spark-defaults.conf.template  spark-env.sh.template
##修改配置文件名称
[zengjr@hadoop-zengjr conf]$ mv spark-env.sh.template spark-env.sh
[zengjr@hadoop-zengjr conf]$ mv spark-defaults.conf.template spark-defaults.conf

可以看到spark-env.sh文件中详细的注释,locally,cluster,YARN,standalone各种运行模式,如下:

# Options read when launching programs locally with 
...
# Options read by executors and drivers running inside the cluster
...
# Options read in YARN client mode
...
# Options for the daemons used in the standalone deploy mode
...
# Generic options for the daemons used in the standalone deploy mode

测试loca模式,修改spark-env.sh:

####################
HADOOP_CONF_DIR=/opt/modules/hadoop-2.5.0/etc/hadoop
JAVA_HOME=/opt/modules/jdk1.7.0_67
SPARK_LOCAL_IP=localhost
####################

测试:

[zengjr@hadoop-zengjr spark-1.2.1]$ bin/spark-shell --master local
scala> sc.textFile("file:////opt/modules/spark-1.2.1/README.md").filter(_.contains("Spark")).count
15/02/14 23:07:24 INFO storage.MemoryStore: ensureFreeSpace(170332) called with curMem=0, maxMem=280248975
15/02/14 23:07:24 INFO storage.MemoryStore: Block broadcast_0 stored as values in memory (estimated size 166.3 KB, free 267.1 MB)
15/02/14 23:07:24 INFO storage.MemoryStore: ensureFreeSpace(23947) called with curMem=170332, maxMem=280248975
15/02/14 23:07:24 INFO storage.MemoryStore: Block broadcast_0_piece0 stored as bytes in memory (estimated size 23.4 KB, free 267.1 MB)
15/02/14 23:07:24 INFO storage.BlockManagerInfo: Added broadcast_0_piece0 in memory on localhost:57886 (size: 23.4 KB, free: 267.2 MB)
15/02/14 23:07:24 INFO storage.BlockManagerMaster: Updated info of block broadcast_0_piece0
15/02/14 23:07:24 INFO spark.SparkContext: Created broadcast 0 from textFile at <console>:13
15/02/14 23:07:25 INFO mapred.FileInputFormat: Total input paths to process : 1
15/02/14 23:07:25 INFO spark.SparkContext: Starting job: count at <console>:13
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Got job 0 (count at <console>:13) with 1 output partitions (allowLocal=false)
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Final stage: Stage 0(count at <console>:13)
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Parents of final stage: List()
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Missing parents: List()
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Submitting Stage 0 (FilteredRDD[2] at filter at <console>:13), which has no missing parents
15/02/14 23:07:25 INFO storage.MemoryStore: ensureFreeSpace(2752) called with curMem=194279, maxMem=280248975
15/02/14 23:07:25 INFO storage.MemoryStore: Block broadcast_1 stored as values in memory (estimated size 2.7 KB, free 267.1 MB)
15/02/14 23:07:25 INFO storage.MemoryStore: ensureFreeSpace(1978) called with curMem=197031, maxMem=280248975
15/02/14 23:07:25 INFO storage.MemoryStore: Block broadcast_1_piece0 stored as bytes in memory (estimated size 1978.0 B, free 267.1 MB)
15/02/14 23:07:25 INFO storage.BlockManagerInfo: Added broadcast_1_piece0 in memory on localhost:57886 (size: 1978.0 B, free: 267.2 MB)
15/02/14 23:07:25 INFO storage.BlockManagerMaster: Updated info of block broadcast_1_piece0
15/02/14 23:07:25 INFO spark.SparkContext: Created broadcast 1 from broadcast at DAGScheduler.scala:838
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Submitting 1 missing tasks from Stage 0 (FilteredRDD[2] at filter at <console>:13)
15/02/14 23:07:25 INFO scheduler.TaskSchedulerImpl: Adding task set 0.0 with 1 tasks
15/02/14 23:07:25 INFO scheduler.TaskSetManager: Starting task 0.0 in stage 0.0 (TID 0, localhost, PROCESS_LOCAL, 1303 bytes)
15/02/14 23:07:25 INFO executor.Executor: Running task 0.0 in stage 0.0 (TID 0)
15/02/14 23:07:25 INFO rdd.HadoopRDD: Input split: file:/opt/modules/spark-1.2.1/README.md:0+3629
15/02/14 23:07:25 INFO Configuration.deprecation: mapred.tip.id is deprecated. Instead, use mapreduce.task.id
15/02/14 23:07:25 INFO Configuration.deprecation: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
15/02/14 23:07:25 INFO Configuration.deprecation: mapred.task.is.map is deprecated. Instead, use mapreduce.task.ismap
15/02/14 23:07:25 INFO Configuration.deprecation: mapred.task.partition is deprecated. Instead, use mapreduce.task.partition
15/02/14 23:07:25 INFO Configuration.deprecation: mapred.job.id is deprecated. Instead, use mapreduce.job.id
15/02/14 23:07:25 INFO executor.Executor: Finished task 0.0 in stage 0.0 (TID 0). 1757 bytes result sent to driver
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Stage 0 (count at <console>:13) finished in 0.161 s
15/02/14 23:07:25 INFO scheduler.TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 131 ms on localhost (1/1)
15/02/14 23:07:25 INFO scheduler.TaskSchedulerImpl: Removed TaskSet 0.0, whose tasks have all completed, from pool 
15/02/14 23:07:25 INFO scheduler.DAGScheduler: Job 0 finished: count at <console>:13, took 0.417815 s
res0: Long = 19

测试standalone模式,修改spark-env.sh:http://spark.apache.org/docs/latest/spark-standalone.html

####################public
HADOOP_CONF_DIR=/opt/modules/hadoop-2.5.0/etc/hadoop
JAVA_HOME=/opt/modules/jdk1.7.0_67
##############local
#SPARK_LOCAL_IP=localhost
####################standalone
SPARK_MASTER_IP=localhost
SPARK_MASTER_PORT=7077
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1G
SPARK_WORKER_INSTANCES=1
####################

修改spark-default.conf

 spark.master                     spark://localhost:7077

启动master:

./sbin/start-master.sh 

启动worker:

./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077

或者

sbin/start-all.sh   

验证:

http://hadoop-zengjr.xiaoqee.com:8080/

#spark-shell测试
./bin/spark-shell --master spark://localhost:7077
#测试:
sc.textFile("file:////opt/modules/spark-1.2.1/README.md").filter(_.contains("Spark")).count

测试yarn模式,关闭standalone,修改spark-env.sh

####################public
HADOOP_CONF_DIR=/opt/modules/hadoop-2.5.0/etc/hadoop
JAVA_HOME=/opt/modules/jdk1.7.0_67
##############local
#SPARK_LOCAL_IP=localhost
####################standalone
#SPARK_MASTER_IP=localhost
#SPARK_MASTER_PORT=7077
#SPARK_WORKER_CORES=1
#SPARK_WORKER_MEMORY=1G
#SPARK_WORKER_INSTANCES=1
####################YARN
SPARK_EXECUTOR_INSTANCES=1
SPARK_EXECUTOR_CORES=1
SPARK_EXECUTOR_MEMORY=1G
SPARK_DRIVER_MEMORY=512M
####################    

修改spark-default.conf

 spark.master                     yarn-client

启动:

bin/spark-shell
#测试:
sc.textFile("file:////opt/modules/spark-1.2.1/README.md").filter(_.contains("Spark")).count

在网页上http://hadoop-slave01.xiaoqee.com:8088/cluster

]]>
hadoop HA NFS方式 2015-03-13T23:34:50+00:00 novakr /2015/03/13/hadoop-ha-3 hadoop HA NFS方式

]]>
hadoop HA QJM实际操作 2015-03-13T14:32:41+00:00 novakr /2015/03/13/hadoop-ha-2 hadoop HA QJM实际操作

hadoop hdfs QJM方式实现HA

QJM方式实现的HA官方地址: http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

Q-->Quorum 分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法

J-->Journal 日志

M-->Manager

QJM基于Paxos算法实现的HDFS HA方案

生产环境中在格式化namenode后一定要记住设置dfs.namenode.support.allow.format属性为false

QJM优点:

QJM配置

  1. NameNode HA基本配置(core-site.xml,hdfs-site.xml)
    • Active NameNode与Standby NameNode地址配置
    • NameNode与DataNode本地路径配置
    • HDFS Namespace访问配置
    • 隔离fencing配置(配置两节点之间的互相SSH无密钥登录)
  2. QJM配置(hdfs-site.xml)
    • QJM管理编辑日志
    • 编辑日志存储目录
  3. 手动故障转移(无需配置)

QJM详细配置http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html#Configuration_details

机器规划配置

QJM之core-site.xml配置

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop-cluster</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.5.0/data/tmp</value>
    </property>

</configuration>

QJM之hdfs-site.xml配置

<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>hadoop-cluster</value>
    </property>
    <property>
        <name>dfs.ha.namenodes.hadoop-cluster</name>
        <value>nn128,nn129</value>
    </property>

    <property>
        <name>dfs.namenode.rpc-address.hadoop-cluster.nn128</name>
        <value>hadoop-zengjr.xiaoqee.com:8020</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.hadoop-cluster.nn129</name>
        <value>hadoop-slave01.xiaoqee.com:8020</value>
    </property>

    <property>
        <name>dfs.namenode.servicerpc-address.hadoop-cluster.nn128</name>
        <value>hadoop-zengjr.xiaoqee.com:8022</value>
    </property>
    <property>
        <name>dfs.namenode.servicerpc-address.hadoop-cluster.nn129</name>
        <value>hadoop-slave01.xiaoqee.com:8022</value>
    </property>

    <property>
        <name>dfs.namenode.http-address.hadoop-cluster.nn128</name>
        <value>hadoop-zengjr.xiaoqee.com:50070</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.hadoop-cluster.nn129</name>
        <value>hadoop-slave01.xiaoqee.com:50070</value>
    </property>

    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://hadoop-zengjr.xiaoqee.com:8485;hadoop-slave01.xiaoqee.com:8485;hadoop-slave02.xiaoqee.com:8485/hadoop-cluster</value>
    </property>

    <property>
        <name>dfs.client.failover.proxy.provider.hadoop-cluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>

    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/home/zengjr/.ssh/id_rsa</value>
    </property>

    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/modules/hadoop-2.5.0/data/dfs/jn</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///opt/modules/hadoop-2.5.0/data/dfs/nn/name</value>
    </property>

    <property>
        <name>dfs.namenode.edits.dir</name>
        <value>file:///opt/modules/hadoop-2.5.0/data/dfs/nn/edits</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///opt/modules/hadoop-2.5.0/data/dfs/nn/dn</value>
    </property>

    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>

</configuration>

QJM之slaves配置

hadoop-zengjr.xiaoqee.com
hadoop-slave02.xiaoqee.com
hadoop-slave01.xiaoqee.com

QJM之配置发送

scp -r etc/hadoop/ zengjr@hadoop-slave01.xiaoqee.com:/opt/modules/hadoop-2.5.0/etc/
scp -r etc/hadoop/ zengjr@hadoop-slave02.xiaoqee.com:/opt/modules/hadoop-2.5.0/etc/

注意这里要设置机器之间的无密钥登录,相关设置请看前面相关博文

QJM 集群启动

  1. 在各个JournalNode节点上启动journalnode服务

     sbin/hadoop-daemon.sh start journalnode
    
  2. 在[nn1]上对其进行格式化,并启动

     bin/hdfs namenode -format
     sbin/hadoop-daemon.sh start namenode
    
  3. [nn2]上,同步nn1的元数据信息

     bin/hdfs namenode -bootstrapStandby
    
  4. 启动[nn2]:

     sbin/hadoop-daemon.sh start namenode
    
  5. 将[nn1]切换为Active

     bin/hdfs haadmin -transitionToActive nn128
    
  6. 在[nn1]上启动所有datanode

     sbin/hadoop-daemon.sh start datanode
    

检查启动

第一步检查:

[zengjr@hadoop-zengjr hadoop-2.5.0]$ sbin/hadoop-daemon.sh start journalnode
starting journalnode, logging to /opt/modules/hadoop-2.5.0/logs/hadoop-zengjr-journalnode-hadoop-zengjr.xiaoqee.com.out
[zengjr@hadoop-zengjr hadoop-2.5.0]$ jps
5557 JournalNode
5603 Jps

第二步检查:

[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs namenode -format
14/12/31 21:35:40 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = hadoop-zengjr.xiaoqee.com/192.168.29.128
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.5.0
STARTUP_MSG:   classpath = /opt/modules/hadoop-2.5.0/etc/hadoop:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/apacheds-kerberos-codec-2.0.0-M15.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-configuration-1.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/slf4j-api-1.7.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-compress-1.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/xz-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/hamcrest-core-1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-lang-2.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/guava-11.0.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jersey-json-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-cli-1.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/hadoop-auth-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/hadoop-annotations-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jetty-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/api-util-1.0.0-M20.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/zookeeper-3.4.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/mockito-all-1.8.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/httpcore-4.2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jaxb-impl-2.2.3-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-collections-3.2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/apacheds-i18n-2.0.0-M15.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jsch-0.1.42.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jets3t-0.9.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-math3-3.1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-codec-1.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-el-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-beanutils-1.7.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/java-xmlbuilder-0.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-jaxrs-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/junit-4.11.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jettison-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jasper-runtime-5.5.23.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-xc-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jaxb-api-2.2.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/api-asn1-api-1.0.0-M20.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-digester-1.8.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jetty-util-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jsp-api-2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-net-3.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/paranamer-2.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/servlet-api-2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/snappy-java-1.0.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jsr305-1.3.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-logging-1.1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/xmlenc-0.52.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/stax-api-1.0-2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-httpclient-3.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/avro-1.7.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/activation-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jasper-compiler-5.5.23.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/httpclient-4.2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/hadoop-nfs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/hadoop-common-2.5.0-tests.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/hadoop-common-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-lang-2.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/guava-11.0.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-daemon-1.0.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-cli-1.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jetty-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-codec-1.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-el-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jasper-runtime-5.5.23.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jetty-util-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jsp-api-2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/servlet-api-2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jsr305-1.3.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-logging-1.1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/xmlenc-0.52.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/hadoop-hdfs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/hadoop-hdfs-nfs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/hadoop-hdfs-2.5.0-tests.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/guice-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/javax.inject-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-compress-1.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/xz-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-lang-2.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/guava-11.0.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-json-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-cli-1.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jetty-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/zookeeper-3.4.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/guice-servlet-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-guice-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jaxb-impl-2.2.3-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-collections-3.2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-codec-1.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-jaxrs-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jettison-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-xc-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jaxb-api-2.2.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jetty-util-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/servlet-api-2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/leveldbjni-all-1.8.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jline-0.9.94.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jsr305-1.3.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-logging-1.1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/stax-api-1.0-2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-client-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-httpclient-3.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/activation-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/aopalliance-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-common-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-web-proxy-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-api-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-resourcemanager-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-tests-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-common-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-applications-unmanaged-am-launcher-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-nodemanager-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-client-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-applicationhistoryservice-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/guice-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/javax.inject-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/commons-compress-1.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/xz-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/hamcrest-core-1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/hadoop-annotations-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/guice-servlet-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jersey-guice-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/junit-4.11.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/paranamer-2.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/leveldbjni-all-1.8.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/snappy-java-1.0.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/avro-1.7.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/aopalliance-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.5.0-tests.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-plugins-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-app-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-shuffle-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.5.0.jar:/contrib/capacity-scheduler/*.jar
STARTUP_MSG:   build = http://svn.apache.org/repos/asf/hadoop/common -r 1616291; compiled by 'jenkins' on 2014-08-06T17:31Z
STARTUP_MSG:   java = 1.7.0_67
************************************************************/
14/12/31 21:35:40 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
14/12/31 21:35:40 INFO namenode.NameNode: createNameNode [-format]
Formatting using clusterid: CID-a5698cd1-64c9-463a-8737-7c7bb8f8c6cc
14/12/31 21:35:41 INFO namenode.FSNamesystem: fsLock is fair:true
14/12/31 21:35:42 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000
14/12/31 21:35:42 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true
14/12/31 21:35:42 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.000
14/12/31 21:35:42 INFO blockmanagement.BlockManager: The block deletion will start around 2014 Dec 31 21:35:42
14/12/31 21:35:42 INFO util.GSet: Computing capacity for map BlocksMap
14/12/31 21:35:42 INFO util.GSet: VM type       = 64-bit
14/12/31 21:35:42 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB
14/12/31 21:35:42 INFO util.GSet: capacity      = 2^21 = 2097152 entries
14/12/31 21:35:42 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false
14/12/31 21:35:42 INFO blockmanagement.BlockManager: defaultReplication         = 3
14/12/31 21:35:42 INFO blockmanagement.BlockManager: maxReplication             = 512
14/12/31 21:35:42 INFO blockmanagement.BlockManager: minReplication             = 1
14/12/31 21:35:42 INFO blockmanagement.BlockManager: maxReplicationStreams      = 2
14/12/31 21:35:42 INFO blockmanagement.BlockManager: shouldCheckForEnoughRacks  = false
14/12/31 21:35:42 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000
14/12/31 21:35:42 INFO blockmanagement.BlockManager: encryptDataTransfer        = false
14/12/31 21:35:42 INFO blockmanagement.BlockManager: maxNumBlocksToLog          = 1000
14/12/31 21:35:42 INFO namenode.FSNamesystem: fsOwner             = zengjr (auth:SIMPLE)
14/12/31 21:35:42 INFO namenode.FSNamesystem: supergroup          = supergroup
14/12/31 21:35:42 INFO namenode.FSNamesystem: isPermissionEnabled = false
14/12/31 21:35:42 INFO namenode.FSNamesystem: Determined nameservice ID: hadoop-cluster
14/12/31 21:35:42 INFO namenode.FSNamesystem: HA Enabled: true
14/12/31 21:35:42 INFO namenode.FSNamesystem: Append Enabled: true
14/12/31 21:35:42 INFO util.GSet: Computing capacity for map INodeMap
14/12/31 21:35:42 INFO util.GSet: VM type       = 64-bit
14/12/31 21:35:42 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB
14/12/31 21:35:42 INFO util.GSet: capacity      = 2^20 = 1048576 entries
14/12/31 21:35:42 INFO namenode.NameNode: Caching file names occuring more than 10 times
14/12/31 21:35:42 INFO util.GSet: Computing capacity for map cachedBlocks
14/12/31 21:35:42 INFO util.GSet: VM type       = 64-bit
14/12/31 21:35:42 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB
14/12/31 21:35:42 INFO util.GSet: capacity      = 2^18 = 262144 entries
14/12/31 21:35:42 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033
14/12/31 21:35:42 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0
14/12/31 21:35:42 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension     = 30000
14/12/31 21:35:42 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
14/12/31 21:35:42 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
14/12/31 21:35:42 INFO util.GSet: Computing capacity for map NameNodeRetryCache
14/12/31 21:35:42 INFO util.GSet: VM type       = 64-bit
14/12/31 21:35:42 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB
14/12/31 21:35:42 INFO util.GSet: capacity      = 2^15 = 32768 entries
14/12/31 21:35:42 INFO namenode.NNConf: ACLs enabled? false
14/12/31 21:35:42 INFO namenode.NNConf: XAttrs enabled? true
14/12/31 21:35:42 INFO namenode.NNConf: Maximum size of an xattr: 16384
14/12/31 21:35:43 WARN ssl.FileBasedKeyStoresFactory: The property 'ssl.client.truststore.location' has not been set, no TrustStore will be loaded
14/12/31 21:35:44 INFO namenode.FSImage: Allocated new BlockPoolId: BP-186794310-192.168.29.128-1420079744554
14/12/31 21:35:44 INFO common.Storage: Storage directory /opt/modules/hadoop-2.5.0/data/dfs/nn/name has been successfully formatted.
14/12/31 21:35:44 INFO common.Storage: Storage directory /opt/modules/hadoop-2.5.0/data/dfs/nn/edits has been successfully formatted.
14/12/31 21:35:45 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
14/12/31 21:35:45 INFO util.ExitUtil: Exiting with status 0
14/12/31 21:35:45 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop-zengjr.xiaoqee.com/192.168.29.128
************************************************************/
[zengjr@hadoop-zengjr hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode
starting namenode, logging to /opt/modules/hadoop-2.5.0/logs/hadoop-zengjr-namenode-hadoop-zengjr.xiaoqee.com.out
[zengjr@hadoop-zengjr hadoop-2.5.0]$ jps
5753 Jps
5557 JournalNode
5670 NameNode   

第三,四步检查:

[zengjr@hadoop-slave01 hadoop-2.5.0]$ bin/hdfs namenode -bootstrapStandby
14/12/31 21:36:24 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = hadoop-slave01.xiaoqee.com/192.168.29.129
STARTUP_MSG:   args = [-bootstrapStandby]
STARTUP_MSG:   version = 2.5.0
STARTUP_MSG:   classpath = /opt/modules/hadoop-2.5.0/etc/hadoop:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/apacheds-kerberos-codec-2.0.0-M15.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-configuration-1.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/slf4j-api-1.7.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-compress-1.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/xz-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/hamcrest-core-1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-lang-2.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/guava-11.0.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jersey-json-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-cli-1.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/hadoop-auth-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/hadoop-annotations-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jetty-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/api-util-1.0.0-M20.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/zookeeper-3.4.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/mockito-all-1.8.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/httpcore-4.2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jaxb-impl-2.2.3-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-collections-3.2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/apacheds-i18n-2.0.0-M15.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jsch-0.1.42.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jets3t-0.9.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-math3-3.1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-codec-1.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-el-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-beanutils-1.7.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/java-xmlbuilder-0.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-jaxrs-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/junit-4.11.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jettison-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jasper-runtime-5.5.23.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-xc-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jaxb-api-2.2.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/api-asn1-api-1.0.0-M20.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-digester-1.8.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jetty-util-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jsp-api-2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-net-3.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/paranamer-2.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/servlet-api-2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/snappy-java-1.0.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jsr305-1.3.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-logging-1.1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/xmlenc-0.52.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/stax-api-1.0-2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/commons-httpclient-3.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/avro-1.7.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/activation-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/jasper-compiler-5.5.23.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/lib/httpclient-4.2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/hadoop-nfs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/hadoop-common-2.5.0-tests.jar:/opt/modules/hadoop-2.5.0/share/hadoop/common/hadoop-common-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-lang-2.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/guava-11.0.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-daemon-1.0.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-cli-1.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jetty-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-codec-1.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-el-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jasper-runtime-5.5.23.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jetty-util-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jsp-api-2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/servlet-api-2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/jsr305-1.3.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/commons-logging-1.1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/xmlenc-0.52.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/hadoop-hdfs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/hadoop-hdfs-nfs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/hadoop-hdfs-2.5.0-tests.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/guice-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/javax.inject-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-compress-1.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/xz-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-lang-2.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/guava-11.0.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-json-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-cli-1.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jetty-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/zookeeper-3.4.6.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/guice-servlet-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-guice-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jaxb-impl-2.2.3-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-collections-3.2.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-codec-1.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-jaxrs-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jettison-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-xc-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jaxb-api-2.2.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jetty-util-6.1.26.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/servlet-api-2.5.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/leveldbjni-all-1.8.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jline-0.9.94.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jsr305-1.3.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-logging-1.1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/stax-api-1.0-2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/jersey-client-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/commons-httpclient-3.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/activation-1.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/lib/aopalliance-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-common-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-web-proxy-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-api-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-resourcemanager-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-tests-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-common-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-applications-unmanaged-am-launcher-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-nodemanager-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-client-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/yarn/hadoop-yarn-server-applicationhistoryservice-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/asm-3.2.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jersey-core-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/guice-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/javax.inject-1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/commons-compress-1.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/xz-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/hamcrest-core-1.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/hadoop-annotations-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jackson-mapper-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/guice-servlet-3.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jersey-guice-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/junit-4.11.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/netty-3.6.2.Final.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jackson-core-asl-1.9.13.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/jersey-server-1.9.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/paranamer-2.3.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/commons-io-2.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/leveldbjni-all-1.8.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/snappy-java-1.0.4.1.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/protobuf-java-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/avro-1.7.4.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/log4j-1.2.17.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/lib/aopalliance-1.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.5.0-tests.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-plugins-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-app-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-shuffle-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-2.5.0.jar:/opt/modules/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.5.0.jar:/contrib/capacity-scheduler/*.jar
STARTUP_MSG:   build = http://svn.apache.org/repos/asf/hadoop/common -r 1616291; compiled by 'jenkins' on 2014-08-06T17:31Z
STARTUP_MSG:   java = 1.7.0_67
************************************************************/
14/12/31 21:36:24 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
14/12/31 21:36:24 INFO namenode.NameNode: createNameNode [-bootstrapStandby]
=====================================================
About to bootstrap Standby ID nn129 from:
           Nameservice ID: hadoop-cluster
        Other Namenode ID: nn128
  Other NN's HTTP address: http://hadoop-zengjr.xiaoqee.com:50070
  Other NN's IPC  address: hadoop-zengjr.xiaoqee.com/192.168.29.128:8022
             Namespace ID: 148756489
            Block pool ID: BP-186794310-192.168.29.128-1420079744554
               Cluster ID: CID-a5698cd1-64c9-463a-8737-7c7bb8f8c6cc
           Layout version: -57
=====================================================
14/12/31 21:36:27 INFO common.Storage: Storage directory /opt/modules/hadoop-2.5.0/data/dfs/nn/name has been successfully formatted.
14/12/31 21:36:27 INFO common.Storage: Storage directory /opt/modules/hadoop-2.5.0/data/dfs/nn/edits has been successfully formatted.
14/12/31 21:36:28 WARN ssl.FileBasedKeyStoresFactory: The property 'ssl.client.truststore.location' has not been set, no TrustStore will be loaded
14/12/31 21:36:28 WARN ssl.FileBasedKeyStoresFactory: The property 'ssl.client.truststore.location' has not been set, no TrustStore will be loaded
14/12/31 21:36:28 INFO namenode.TransferFsImage: Opening connection to http://hadoop-zengjr.xiaoqee.com:50070/imagetransfer?getimage=1&txid=0&storageInfo=-57:148756489:0:CID-a5698cd1-64c9-463a-8737-7c7bb8f8c6cc
14/12/31 21:36:28 INFO namenode.TransferFsImage: Image Transfer timeout configured to 60000 milliseconds
14/12/31 21:36:29 INFO namenode.TransferFsImage: Transfer took 0.02s at 0.00 KB/s
14/12/31 21:36:29 INFO namenode.TransferFsImage: Downloaded file fsimage.ckpt_0000000000000000000 size 352 bytes.
14/12/31 21:36:29 INFO util.ExitUtil: Exiting with status 0
14/12/31 21:36:29 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop-slave01.xiaoqee.com/192.168.29.129
************************************************************/
[zengjr@hadoop-slave01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode
starting namenode, logging to /opt/modules/hadoop-2.5.0/logs/hadoop-zengjr-namenode-hadoop-slave01.xiaoqee.com.out
[zengjr@hadoop-slave01 hadoop-2.5.0]$ jps
5137 NameNode
5220 Jps
5031 JournalNode

第五步没有进行的时候,两个namenode都是standby,进行第五步后就nn128就变成active

测试集群

[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs dfs -ls /
[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs dfs -mkdir -p /user/zengjr/tmp/conf
[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs dfs -put etc/hadoop/*.xml /user/zengjr/tmp/conf

[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs dfs -ls -R /
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:57 /user
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:57 /user/zengjr
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:57 /user/zengjr/tmp
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:58 /user/zengjr/tmp/conf
-rw-r--r--   3 zengjr supergroup       3589 2014-12-31 21:58 /user/zengjr/tmp/conf/capacity-scheduler.xml
-rw-r--r--   3 zengjr supergroup       1008 2014-12-31 21:58 /user/zengjr/tmp/conf/core-site.xml
-rw-r--r--   3 zengjr supergroup       9201 2014-12-31 21:58 /user/zengjr/tmp/conf/hadoop-policy.xml
-rw-r--r--   3 zengjr supergroup       4217 2014-12-31 21:58 /user/zengjr/tmp/conf/hdfs-site.xml
-rw-r--r--   3 zengjr supergroup        620 2014-12-31 21:58 /user/zengjr/tmp/conf/httpfs-site.xml
-rw-r--r--   3 zengjr supergroup       1235 2014-12-31 21:58 /user/zengjr/tmp/conf/mapred-site.xml
-rw-r--r--   3 zengjr supergroup       1215 2014-12-31 21:58 /user/zengjr/tmp/conf/yarn-site.xml

[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs haadmin -transitionToStandby nn128
[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs haadmin -transitionToActive nn129
[zengjr@hadoop-zengjr hadoop-2.5.0]$ bin/hdfs dfs -ls -R /
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:57 /user
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:57 /user/zengjr
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:57 /user/zengjr/tmp
drwxr-xr-x   - zengjr supergroup          0 2014-12-31 21:58 /user/zengjr/tmp/conf
-rw-r--r--   3 zengjr supergroup       3589 2014-12-31 21:58 /user/zengjr/tmp/conf/capacity-scheduler.xml
-rw-r--r--   3 zengjr supergroup       1008 2014-12-31 21:58 /user/zengjr/tmp/conf/core-site.xml
-rw-r--r--   3 zengjr supergroup       9201 2014-12-31 21:58 /user/zengjr/tmp/conf/hadoop-policy.xml
-rw-r--r--   3 zengjr supergroup       4217 2014-12-31 21:58 /user/zengjr/tmp/conf/hdfs-site.xml
-rw-r--r--   3 zengjr supergroup        620 2014-12-31 21:58 /user/zengjr/tmp/conf/httpfs-site.xml
-rw-r--r--   3 zengjr supergroup       1235 2014-12-31 21:58 /user/zengjr/tmp/conf/mapred-site.xml
-rw-r--r--   3 zengjr supergroup       1215 2014-12-31 21:58 /user/zengjr/tmp/conf/yarn-site.xml

QJM自动故障转移

QJM官方文档地址http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html#Automatic_Failover

  1. 启动zookeeper服务,停止namenode,datanode,journalnode服务

     [zengjr@hadoop-slave01 zookeeper]$ ./bin/zkServer.sh start 
     JMX enabled by default
     Using config: /opt/modules/zookeeper/bin/../conf/zoo.cfg
     Starting zookeeper ... STARTED
    
     [zengjr@hadoop-slave01 zookeeper]$ cd ../hadoop-2.5.0
     [zengjr@hadoop-slave01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh stop datanode
     stopping datanode
     [zengjr@hadoop-slave01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh stop journalnode
     stopping journalnode
     [zengjr@hadoop-slave01 hadoop-2.5.0]$ sbin/hadoop-daemon.sh stop namenode
     stopping namenode
     [zengjr@hadoop-slave01 hadoop-2.5.0]$ jps
     2491 QuorumPeerMain
     2635 Jps
    
  2. hdfs-site.xml添加配置

     <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
      </property>
    
  3. core-site.xml添加配置

     <property>
        <name>ha.zookeeper.quorum</name>
        <value>hadoop-zengjr.xiaoqee.com:2181,hadoop-slave02.xiaoqee.com:2181,hadoop-slave01.xiaoqee.com:2181</value>
      </property>
    
     #同步配置到其它机器上
    
     scp -r etc/hadoop/ zengjr@hadoop-slave01.xiaoqee.com:/opt/modules/hadoop-2.5.0/etc/
     scp -r etc/hadoop/ zengjr@hadoop-slave02.xiaoqee.com:/opt/modules/hadoop-2.5.0/etc/
    
  4. 初始化HA在Zookeeper状态

     bin/hdfs zkfc -formatZK
    

    可以在zookeeper下查看到到下面状态

      WatchedEvent state:SyncConnected type:None path:null
      [zk: localhost:2181(CONNECTED) 0] ls /
      [zookeeper]
      [zk: localhost:2181(CONNECTED) 1] ls /
      [zookeeper]
      [zk: localhost:2181(CONNECTED) 2] ls /
      [hadoop-ha, zookeeper]
      [zk: localhost:2181(CONNECTED) 3] ls /hadoop-ha
      [hadoop-cluster]
      [zk: localhost:2181(CONNECTED) 4] ls /hadoop-ha/hadoop-cluster
      []
    
  5. 启动journalnode(128,129,130上都要启动)

     sbin/hadoop-daemon.sh start journalnode
    
  6. 启动namenode(128,129上都要启动)

     sbin/hadoop-daemon.sh start namenode
    
  7. 启动datanode(128,129,130上都要启动)

     sbin/hadoop-daemon.sh start datanode
    
  8. 启动zkfc(128,129上都要启动)

     sbin/hadoop-daemon.sh start zkfc
    
     #可以在zookeeper下查看到到下面状态
    
     [zk: localhost:2181(CONNECTED) 4] ls /hadoop-ha/hadoop-cluster
     [ActiveBreadCrumb, ActiveStandbyElectorLock]
    
  9. 测试,杀死namenode进程,kill -9 进程ID,然后可以看到两个节点standy,active会自动变换

]]>
hadoop HA 2015-03-12T16:42:12+00:00 novakr /2015/03/12/hadoop-ha hadoop HDFS HA

hadoop hdfs HA实现方式有种,一种是QJM方式,一种是NFS

QJM方式实现的HA官方地址: http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

NFS方式实现的HA官方地址: http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html

QJM方式架构图:

  • 确保只有一个NameNode提供服务 Active NameNode与Standby NameNode,同一时刻只应有一个活跃状态提供服务的NameNode.要保障同一时刻只有一个Active NameNode,需要有一定的隔离(fencing)机制。
  • Active NameNode与Standby NameNode元数据同步机制 Standby NameNode应能够实时访问Active NameNode的edits日志,所以可靠日志的共享机制非常重要
  • 故障检测 如果Active NameNode失效或者其依赖的OS,硬件出现故障如果进行检测,这需要FailoverController组件
  • 自动故障转移 故障检测的目的是期望能够快速的自动切换,使得故障不影响NameNode的对外服务。而自动检测这里依赖于FailoverController组件与Zookeeper集群的交互
  • Standby NameNode与Active NameNode之间的Block块同步 NameNode启动时将所有HDFS元数据信息从fsimage和edits中导入内存,元数据更新操作写入edits。但是数据块block信息不存储到文件,是NN启动后与DN实时交互获取的。如果发生故障切换,而新上任的NameNode没有实时的Block信息,依然无法完成服务。所以要求DN的Block信息要同时汇报给所有NameNode

    NameNode HA对外统一访问接口

    隔离机制fencing

    可靠日志共享

配置NN HA几个组件

  1. Active NameNode,Standby NameNode 两台机器硬件配置要一致 (在不同机器)
  2. DataNode(不同机器)
  3. 以QJM方式,journalNode,轻量级组件,数量为奇数个(2n+1),最多允许N个机器出故障(不同机器)
  4. zookeeper(不同机器)
  5. ZKFC(对应于NameNode,每个NameNode都有一个)

运行HA后 Secondary NameNode, CheckpointNode, or BackupNode 都不能运行了,不然会报错。

HA管理命令:

hdfs haadmin
DFSHAAdmin [-ns <nameserviceId>]
[-transitionToActive <serviceId>]
[-transitionToStandby <serviceId>]
[-failover [--forcefence] [--forceactive] <serviceId> <serviceId>]
[-getServiceState <serviceId>]
[-checkHealth <serviceId>]
[-help <command>]
]]>
hadoop HDFS快照 2015-03-12T15:17:21+00:00 novakr /2015/03/12/hadoop-hdfs-snapshot hadoop HDFS SnapShot

官方地址: http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html

Hadoop从2.1.0版开始提供了HDFS SnapShot的功能。一个snapshot(快照)是一个全部文件系统、或者某个目录在某一时刻的镜像。快照在下面场景下是非常有用:

  • 防止用户的错误操作:管理员可以通过以滚动的方式周期性设置一个只读的快照,这样就可以在文件系统上有若干份只读快照。如果用户意外地删除了一个文件,就可以使用包含该文件的最新只读快照来进行回复。
  • 备份:管理员可以根据需求来备份整个文件系统,一个目录或者单一一个文件。管理员设置一个只读快照,并使用这个快照作为整个全量备份的开始点。增量备份可以通过比较两个快照的差异来产生。
  • 试验/测试: 一个用户当想要在数据集上测试一个应用程序。一般情况下,如果不做该数据集的全量拷贝,测试应用程序会覆盖/损坏原来的生产数据集,这是非常危险的。管理员可以为用户设置一个生产数据集的快照(Read write)用于用户测试使用。在快照上的改变不会影响原有数据集。
  • 灾难恢复:只读快照可以被用于创建一个一致的时间点镜像用于拷贝到远程站点作灾备冗余。 通过下面命令对某一个路径(根目录/,某一目录或者文件)开启快照功能,那么该目录就成为了一个snapshottable的目录。snapshottable下存储的snapshots 最多为65535个,保存在该目录的.snapshot下

相关命令:

#设置路径可以允许快照
hdfs dfsadmin -allowSnapshot <path>
#禁止路径快照
hdfs dfsadmin -disallowSnapshot <path>
#创建快照
hdfs dfs -createSnapshot <path> [<snapshotName>]
#删除快照
hdfs dfs -deleteSnapshot <path> <snapshotName>
#重命名快照
hdfs dfs -renameSnapshot <path> <oldName> <newName>
#得到快照列表
hdfs lsSnapshottableDir
#快照对比
hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
]]>
hadoop HA发展之Backup Node 2015-03-12T14:02:47+00:00 novakr /2015/03/12/hadoop-ha-bun hadoop HA发展之Backup Node

官方地址: http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html#Backup_Node

利用新版本Hadoop自身的Failover措施,配置一个Backup Node,Backup Node在内存和本地磁盘均保存了HDFS系统最新的名字空间元数据信息。如果NameNode发生故障,可用使用Backup Node中最新的元数据信息。

  • 优点

    简单方便、无需开发、配置即可使用。

    Backup Node的内存中对当前最新元数据信息进行了备份(Namespace),避免了通过NFS挂载进行备份所带来的风险。

    Backup Node可以直接利用内存中的元数据信息进行Checkpoint,保存到本地,与从NameNode下载元数据进行Checkpoint的方式相比效率更高。

    NameNode 会将元数据操作的日志记录同步到Backup Node,Backup Node会将收到的日志记录在内存中更新元数据状态,同时更新磁盘上的edits,只有当两者操作成功,整个操作才成功。这样即便NameNode上的元数据发生损坏,Backup Node的磁盘上也保存了HDFS最新的元数据,从而保证了一致性。

  • 缺点

    高版本(0.21以上)才支持。

    许多特性还处于开发之中,例如:当NameNode无法工作时,Backup Node目前还无法直接接替NameNode提供服务,因此当前版本的Backup Node还不具有热备功能,也就是说,当NameNode发生故障,目前还只能通过重启NameNode的方式来恢复服务。

    Backup Node的内存中未保存Block的位置信息,仍然需要等待下面的DataNode进行上报,因此,即便在后续的版本中实现了热备,仍然需要一定的切换时间。

    当前版本只允许1个Backup Node连接到NameNode。

SecondaryNameNode Checkpoint_Node Backup_Node 对比总结

]]>
hadoop HA发展之CheckPoint Node 2015-03-12T13:52:09+00:00 novakr /2015/03/12/hadoop-ha-cpn hadoop HA发展之CheckpointNode

官方地址: http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html#Checkpoint_Node

可能是由于Secondary NameNode这个名字给人带来的混淆,Hadoop后面的版本(1.0.4)建议不要使用Secondary NameNode,而使用CheckPoint Node。

Checkpoint Node方案与Secondary NameNode的原理基本相同,只是实现方式不同。

该方案利用Hadoop的Checkpoint机制进行备份,配置一个Checkpoint Node。该节点会定期从Primary NameNode中下载元数据信息(fsimage+edits),将edits与fsimage进行合并,在本地形成最新的Checkpoint,并上传到Primary NameNode进行更新。

当NameNode发生故障时,极端情况下(NameNode彻底无法恢复),可以在备用节点上启动一个NameNode,读取Checkpoint信息,提供服务。

  • 启动方式

    bin/hdfs namenode -checkpoint

  • 优点

    使用简单方便、无需开发、配置即可。

    元数据有多个备份。

  • 缺点

    没有做到热备、备份节点切换时间长。

    Checkpoint Node所做的备份,只是最后一次Check时的元数据信息,并不是发生故障时最新的元数据信息,有可能造成数据的不一致。

]]>
hadoop HA发展之SecondaryNameNode 2015-03-12T10:40:11+00:00 novakr /2015/03/12/hadoop-ha-snn hadoop HA发展之SecondaryNameNode

官方地址: http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html#Secondary_NameNode

Secondary NameNode,只要是对NameNode进行辅助作用,定期从NameNode下载edits,fsimage进行合并,并上传回NameNode.

fsimage和edits存储目录配置属性,对应dfs.namenode.name.dir和dfs.namenode.edits.dir

NameNode打开两个端口来提供RPC服务

  • 一个是给client对应配置dfs.namenode.rpc-address
  • 一个端口是提供给datanode对应配置dfs.namenode.servicerpc-address,如果不指定则使用dfs.namenode.rpc-address
  • 其实两个端口的RPC服务没什么区别,之所以要区分主要是因为datanode和namenode通讯不会影响client和namenode的通讯,因为同一端口同时打开的句柄毕竟是有预先设定的,缺省为10个
  • Namenode需要打开一个http服务,用于提供web访问以及传输edit log,checkpoint等,对应配置为dfs.namenode.http-address

Hadoop SecondaryNameNode并不是Hadoop 第二个NameNode,它不提供NameNode服务,而仅仅是NameNode的一个工具。这个工具帮助NameNode管理Metadata数据。

NameNode的HDFS文件信息(即Metadata)记录在内存中,client的文件写操作直接修改内存中的Metadata,同时也会记录到硬盘的Edits文件,这是一个Log文件。

当NameNode重启的时候,会合并硬盘上的fsimage文件和edits文件,得到完整的Metadata信息。这个fsimage文件可以看做是一个过时的Metadata信息文件(最新的Metadata修改信息在edits文件中)。

如果edits文件非常大,那么这个合并过程就非常慢,导致HDFS长时间无法启动,如果定时将edits文件合并到fsimage,那么重启NameNode就可以非常快。

SecondaryNameNode就做这个合并的工作。

从SecondaryNameNode恢复过程

]]>