zoukankan      html  css  js  c++  java
  • hadoop2.x完全分布式环境搭建

    搭建完全分布式时,先搭建好伪分布式,在其基础上做修改 参考: url: https://www.cnblogs.com/gzgBlog/p/13703051.html

    完全分布式安装

    伪分布式是基于单个节点,而完全分布式是基于两个或两个以上节点完成Hadoop集群搭建。

    下面基于两个节点完成,一个节点的名字是master,另一个节点的名字是slave01。

    关于搭建伪分布式和完全分布式,主要区别体现在core-site.xml和hdfs-site.xml的配置不一样,完全分布式会包含更多信息,下面会逐步说明。

    1.修改core-site.xml

    文件core-site.xml文件中,hadoop.tmp.dir是Hadoop文件系统依赖的基础配置,默认存放在/tmp/{$user}下。但是存放在/tmp下是不安全的,因为系统重启后文件有可能被删除,所以会指向另外的路径。

    <configuration>
            <property>
                    <name>fs.default.name</name>
                    <value>hdfs://master:9000</value>
            </property>
            <property>
                    <!-- save tmp file -->
                    <name>hadoop.tmp.dir</name>
                    <value>/app/hadoop-2.2.0/hdfs/tmp</value>
            </property>
    </configuration>

    2.修改hdfs-site.xml文件

    这里主要配置了Secondary NameNode的信息,其中slave01是从节点机器名

    <configuration>
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>slave01:50090</value>
            </property>
            <property>
                    <name>dfs.namenode.secondary.https-address</name>
                    <value>slave01:50091</value>
            </property>
            <property>
                    <!--hdfs的副本数量-->
                    <name>dfs.replication</name>
                    <value>2</value>
            </property>
            <property>
                    <!--存储namenode的路径-->
                    <name>dfs.name.dir</name>
                    <value>/app/hadoop-2.2.0/hdfs/name</value>
            </property>
            <property>
                    <!--存储上传数据的路径-->
                    <name>dfs.data.dir</name>
                    <value>/app/hadoop-2.2.0/hdfs/data</value>
            </property>
            <property>
                    <!--设置为false可以不用检查权限-->
                    <name>dfs.permission</name>
                    <value>false</value>
            </property>
    
    
    </configuration>

    3.配置masters和slaves

    接着需要在配置文件目录/app/hadoop-2.2.0/etc/hadoop下生成masters和slaves文件,

    并在masters文件中写入master,在slaves文件中写入master和slave,其中slaves文件存放的是datanode,也就是数据节点,如下图所示

     需要注意的是,这里的master和slave是节点名称,需要与/etc/hosts中的配置相映射。

    4.相关文件的复制在完全分布式的环境中

    master和slave节点上的文件需要一致,因此这里需要将master节点中的文件复制到slave节点中,主要包括以下文件:·Hadoop整个文件夹,如/opt/software/hadoop-2.5.1下面的所有文件。·系统配置文件,如/etc/profile文件,其中包含各类环境变量的配置。·/etc/hosts文件。操作步骤如下:

    (1)复制Hadoop整个文件夹。复制文件夹需要使用scp-r指令:

    scp -r /app/hadoop-2.2.0 root@slave01:/app/

    (2)复制/etc/profile到salve的Home目录。

    scp /etc/profile root@slave01:/etc/profile 

    (3)复制/etc/hosts文件,命令如下:

    scp /etc/hosts root@slave02:/etc/hosts

    5.启动hdfs  

    注意,如果提前启动过,并且创建了文件一定要删除,之后一定要先格式化hdfs  使用 Hadoop namenode -format

    在master使用 start-dfs.sh启动,并使用jps查看是否已启动

     在slave01使用jps查看

     在slave02使用jps查看

     使用浏览器访问: http://192.168.10.11:50070

     可看到有三个活跃的datanode,点进去查看,看到如下图所示说明没问题。

     常见错误:

    2020-09-21 01:42:11,607 INFO org.mortbay.log: Started SelectChannelConnector@0.0.0.0:50075
    2020-09-21 01:42:11,954 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened IPC server at /0.0.0.0:50020
    2020-09-21 01:42:11,965 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Refresh request received for nameservices: null
    2020-09-21 01:42:11,973 INFO org.apache.hadoop.ipc.Server: Starting Socket Reader #1 for port 50020
    2020-09-21 01:42:11,979 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Starting BPOfferServices for nameservices: <default>
    2020-09-21 01:42:11,981 WARN org.apache.hadoop.hdfs.server.common.Util: Path /app/hadoop-2.2.0/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration.
    2020-09-21 01:42:11,987 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to master/192.168.10.11:9000 starting to offer service
    2020-09-21 01:42:12,019 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
    2020-09-21 01:42:12,019 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting
    2020-09-21 01:42:12,117 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /app/hadoop-2.2.0/hdfs/data/in_use.lock acquired by nodename 6519@master
    2020-09-21 01:42:12,118 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-1291136958-192.168.10.11-1600623703239 (storage id DS-1413256501-192.168.10.11-50010-1600622208949) service to master/192.168.10.11:9000
    java.io.IOException: Incompatible clusterIDs in /app/hadoop-2.2.0/hdfs/data: namenode clusterID = CID-c4d72e93-4c05-4dcc-adbf-f2cb597aadb7; datanode clusterID = CID-26056e85-5aca-491f-b946-666b5e847dd8
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:391)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:191)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:219)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:837)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:808)
        at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:280)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:222)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:664)
        at java.lang.Thread.run(Thread.java:748)
    2020-09-21 01:42:12,119 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool BP-1291136958-192.168.10.11-1600623703239 (storage id DS-1413256501-192.168.10.11-50010-1600622208949) service to master/192.168.10.11:9000
    2020-09-21 01:42:12,220 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool BP-1291136958-192.168.10.11-1600623703239 (storage id DS-1413256501-192.168.10.11-50010-1600622208949)
    2020-09-21 01:42:14,221 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
    2020-09-21 01:42:14,223 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0
    2020-09-21 01:42:14,225 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 
    /************************************************************
    SHUTDOWN_MSG: Shutting down DataNode at master/192.168.10.11
    ************************************************************/
    2020-09-21 01:49:04,582 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: 
    /************************************************************

    此处为,提前启动没成功,但是已创建,hdfs的数据及临时文件存放目录,删除之后,格式化hdfs,再重启即可

    author@nohert
  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13703264.html
Copyright © 2011-2022 走看看