hadoop2.x hdfs完全分布式 HA 搭建

官网链接
hadoop配置文件主页:http://hadoop.apache.org/docs/r2.5.2/

HDFS hapdoop HA全分布配置:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

总结步骤:
准备工作:
1.
配置java环境变量  可以在/etc/profile 或者在/root/.bash_profile中进行配置
2.
配置免密码登录  特别是namenode之间可以相互免密码登录
3.
准备zookeeper
a)三台zookeeper:hadoop1,hadoop2,hadoop3
b)编辑zoo.cfg配置文件
修改dataDir=/opt/zookeeper   //可自定义文件位置
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
在dataDir目录中创建一个myid的文件,文件内容为1,2,3  (1,2,3分别为上面的server.后数字)

HADOOP配置文件
1.
在hadoop-env.sh中配置java_home
export JAVA_HOME=/usr/java/jdk1.7.0_79
2.
配置slaves:放datanode的主机映射名
例:
    node2
    node3
    node4
3.
配置hdfs-site.xml
<configuration>
    <!-- 配置服务名 -->
  <property>
      <name>dfs.nameservices</name>
      <value>xiaobing</value>
  </property>
    <!-- 配置权限关闭 可以使其他用户可以进行访问 -->
  <property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
  </property>
    <!-- 给namenode命名 -->
  <property>
      <name>dfs.ha.namenodes.xiaobing</name>
      <value>nn1,nn2</value>
  </property>
    <!-- 为第一个namenode建立rpc 数据通信协议 -->
  <property>
      <name>dfs.namenode.rpc-address.xiaobing.nn1</name>
      <value>node1:8020</value>
  </property>
    <!-- 为第二个namenode建立rpc 数据通信协议 -->
  <property>
      <name>dfs.namenode.rpc-address.xiaobing.nn2</name>
      <value>node4:8020</value>
  </property>
    <!-- 为第一个namenode建立http协议 -->
  <property>
      <name>dfs.namenode.http-address.xiaobing.nn1</name>
      <value>node1:50070</value>
  </property>
    <!-- 为第二个namenode建立http协议 -->
  <property>
      <name>dfs.namenode.http-address.xiaobing.nn2</name>
      <value>node4:50070</value>
  </property>
    <!--  配置journalnode的主机名端口,随便起个文件名  -->
  <property>
      <name>dfs.namenode.shared.edits.dir</name>
      <value>qjournal://node2:8485;node3:8485;node4:8485/abcdir</value>
  </property>
    <!-- 配置failover机制 -->
  <property>
      <name>dfs.client.failover.proxy.provider.xiaobing</name>
      <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
  <property>
      <name>dfs.ha.fencing.methods</name>
      <value>sshfence</value>
  </property>
    <!-- 配置本地私钥,使failover controller 可以ssh namenode进行检查 -->
  <property>
      <name>dfs.ha.fencing.ssh.private-key-files</name>
      <value>/root/.ssh/id_dsa</value>
  </property>
    <!-- 设置自动接管  -->
  <property>
      <name>dfs.ha.automatic-failover.enabled</name>
       <value>true</value>
  </property>
</configuration>
4.配置core-site.xml
<configuration>
    <!-- 配置访问服务名 -->
    <property>
          <name>fs.defaultFS</name>
          <value>hdfs://xiaobing</value>
    </property>
    <!-- 配置nomenode的fsimage文件生成文件位置 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/data</value>
    </property>
    <!-- 配置journalnode的edits文件存放路径 -->
    <property>
          <name>dfs.journalnode.edits.dir</name>
          <value>/opt/jn/data</value>
    </property>
    <!-- 配置zookeeper的主机名 端口 -->
    <property>
           <name>ha.zookeeper.quorum</name>
           <value>node1:2181,node2:2181,node3:2181</value>
     </property>
</configuration>
5.启动所有的zookeeper
    zkServer.sh start

6.启动所有JournalNode:
    hadoop-daemon.sh start journalnode
7.在其中任意一个namenode上格式化:hdfs namenode -format
8.把刚刚格式化之后的元数据拷贝到另外一个namenode上
a)启动刚刚格式化的namenode
b)在任一没有格式化的namenode上执行:hdfs namenode -bootstrapStandby
c)启动第二个namenode
9.在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK
10.停止上面节点:stop-dfs.sh
11.全面启动:start-dfs.sh
时间: 2024-11-04 19:26:35

hadoop2.x hdfs完全分布式 HA 搭建的相关文章

ZooKeeper+Hadoop2.6.0的ResourceManager HA搭建

以下为我的操作记录,还未整理格式 hqvm-L118        192.168.1.118        jdk.hadoop                   NameNode.DFSZKFailoverController(zkfc) hqvm-L138        192.168.1.138        jdk.hadoop.zookeeper        NameNode.DFSZKFailoverController(zkfc).DataNode.NodeManager.J

Hadoop-2.4.1完全分布式环境搭建

一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop环境. 创建hadoop用户组以及hadoop用户,并给hadoop用户分配权限. 免密码登陆,为5台主机进行免密码登陆配置. 安装hadoop以及jdk,并配置环境变量. Hadoop分布式环境参数配置. 二.主机环境搭建: 在虚拟机上安装5台虚拟主机并分别安装好hadoop系统,然后分别完成以下操作. 设定静态ip地址,这里的虚拟机使用的是NAT上网模式,配置命令如下: a)     配置

HDFS伪分布式环境搭建

(一).HDFS shell操作 以上已经介绍了如何搭建伪分布式的Hadoop,既然环境已经搭建起来了,那要怎么去操作呢?这就是本节将要介绍的内容: HDFS自带有一些shell命令,通过这些命令我们可以去操作HDFS文件系统,这些命令与Linux的命令挺相似的,如果熟悉Linux的命令很容易就可以上手HDFS的命令,关于这些命令的官方文档地址如下: http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0/hadoop-mapre

hadoop2.7.2完全分布式环境搭建

1.先使用groupadd hadoop 建立hadoop用户组 2.新建用户,useradd -d /usr/hadoop -g hadoop -m hadoop (新建用户hadoop指定用户主目录/usr/hadoop 及所属组hadoop) 3.passwd hadoop 设置hadoop密码(这里设置密码为hadoop) 4.安装好jdk1.8版本 ,安装教材地址http://www.cnblogs.com/shihaiming/p/5809553.html(安装在/usr/local

hadoop2.6.2伪分布式环境搭建

1.准备三台机器,master.slave01.slave02 1.1 最小化安装centos6.5 1.2 安装ssh,yum -y install openssh-clients 1.3 三台机器上创建hadoop用户组及hadoop用户 groupadd hadoop  添加一个组 useradd hadoop -g hadoop  添加用户 2.免密码登录 http://www.cnblogs.com/bookwed/p/4809390.html 3.安装好jdk环境(jdk1.8) 4

_00014 hadoop-2.2.0 伪分布式环境搭建

http://passport.baidu.com/?business&un=%E5%B0%8F%E5%A7%90%5F%E6%B5%B7%E5%AE%81%5F%E6%89%BE%5F#0 http://passport.baidu.com/?business&un=%E5%B0%8F%E5%A7%90%E6%B5%B7%E5%AE%81%E6%8C%89%E6%91%A9%E6%89%BE#0 http://passport.baidu.com/?business&un=%E5

32位Ubuntu12.04搭建Hadoop2.5.1完全分布式环境

准备工作 1.准备安装环境: 4台PC,均安装32位Ubuntu12.04操作系统,统一用户名和密码 交换机1台 网线5根,4根分别用于PC与交换机相连,1根网线连接交换机和实验室网口 2.使用ifconfig查看各PC的IP地址,并确保可以相互ping通 pc1 192.168.108.101 pc2 192.168.108.146 pc3 192.168.108.200 pc4 192.168.108.211 3.安装jdk,下载jdk-7u71-linux-i586.tar.gz,拷贝到你

Hadoop2.4.1 64-Bit QJM HA and YARN HA + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA Install

Hadoop2.4.1 64-Bit QJM HA and YARN HA Install + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA(Hadoop2.4.1(QJM方式的HDFS NameNode HA,YARN ResourceManager HA)集群+Zookeeper3.4.6集群+Hbase-0.98.8(Master HA)集群搭建) HostName            IP                Soft      

CentOS7.5搭建Hadoop2.7.6完全分布式集群

一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考  Linux之CentOS7.5安装及克隆 1.2 修改host文件 我们希望三个主机之间都能够使用主机名称的方式相互访问而不是IP,我们需要在hosts中配置其他主机的host.因此我们在主机的/etc/hosts下均进行如下配置: [root@node21 ~]# vi /etc/hosts