hadoop2.x搭建和部署以及遇到的问题

一、hadoop2.0解决了什么:

        1、1.0中NameNode单点故障问题,难以应用于在线场景

        2、NameNode压力过大,内存受限,影响系统扩展性

        3、解决了支持除了mapReduce之外的计算框架,比如Spark、Strom等

        4、对于1.0的api仍可以使用

二、这里我们设计分布图做如下 1 表示存在于此机器上

部署hadoop2.x 哪里有namenode 哪里就又zkfc

NameNode DataNode ZK ZKFC JN RM DM
192.168.68.132 1 1 1 1
192.168.68.133 1 1 1 1 1
192.168.68.134 1 1 1 1
192.168.68.135 1 1 1 1

以下的部署都是按照这里的设计分布的

三、下载hadoop 

    这里我下载的是2.5.0 因为2.5.2官方只提供了32位下载源码后还需要自己编译,这里就曲线救国来个2.5.0的

https://archive.apache.org/dist/hadoop/common/hadoop-2.5.0/

四、具体实现:

    1、上传到服务器 rz  上传  tar-zxvf hadoop-2.5.0

    2、查看当前版本 cd  native   执行  file libhadoop.so.1.0.0查看是64位还是32位

            

    3、修改配置文件,此时的配置文件不在conf而是在etc文件夹里,配置java环境变量

                hadoop2.x搭建和部署以及遇到的问题_第1张图片

    4、修改hdfs-site.xml文件           


配置命名服务

  dfs.nameservices
  myservice   服务名

配置namenode的名字

  dfs.ha.namenodes.myservice
  nn1,nn2  这里的名字不是主机名只是一个名字

配置namenode的rpc协议和端口这里配置几个由上面的namenode决定

  dfs.namenode.rpc-address.myservice.nn1
  192.168.68.132:8020


  dfs.namenode.rpc-address.myservice.nn2
  192.168.68.133:8020

配置两个namenode的http协议的端口

  dfs.namenode.http-address.myservice.nn1
  192.168.68.132:50070


  dfs.namenode.http-address.myservice.nn2
  192.168.68.133:50070

配置JournalNodes地址

  dfs.namenode.shared.edits.dir
 qjournal://192.168.68.133:8485;192.168.68.134:8485;192.168.68.135:8485/myservice

配置客户端使用的类----通过这个类去找到activenamenode

  dfs.client.failover.proxy.provider.myservice
  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

配置ssh

  dfs.ha.fencing.ssh.private-key-files
  /root/.ssh/id_dsa

配置journalNode的工作目录

  dfs.journalnode.edits.dir
  /opt/jn/data

配置开启自动切换
 
   dfs.ha.automatic-failover.enabled
   true
 

如果我们不使用hostname 直接使用ip 还需要添加如下配置


    dfs.namenode.datanode.registration.ip-hostname-check
    false

    5、core-site 文件中配置

配置Zookeeper集群

   ha.zookeeper.quorum
   192.168.68.132:2181,192.168.68.134:2181,192.168.68.135:2181
 
配置namenode入口

  fs.defaultFS
  hdfs://myservice 这里配置的是集群的名字

配置hadoop的临时目录

  hadoop.tmp.dir
  /opt/hadoop2
	

    6、配置datanode   

hadoop2.x搭建和部署以及遇到的问题_第2张图片

注意这里一定不要配置master 因为没有secodaynamenode 这里使用junamenode替换了
    7、 启动 JournalNodes  进入到sbin目录下启动JN ----这里我们配置三个所以启动三个
./hadoop-daemon.sh start journalnode
8、在任何一台namenode上格式化namenode 进入bin目录下执行

hadoop2.x搭建和部署以及遇到的问题_第3张图片

    9、 拷贝格式化后的文件到其他namenode上
方式一直接宝贝文件夹过去
方式二、使用命令进行拷贝,前提是先启动当前namenode
./hadoop-daemon.sh start namenode
hadoop2.x搭建和部署以及遇到的问题_第4张图片
启动好后执行命令 在没有格式化的namenode上执行 hdfs namenode -bootstrapStandby

hadoop2.x搭建和部署以及遇到的问题_第5张图片在这台namenode上查看是否拷贝成功

hadoop2.x搭建和部署以及遇到的问题_第6张图片

    10、格式化zkfc     [root@localhost bin]# ./hdfs zkfc -formatZK

五、Zookeeper的部署和配置

    1、https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/下载

    2、rz 上传  tar -zxvf zookeeper-3.4.6.tar.gz 解压

    3、进入配置文件 复制zoo_sample.cfg

hadoop2.x搭建和部署以及遇到的问题_第7张图片
    4、修改复制出来的配置文件
hadoop2.x搭建和部署以及遇到的问题_第8张图片

    5、配置zk集群的唯一编号

            hadoop2.x搭建和部署以及遇到的问题_第9张图片

    server.1为zookeeper集群的唯一编号 ------- 同时在dataDir文件夹里创建myid指明当前zk的id
hadoop2.x搭建和部署以及遇到的问题_第10张图片

        如果当前机器为server.1那么文件里就写1

        hadoop2.x搭建和部署以及遇到的问题_第11张图片

    6、同时拷贝到其他服务器上进行配置

hadoop2.x搭建和部署以及遇到的问题_第12张图片

编辑其他机器上myid分别与ZK的配置文件第5步下图对应
hadoop2.x搭建和部署以及遇到的问题_第13张图片

    7、拷贝ZK到其他服务器做集群:如下

hadoop2.x搭建和部署以及遇到的问题_第14张图片

     8、配置环境变量 指向ZK的bin目录


hadoop2.x搭建和部署以及遇到的问题_第15张图片

不重启使配置文件生效

    9、同样其他服务器也要配置

hadoop2.x搭建和部署以及遇到的问题_第16张图片

10、启动ZK

hadoop2.x搭建和部署以及遇到的问题_第17张图片

11、最后的效果: 跟我们当初设计的集群分布是一样的

hadoop2.x搭建和部署以及遇到的问题_第18张图片

12、创建文件夹和上传文件到hdfs

[root@localhost bin]# ./hdfs dfs -mkdir -p /us/file
[root@localhost bin]# ./hdfs dfs -put /home/ma/Downloads/soft/jdk-8u77-linux-x64.tar.gz /us/file

hadoop2.x搭建和部署以及遇到的问题_第19张图片

hadoop2.0到这里也就基本上部署完成了


你可能感兴趣的:(大数据)