【hadoop】13、hadoop2.5搭建集群

Hadoop2.x的配置

这里写图片描述

NN和ZKFC配套

DN和DM配套

安装部署hadoop2.x
1、下载64位hadoop2.5
首先我们要下载到64位的Linux的hadoop-2.5的tar包,官网上的是32位的,我们需要的是64位的

详情参考
http://www.douban.com/note/393721422/

2、解压tar包

这里写图片描述

这里写图片描述

吧1.2删除就可以了

然后我们进行2.5的配置
配置文件在这个目录下
这里写图片描述

修改我们的配置文件

这里写图片描述

这里写图片描述

保存文件

然后我们修改hdfs-site.xml

这里写图片描述

在这个里面配置一个命名服务

这里写图片描述

根据我们前面的表格namenode分别是hadoop1和node1

这里写图片描述

这里写图片描述

最终改为

<configuration>
    <!-- 配置一个命名服务  -->
    <property>
        <name>dfs.nameservices</name>
        <value>cutter_point</value>
    </property>
    <!-- 配置所有的namenode的名字 -->
    <property>
        <name>dfs.ha.namenodes.cutter_point</name>
        <value>nn1,nn2</value> <!-- 这只是一个名字不是主机名 -->
    </property>
    <property>
        <name>dfs.namenode.rpc-address.cutter_point.nn1</name>
        <value>hadoop1:8020</value>
    </property>
    <property>
                <name>dfs.namenode.rpc-address.cutter_point.nn2</name>
                <value>node1:8020</value>
        </property>
    <!-- http协议的端口和主机 -->
    <property>
        <name>dfs.namenode.http-address.cutter_point.nn1</name>
        <value>hadoop1:50070</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.cutter_point.nn2</name>
        <value>node1:50070</value>
    </property>
    <!-- 配置日志主机JN -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://node1:8485;node2:8485;node3:8485/cutter_point</value>
    </property>
    <!-- 客户端找到这个类 -->
    <property>
        <name>dfs.client.failover.proxy.provider.cutter_point</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- ssh fencing -->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>

    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_dsa</value>
    </property>
    <!-- JN的工作目录 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/jn/data</value>
    </property>
    <!-- 自动切换 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>

</configuration>

这里写图片描述

这里写图片描述

这里写图片描述
然后我们配置core-site.xml文件

这里写图片描述

下一个是安装zookeeper

我们下载3.4.6稳定版的,然后解压

这里写图片描述

这里写图片描述

我们copy一份zoo_sample.cfg 名字叫zoo.cfg

这里写图片描述

改一下这个文件

这里写图片描述

在末尾添加
这里写图片描述

The entries of the form server.X list the servers that make up the ZooKeeper service. When the server starts up, it knows which server it is by looking for the file myid in the data directory. That file has the contains the server number, in ASCII.

后面的开始式我们的主机名

接着我们创建一个文件夹

这里写图片描述

在zookeeper文件夹里面

我们创建一个文件叫myid

这里写图片描述

这里写图片描述

然后我们把zookeeper这个文件夹传输到其他各个节点

这里写图片描述

修改其他节点的id号

这里写图片描述

这里写图片描述

这里写图片描述

吧zookeeper文件夹传输到其他的两个节点

这里写图片描述

这里写图片描述

其他两个节点也设置相应的软链接

这里写图片描述

这里写图片描述

长度的配置zookeeper的环境变量

进入到相应的目录,得到相应的路径

这里写图片描述

修改环境变量

这里写图片描述

这里写图片描述

传输到其他的节点上

这里写图片描述

启动zookeeper

这里写图片描述

出现QuorumPeerMain说明配置OK

这里写图片描述

配置slaves,我们的datanode节点

这里写图片描述

这里写图片描述

吧tar包传输到其他的节点上

这里写图片描述

在其他节点上进行如下操作

这里写图片描述

这里写图片描述

这里写图片描述

配置文件传输到其他的节点下面

这里写图片描述

试运行

在相应的JN上运行,参考最上面的表
这里写图片描述

在node1,node2,node3上的hadoop-2.5下的sbin下面执行
./hadoop-daemon.sh start journalnode

这里写图片描述

• If you are setting up a fresh HDFS cluster, you should first run the format command (hdfs namenode -format) on one of NameNodes.

在一个namenode上执行一个相应的格式化命令

./ hdfs namenode -format

这里写图片描述

这里写图片描述

格式化成功

启动namenode在刚刚格式化的那个namenode主机上

这里写图片描述

这里写图片描述

在没有格式化的主机上执行
unformatted NameNode by running the command “hdfs namenode -bootstrapStandby” on the unformatted NameNode

这里写图片描述

启动

这里写图片描述

接下来可以启动两个namenode了

首先我们停止所有的服务

在第一个namenode上
这里写图片描述

Zookeeper不要关闭,其他的关闭就可以了

然后我们格式化zkfc

这里写图片描述

然后我们在吧hdfs启动
这里写图片描述

这里写图片描述

成功
启动全部
Start-dfs.sh

**

报错:

**

1、15/06/29 10:13:16 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
mkdir: Incomplete HDFS URI, no host: hdfs://cutter_point

hadoop里面配置的主机host名称不能带下划线

2、2015-06-29 15:08:03,244 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool (Datanode Uuid unassigned) service to hadoop1/192.168.100.10:8020. Exiting.
java.io.IOException: Incompatible clusterIDs in /opt/hadoop2/dfs/data: namenode clusterID = CID-992e7f49-973b-4107-b599-77c4f6b7b867; datanode clusterID = CID-6f69cef1-7e49-4bb5-99b5-5aed447024c7
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:477)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:226)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:975)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:946)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:812)
at java.lang.Thread.run(Thread.java:745)

解决办法:
  1、在hdfs-site.xml配置文件中,配置了dfs.namenode.name.dir,在master中,该配置的目录下有个current文件夹,里面有个VERSION文件,内容如下:
  #Thu Mar 13 10:51:23 CST 2014
  namespaceID=1615021223
  clusterID=CID-8e201022-6faa-440a-b61c-290e4ccfb006
  cTime=0
  storageType=NAME_NODE
  blockpoolID=BP-1257313099-10.10.208.38-1394679083528
  layoutVersion=-40
  2、在core-site.xml配置文件中,配置了hadoop.tmp.dir,在slave中,该配置的目录下有个dfs/data/current目录,里面也有一个VERSION文件,内容
  #Wed Mar 12 17:23:04 CST 2014
  storageID=DS-414973036-10.10.208.54-50010-1394616184818
  clusterID=clustername
  cTime=0
  storageType=DATA_NODE
  layoutVersion=-40
  3、一目了然,两个内容不一样,导致的。删除slave中的错误内容,重启,搞定!
全文畅读:http://www.thebigdata.cn/Hadoop/9239.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值