• centOS7集群hadoop环境搭建


    今天安装了下hadoop,感觉网上的教程还有几点要注意的地方,我把它总结在写一下。

    一、准备工作

    准备3台centOS 7

    虚拟机的安装我这边就不写了,给两个教程链接把:
    centOS7安装教程:https://www.centos.net.cn/archive/1518
    centOS7下载:https://www.centoschina.cn/downloads
    (Tip:安装完一个虚拟机之后,剩下的两个可以进行克隆,右键就行)

    关闭防火墙:
          systemctl stop firewalld.service
           禁用防火墙:systemctl disable firewalld.service
           查看防火墙状态firewall-cmd --state
           重启 reboot

    二、实现三台机器ssh免密码登录

    首先,你要确保知道你的三台机子的名称和ip
    比如:我的三台分别是

    10.25.0.165 hadoop01
    10.25.0.221 hadoop02
    10.25.0.232 hadoop03
    
    • 1
    • 2
    • 3

    1.检查机器的名称和IP

    检查机器名称

    用root账户登录,然后使用hostname命令查看机器名称

    [root@localhost etc]# hostname
    localhost.localdomain
    [root@localhost etc]#
    
    • 1
    • 2
    • 3

    把他修改成我们想要的名称

    hostname   hadoop01
    
    • 1

    修改之后检查一下,如果修改不成功,可以进入配置文件进行名称的修改。

    vim /etc/hostname          ##用vi进行修改
    
    • 1

    类似的,将其他两个机器,分别改名为hadoop02和hadoop03

    检查IP

    使用ifconfig来检查电脑的ip

    [root@hadoop01 etc]# ifconfig
    ens33: flags=4163  mtu 1500
            inet 10.25.0.165  netmask 255.255.254.0  broadcast 10.25.1.255
            inet6 fe80::57c1:8afa:60e5:4cc7  prefixlen 64  scopeid 0x20
            ether 00:0c:29:92:e6:51  txqueuelen 1000  (Ethernet)
            RX packets 370188  bytes 428647745 (408.7 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 52416  bytes 15864915 (15.1 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 987  bytes 105906 (103.4 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 987  bytes 105906 (103.4 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    virbr0: flags=4099  mtu 1500
            inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
            ether 52:54:00:d6:35:d0  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@hadoop01 etc]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    如果你的虚拟机使用的是桥接的,ifconfig之后你还是不确定你的IP,建议使用CRT工具连接试试,能够成功联通的就是正确的IP。

    2.修改/etc/hosts文件

    修改三台机器的/etc/hosts文件,在里面添加如下内容(添加就行了,不需要删除)
    修改方法:可以使用vim命令,也可以再写一个hosts文件,拿到linux上覆盖。

    10.25.0.165 hadoop01
    10.25.0.221 hadoop02
    10.25.0.232 hadoop03
    
    • 1
    • 2
    • 3

    Tip:IP地址不需要和我的一样,这里只是做一个映射。
    配置完成后使用ping命令检查这3个机器是否相互ping得通(互相检查一下)。

    [root@hadoop01 etc]# ping  -c 3  hadoop02
    PING hadoop02 (10.25.0.221) 56(84) bytes of data.
    64 bytes from hadoop02 (10.25.0.221): icmp_seq=1 ttl=64 time=0.416 ms
    64 bytes from hadoop02 (10.25.0.221): icmp_seq=2 ttl=64 time=0.431 ms
    64 bytes from hadoop02 (10.25.0.221): icmp_seq=3 ttl=64 time=0.458 ms
    
    --- hadoop02 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 0.416/0.435/0.458/0.017 ms
    [root@hadoop01 etc]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ping得通,说明机器是互联的,hosts配置正确。

    3.给3个机器生成秘钥文件

    以hadoop01为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:

    ssh-keygen  -t   rsa   -P  ''
    
    • 1

    如图(我自己的已经弄好了,所以网上找了个图):

    7174867-d1669d44f215c658.png

    image.png

    因为我现在用的是root账户,所以秘钥文件保存到了/root/.ssh/目录内,可以使用命令查看,命令是:

    [root@hadoop01 .ssh]# ls /root/.ssh/
      id_rsa  id_rsa.pub  
    [root@hadoop01 .ssh]# 
    
    • 1
    • 2
    • 3

    要有两个文件,使用同样的方法为hadoop02和hadoop03生成秘钥(命令完全相同,不用做如何修改)。

    4.在hadoop01上创建authorized_keys文件

    接下来要做的事情是在3台机器的/root/.ssh/目录下都存入一个内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为3台机器生成的公钥。
    即:把刚刚的三个公钥,汇总成一个文件,放到三台机器里面。
    首先创建文件:

    touch  /root/.ssh/authorized_keys
    
    • 1

    查看下,是否创建成功

    [root@hadoop01 .ssh]# ls   /root/.ssh/
    authorized_keys  id_rsa  id_rsa.pub  
    [root@hadoop01 .ssh]# 
    
    • 1
    • 2
    • 3

    汇总公钥,即汇总/root/.ssh/id_rsa.pub文件内容,到authorized_keys 的办法有很多,一个是用cat和vim命令,一个是本地编辑好后丢到各个机器上面。
    我这边是这样的:

    ##我的hadoop01的/root/.ssh/id_rsa.pub文件内容
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPnzSm1RBU/H4fcg2rIEh5O5AzE3uprj67LNsS8g9xjajuGz1eZ+dbp8lKZl/OrA9ihkg5FaCh/NKtdHMW4dw2Q0ST5m2y/tz94PNhGYnC84cZ02TzcV1HnlAr3Od+RsvfQt1Rmc3PZDn7bel21gc08YgfpMOjj0R7dfcYPBx/SW/mLekQz4JCESbTk+Ev24r2zE9gfmV8NZzsr+Jx8r/WxfoauMRrVXNcu8LmZ6irkyIe9CAWeVMLlaZPFWLwvW0S/aWMVmXsYf9fkC00L+S6YeaHzezKDwA2r6uvgy5SWFiCw0iQhNB+fb9MAD4e+fesvb4Ra+hmYk28wzz3K8tp root@hadoop01
    ##我的hadoop02的/root/.ssh/id_rsa.pub文件内容
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDL6uc5/Upj1vpTy0hSd+kRp8aYE2PdjpResBy8nm4g+ZhXAZG/eas5aVHZhLxX7PePwtVTJZ/v1RU3UfgNIXMwJhteNaFPgZFdMjFIcsgqJBKzzP2DVm3qz9tUC6UfQ156r2GL9KGn82R9xMdZXgfMHARsRs2SQx6w90HlnwwQvcbsXeyJ71Lr9xnEYWX1pwksxkr6fIEyT0666/CFcPFXPrBVgHen0cSzXcKcA3qinCrJfke/eesC30+e7oJ6WruEXKUa3BVuU59P0Ac4QV9C+5jIC/HSn73pA5NxA55gEFPxN2DtjEE/QqwznY+6DPGwe2SVg4/Jl0zcx24XBd7/ root@hadoop02
    ##我的hadoop03的/root/.ssh/id_rsa.pub文件内容
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDL+o7b6PTYW2MiETCFG2Gg4sIBGXexjJC4LPX4xCZsa7XE8ToCRd4/LIkc+a7lhxVYAbp1wWf+oF+zJapq7Aa6ZOowpviAyFJg/K1DvAdvfhjG8HJE8I6zgknhu3ixAxtIozmrtD17bGVXUSR+7i9rZtvWuhNiIZ/EWI2QGKRuEoKBYsFuIeXn6f/zvJQGj3hFMNvO60dOxDByMDTfAaQse0+rz9mFLr0Xbu2HRpxLC34iiTRpEZhWY+lgEyt8LYrXJeNjHx15qHn6OXYzc2YH8apryfmv1PhTeJZfHDTnmIARfIuyxxvUs7VS13w8VZBD9L7sjk2AFcDAoAlJ1IkX root@hadoop03
    
    ##汇总之后就是
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPnzSm1RBU/H4fcg2rIEh5O5AzE3uprj67LNsS8g9xjajuGz1eZ+dbp8lKZl/OrA9ihkg5FaCh/NKtdHMW4dw2Q0ST5m2y/tz94PNhGYnC84cZ02TzcV1HnlAr3Od+RsvfQt1Rmc3PZDn7bel21gc08YgfpMOjj0R7dfcYPBx/SW/mLekQz4JCESbTk+Ev24r2zE9gfmV8NZzsr+Jx8r/WxfoauMRrVXNcu8LmZ6irkyIe9CAWeVMLlaZPFWLwvW0S/aWMVmXsYf9fkC00L+S6YeaHzezKDwA2r6uvgy5SWFiCw0iQhNB+fb9MAD4e+fesvb4Ra+hmYk28wzz3K8tp root@hadoop01
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDL6uc5/Upj1vpTy0hSd+kRp8aYE2PdjpResBy8nm4g+ZhXAZG/eas5aVHZhLxX7PePwtVTJZ/v1RU3UfgNIXMwJhteNaFPgZFdMjFIcsgqJBKzzP2DVm3qz9tUC6UfQ156r2GL9KGn82R9xMdZXgfMHARsRs2SQx6w90HlnwwQvcbsXeyJ71Lr9xnEYWX1pwksxkr6fIEyT0666/CFcPFXPrBVgHen0cSzXcKcA3qinCrJfke/eesC30+e7oJ6WruEXKUa3BVuU59P0Ac4QV9C+5jIC/HSn73pA5NxA55gEFPxN2DtjEE/QqwznY+6DPGwe2SVg4/Jl0zcx24XBd7/ root@hadoop02
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDL+o7b6PTYW2MiETCFG2Gg4sIBGXexjJC4LPX4xCZsa7XE8ToCRd4/LIkc+a7lhxVYAbp1wWf+oF+zJapq7Aa6ZOowpviAyFJg/K1DvAdvfhjG8HJE8I6zgknhu3ixAxtIozmrtD17bGVXUSR+7i9rZtvWuhNiIZ/EWI2QGKRuEoKBYsFuIeXn6f/zvJQGj3hFMNvO60dOxDByMDTfAaQse0+rz9mFLr0Xbu2HRpxLC34iiTRpEZhWY+lgEyt8LYrXJeNjHx15qHn6OXYzc2YH8apryfmv1PhTeJZfHDTnmIARfIuyxxvUs7VS13w8VZBD9L7sjk2AFcDAoAlJ1IkX root@hadoop03
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5.将authorized_keys文件复制到其他机器

    将authorized_keys复制到其他机器,可以使用可视化工具,比如FlashFXP。最后呈现的结果是三个机器都如图所示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sqyblX35-1660410601294)(https://upload-images.jianshu.io/upload_images/7174867-8753b5f1b353e662.png)]

    image.png

    6.进行免密码登陆测试

    前面搞了这么多就是为了让他们通起来,这就来测试下吧!
    在hadoop01上面进行测试:

    [root@hadoop01 ~]# ssh hadoop02
    Last login: Fri Jul 13 01:34:06 2018 from hadoop03
    [root@hadoop02 ~]# exit
    登出
    Connection to hadoop02 closed.
    [root@hadoop01 ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    当然,第一次登录可能要按一次回车,如图

    7174867-1bee27187b8037e9.png

    image.png

    三台机器之间可以互多测试几遍

    三、安装jdk和hadoop

    1.安装jdk

    见我的另外一篇教程
    https://www.jianshu.com/p/a243fc5f0fc5

    2.下载hadoop

    http://hadoop.apache.org/releases.html
    选择合适的版本进行下载,我这边使用的是2.91
    http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.1/hadoop-2.9.1.tar.gz

    3.上传文件并进行解压

    在opt目录下新建一个名为hadoop的目录,并将下载得到的hadoop-2.9.1.tar.gz上载到该目录下。
    进入该目录,并进行解压操作:

    [root@hadoop01 ~]# cd   /opt/hadoop
    [root@hadoop01 hadoop]# tar  -xvf   hadoop-2.9.1.tar.gz
    
    • 1
    • 2

    在三台机器上重复这一操作。
    在/root目录下新建几个目录,复制粘贴执行下面的命令:

    mkdir  /root/hadoop
    mkdir  /root/hadoop/tmp
    mkdir  /root/hadoop/var
    mkdir  /root/hadoop/dfs
    mkdir  /root/hadoop/dfs/name
    mkdir  /root/hadoop/dfs/data
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.修改一大堆的配置文件

    进入/opt/hadoop/hadoop-2.9.1/etc/hadoop/
    主要修改的配置文件都在这里,我们可以看一下。

    [root@hadoop01 hadoop]# ls /opt/hadoop/hadoop-2.9.1/etc/hadoop/
    capacity-scheduler.xml  core-site.xml   hadoop-metrics2.properties  hdfs-site.xml            httpfs-signature.secret  kms-env.sh            log4j.properties  mapred-queues.xml.template  slaves                  yarn-env.cmd
    configuration.xsl       hadoop-env.cmd  hadoop-metrics.properties   httpfs-env.sh            httpfs-site.xml          kms-log4j.properties  mapred-env.cmd    mapred-site.xml             ssl-client.xml.example  yarn-env.sh
    container-executor.cfg  hadoop-env.sh   hadoop-policy.xml           httpfs-log4j.properties  kms-acls.xml             kms-site.xml          mapred-env.sh     mapred-site.xml.template    ssl-server.xml.example  yarn-site.xml
    [root@hadoop01 hadoop]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    下面进行配置文件的修改,用vim命令(或者文件替换,和上面的操作一样)

    !!!细节提示:一下配置文件中,带有hadoop01的,你们都需要替换成自己配置的主机名称,不要照抄!!!

    1. 修改core-site.xml

    在节点内加入配置:

     
            hadoop.tmp.dir
            /root/hadoop/tmp
            Abase for other temporary directories.
       
       
            fs.default.name
            hdfs://hadoop01:9000
       
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2)修改hadoop-env.sh

    export   JAVA_HOME=${JAVA_HOME}
    
    • 1

    修改为:

    export   JAVA_HOME=/opt/java/jdk1.8.0_171
    
    • 1

    说明:修改为自己的JDK路径

    3)修改hdfs-site.xml

    在节点内加入配置:

    
       dfs.name.dir
       /root/hadoop/dfs/name
       Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.
    
    
       dfs.data.dir
       /root/hadoop/dfs/data
       Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.
    
    
       dfs.replication
       2
    
    
          dfs.permissions
          false
          need not permissions
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    说明(这一段我是抄的,不是很理解,总之,我写的是true):dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。

    4)新建并且修改mapred-site.xml

    该版本中,有一个名为mapred-site.xml.template的文件,复制该文件,然后改名为mapred-site.xml,命令是:

    cp   /opt/hadoop/hadoop-2.9.1/etc/hadoop/mapred-site.xml.template     /opt/hadoop/hadoop-2.9.1/etc/hadoop/mapred-site.xml
    
    • 1

    修改这个新建的mapred-site.xml文件,在节点内加入配置:

    
       mapred.job.tracker
       hadoop01:49001
    
    
          mapred.local.dir
           /root/hadoop/var
    
    
           mapreduce.framework.name
           yarn
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    5)修改slaves文件

    修改/opt/hadoop/hadoop-2.9.1/etc/hadoop/slaves文件,将里面的localhost删除,添加如下内容:

    hserver2
    hserver3
    
    • 1
    • 2

    **说明:**这个只需要修改hadoop01主机,另外两台不需要修改!!!

    6)修改yarn-site.xml文件

    修改/opt/hadoop/hadoop-2.9.1/etc/hadoop/yarn-site.xml文件, 在节点内加入配置(注意了,内存根据机器配置越大越好,我这里只配2个G是因为机器不行):

    
            yarn.resourcemanager.hostname
            hadoop01
       
       
            The address of the applications manager interface in the RM.
            yarn.resourcemanager.address
            ${yarn.resourcemanager.hostname}:8032
       
       
            The address of the scheduler interface.
            yarn.resourcemanager.scheduler.address
            ${yarn.resourcemanager.hostname}:8030
       
       
            The http address of the RM web application.
            yarn.resourcemanager.webapp.address
            ${yarn.resourcemanager.hostname}:8088
       
       
            The https adddress of the RM web application.
            yarn.resourcemanager.webapp.https.address
            ${yarn.resourcemanager.hostname}:8090
       
       
            yarn.resourcemanager.resource-tracker.address
            ${yarn.resourcemanager.hostname}:8031
       
       
            The address of the RM admin interface.
            yarn.resourcemanager.admin.address
            ${yarn.resourcemanager.hostname}:8033
       
       
            yarn.nodemanager.aux-services
            mapreduce_shuffle
       
       
            yarn.scheduler.maximum-allocation-mb
            2048
            每个节点可用内存,单位MB,默认8182MB
       
       
            yarn.nodemanager.vmem-pmem-ratio
            2.1
       
       
            yarn.nodemanager.resource.memory-mb
            2048
    
       
            yarn.nodemanager.vmem-check-enabled
            false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    四、启动hadoop

    到这里,就是检验成果的时候了,激动一下吧!

    1.在namenode上执行初始化

    因为hadoop01是namenode,hadoop02和hadoop03都是datanode,所以只需要对hadoop01进行初始化操作,也就是对hdfs进行格式化。

    [root@hadoop01 hadoop]# cd   /opt/hadoop/hadoop-2.9.1/bin
    [root@hadoop01 bin]#  ./hadoop  namenode  -format
    ...
    ...
    
    • 1
    • 2
    • 3
    • 4

    不报错的话,就是顺利的执行完初始化了;
    格式化成功后,可以在看到在/root/hadoop/dfs/name/目录多了一个current目录,而且该目录内有一系列文件:

    [root@hadoop01 bin]# cd /root/hadoop/dfs/name/
    [root@hadoop01 name]# ls
    current  in_use.lock
    [root@hadoop01 name]# ls current/
    edits_0000000000000000001-0000000000000000002  edits_0000000000000000005-0000000000000000006  fsimage_0000000000000000004      fsimage_0000000000000000006      seen_txid
    edits_0000000000000000003-0000000000000000004  edits_inprogress_0000000000000000007           fsimage_0000000000000000004.md5  fsimage_0000000000000000006.md5  VERSION
    [root@hadoop01 name]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.执行启动命令:

    [root@hadoop01 name]# cd    /opt/hadoop/hadoop-2.9.1/sbin
    [root@hadoop01 sbin]# ./start-all.sh
    ...
    ...
    
    • 1
    • 2
    • 3
    • 4

    第一次执行上面的启动命令,会需要我们进行交互操作,在问答界面上输入yes回车,我由于已经安装完成,所以就复制了个网上的图。

    7174867-938cd1353ca5daeb.png

    image.png

    五、测试hadoop

    hadoop01是我自己的主机,ip是10.25.0.165
    所以访问:
    http://10.25.0.165:50070/

    7174867-e7b7c52aae489789.png

    image.png

    http://10.25.0.165:8088/

    7174867-aa3d5f7122a3df03.png

    image.png

    那么,你成功过了嘛?!

    六、问题

    1.hadoop命令无法使用

    在昨天使用了成功安装部署了hadoop之后,使用了

    hadoop fs -ls /*
    
    • 1

    命令来查看HDFS文件系统,结果发现报错

    [root@hadoop01 hadoop-2.9.1]# hadoop fs -ls /*
    bash: hadoop: 未找到命令...
    
    • 1
    • 2

    这是由于没有配置环境变量的关系,使用vim命令修改 /etc/profile 文件,添加

    export HADOOP_HOME=你的hadoop安装路径
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    
    • 1
    • 2

    2.datanode没有启动

    在使用start-all.sh启动hadoop的时候,会发现,主节点namenode是启动了,但是分节点datanode启动失败。继续观察,会发现一开始是有datanode的,但它在启动后一会儿自动消失了。
    可能原因网上讲了一些:防火墙没关(注意区分centOS6和centOS7关闭防火墙的命令是不一样的)。
    我这边经过反复查询发现原因是因为datanode的clusterID 和 namenode的clusterID 不匹配!

    打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致。

    [root@hadoop01 sbin]#  cat /root/hadoop/dfs/name/current/VERSION
    #Fri Jul 13 23:04:07 CST 2018
    namespaceID=781012180
    clusterID=CID-b6934b47-4a9a-4e4c-8291-cd153ef830ba
    cTime=1531494247761
    storageType=NAME_NODE
    blockpoolID=BP-485123232-10.25.0.165-1531494247761
    layoutVersion=-63
    [root@hadoop01 sbin]#  cat /root/hadoop/dfs/data/current/VERSION
    #Fri Jul 13 18:27:19 CST 2018
    storageID=DS-b3dda351-22bb-4423-b058-df3b5af962ae
    clusterID=hadoop-federation-clusterId
    cTime=0
    datanodeUuid=9241c115-8068-46d4-956b-eb86b8b37b49
    storageType=DATA_NODE
    layoutVersion=-57
    [root@hadoop01 sbin]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-all.sh)再执行jps命令可以看到datanode已正常启动。

  • 相关阅读:
    Redis持久化策略剖析
    GSCoolink GSV650X HDMI1to4 Splitter
    Ajax零基础入门 Ajax零基础入门第三天 3.5 jQuery高级用法 && 3.6 axios
    Git冲突解决指南:如何优雅地解决代码合并冲突
    数据结构— —双向链表
    使用EasyExcel时踩过的坑
    Shell 流程控制
    【云原生】Service服务暴露详细
    【vue3】可编辑el-table
    人工智能在电子商务中的突破性优势
  • 原文地址:https://blog.csdn.net/m0_54883970/article/details/126326832