分享一份關於Hadoop2.2.0集群環境搭建文檔

来源:https://www.cnblogs.com/zhangbc/archive/2019/11/14/11862631.html
-Advertisement-
Play Games

[TOC] 一,準備環境 基本配置如下: 初始化四台 虛擬機,配置如下: 修改系統時區 為方便使用建議如下配置: 安裝 " " 插件; 設置 行號; 安裝 插件服務; 安裝 插件服務並加以配置,方便文件上傳下載; 在 上安裝 客戶端; 在 上安裝 客戶端。 需要的軟體: 在虛擬機做如下步驟:創建目錄 ...


目錄

一,準備環境

  • PC基本配置如下:
處理器:Intel(R) Core(TM) i5-3230M CPU @ 2.6GHz 2.60GHz
安裝記憶體(RAM): 12.0GB
系統類型:64位操作系統

PC配置

  • 初始化四台Ubuntu-14.04_x64虛擬機,配置如下:
記憶體:2GB
處理器:1
硬碟:40G
網路適配器:NAT
系統:Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

虛擬機配置

  • 修改系統時區
 ~ sudo timedatectl set-timezone "Asia/Shanghai"
  • 為方便使用建議如下配置:

安裝oh-my-zsh插件;

設置VIM行號;

安裝SSH插件服務;

安裝vsftpd插件服務並加以配置,方便文件上傳下載;

PC上安裝XSHELL客戶端;

PC上安裝FTP客戶端。

  • 需要的軟體:
jdk-7u51-linux-x64.gz  鏈接:http://pan.baidu.com/s/1dFFT1GP  密碼:cc5t

hadoop-2.2.0-x64.tar.gz https://download.csdn.net/download/wwyymmddbb/10203840
  • 在虛擬機做如下步驟:創建目錄,存儲工具包/home/zhangbocheng,並利用FTP上傳相關軟體包。
    FTP
    軟體包

    二,安裝單機環境

  • 安裝Java1.7.0

~ mkdir java
~ cd java   
➜  java tar -xf /home/zhangbocheng/jdk-7u51-linux-x64.gz 
➜  java ln -s jdk1.7.0_51 JDK
➜  java vi ~/.bashrc 
➜  java vi ~/.zshrc
export JAVA_HOME=$HOME/java/java
export PATH=$JAVA_HOME/bin:$PATH

:wq            
➜  java source ~/.bashrc 
➜  java source ~/.zshrc
➜  java java -version 
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

Java

  • 安裝Hadoop2.2.0
➜  ~ tar -xf /home/zhangbocheng/hadoop-2.2.0-x64.tar.gz
➜  ~ mv hadoop-2.2.0 hadoop2.2.0    
➜  ~ mkdir hadoop2.2.0/hdfs  
➜  ~ mkdir hadoop2.2.0/hdfs/name
➜  ~ mkdir hadoop2.2.0/hdfs/data
➜  ~ mkdir hadoop2.2.0/logs     
➜  ~ mkdir hadoop2.2.0/tmp 
  • 配置環境
➜  ~ vi .zshrc 
export JAVA_HOME=$HOME/java/jdk
export CLASSPATH=$JAVA_HOME/lib/tool.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
➜  ~ source .zshrc 
➜  ~ echo $CLASSPATH
/home/zhangbc/java/jdk/lib/tool.jar:/home/zhangbc/java/jdk/lib/dt.jar
➜  ~ vi .zshrc 
export HADOOP_HOME=$HOME/hadoop2.2.0
export PATH=$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
➜  ~ source .zshrc 
➜  ~ hadoop version
Hadoop 2.2.0
Subversion Unknown -r Unknown
Compiled by root on 2014-09-21T22:41Z
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4
This command was run using /home/zhangbc/hadoop2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar

Hadoop

  • 修改Hadoop2.2.0配置文件
# 檢查並修改以下三個文件中JAVA_HOME的值
➜  ~ vi hadoop2.2.0/etc/hadoop/hadoop-env.sh 
➜  ~ vi hadoop2.2.0/etc/hadoop/yarn-env.sh 
➜  ~ vi hadoop2.2.0/etc/hadoop/mapred-env.sh # 只需要去掉註釋加以修改
export JAVA_HOME=${JAVA_HOME} # 錯誤
export JAVA_HOME=/home/zhangbc/java/jdk # 正確

# 添加集群的slave節點
➜  ~ vi hadoop2.2.0/etc/hadoop/slaves 
# localhost
slave_1
slave_2
slave_3

➜  ~ vi hadoop2.2.0/etc/hadoop/core-site.xml 
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000/</value>
        <descrption>設定namenode的主機名及其埠</descrption>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/zhangbc/hadoop2.2.0/tmp/hadoop-${user.name}</value>
        <descrption>存儲臨時文件</descrption>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>
</configuration>


➜  ~ vi hadoop2.2.0/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
        <descrption>設定NameNode地址及其埠</descrption>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave_1:50090</value>
        <descrption>設定SecondNameNode地址及其埠</descrption>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
        <descrption>設定HDFS存儲文件的副本個數,預設為3</descrption>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/zhangbc/hadoop2.2.0/hdfs/name</value>
        <descrption>設置NameNode用來持續存儲命名空間和交換日誌的本地文件系統路徑</descrption>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///home/zhangbc/hadoop2.2.0/hdfs/data</value>
        <descrption>設置DataNode在本地存儲文件的目錄列表</descrption>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>file:///home/zhangbc/hadoop2.2.0/hdfs/namesecondary</value>
        <descrption>設置SecondaryNameNode存儲臨時鏡像的本地文件系統路徑,
            若這是一個用逗號分隔的列表,則鏡像會冗餘複製到所有目錄</descrption>
    </property>
    <property>
        <name>dfs.webhdfs.enable</name>
        <value>true</value>
        <descrption>是否允許網頁瀏覽HDFS文件</descrption>
    </property>
    <property>
        <name>dfs.stream-buffer-size</name>
        <value>131072</value>
        <descrption>預設為4KB,作為Hadoop的緩衝區,用於Hapdoop讀寫HDFS的文件,
        還有map的輸出都用到了這個緩衝區容量,131072=128KB</descrption>
    </property>
</configuration>


➜  ~ vi hadoop2.2.0/etc/hadoop/mapred-site.xml 
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>


➜  ~ vi hadoop2.2.0/etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>
  • 修改主機名稱(千萬不要含有下劃線_
➜  ~ sudo hostname master   # 只對當前狀態生效
[sudo] password for zhangbc: 
➜  ~ hostname
master
➜  ~ sudo vi /etc/hostname # 永久修改


master
:wq
  • 關閉防火牆
➜  ~ service ufw status
ufw start/running
➜  ~ sudo service ufw stop
[sudo] password for zhangbc: 
ufw stop/waiting
➜  ~ service ufw status   
ufw stop/waiting

三,克隆VM

通過 VMware Workstation工具,關閉當前虛擬機,對其克隆三台虛擬機作為從機使用。

克隆方法選擇“創建完整克隆(F)”,如圖所示:
創建完整克隆

四,搭建集群

  • 修改三台從機slavehost,並再重啟使之生效。
➜  ~ sudo vi /etc/hostname
➜  ~ sudo vi /etc/hosts
➜  ~ sudo reboot
  • 對所有集群中的伺服器進行檢查,關閉防火牆並禁止掉。
➜  ~ sudo service ufw status
[sudo] password for zhangbc: 
ufw start/running
➜  ~ sudo service ufw stop  
ufw stop/waiting
➜  ~ sudo service ufw status
ufw stop/waiting
➜  ~ sudo ufw disable 
Firewall stopped and disabled on system startup
  • 對所有集群中的伺服器綁定hostnameIP
➜  ~ sudo vi /etc/hosts
 192.168.71.128  master
 192.168.71.129  slave_1
 192.168.71.130  slave_2
 192.168.71.131  slave_3
  • 對所有集群中的伺服器創建SSH密鑰,完成相關驗證,註意保留原有的其他密鑰,以備他用
➜  .ssh mv id_rsa id_rsa_git
➜  .ssh mv id_rsa.pub id_rsa_git.pub
➜  .ssh ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
# 生成authorized_keys
➜  .ssh cat id_rsa.pub >> authorized_keys
# 設置許可權
➜  .ssh sudo chmod 600 authorized_keys 
# ssh登錄本機,並退出
➜  .ssh ssh localhost 
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is b6:fa:8d:2b:2d:0d:e4:fd:4f:44:ed:37:3f:79:b6:ce.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 4.4.0-142-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

New release '16.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Your Hardware Enablement Stack (HWE) is supported until April 2019.
Last login: Wed Nov 13 20:17:41 2019 from 192.168.71.1
➜  ~ exit
Connection to localhost closed.
➜  .ssh 
 
  • 配置各個節點之間免密登錄
# 將slave_1節點rsa通過ssh-copy-id分別複製到master,slave_2,slave_3
➜  ~ ssh-copy-id -i ~/.ssh/id_rsa.pub master
➜  ~ ssh-copy-id -i ~/.ssh/id_rsa.pub slave_2
➜  ~ ssh-copy-id -i ~/.ssh/id_rsa.pub slave_3
# 驗證登錄
➜  ~ ssh master
➜  ~ ssh slave_2
➜  ~ ssh slave_3
# 其他節點同步驟

五,Hadoop啟動與測試

  • 格式化文件系統
➜  ~ hdfs namenode -format
19/11/13 21:57:48 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = master/192.168.71.128
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.2.0
.........
19/11/13 21:57:55 INFO util.ExitUtil: Exiting with status 0  # 表示成功
.........
  • 啟動HDFS
zhangbc@master:~$ start-dfs.sh 
Starting namenodes on [master]
master: starting namenode, logging to /home/zhangbc/hadoop2.2.0/logs/hadoop-zhangbc-namenode-master.out
slave_1: starting datanode, logging to /home/zhangbc/hadoop2.2.0/logs/hadoop-zhangbc-datanode-slave_1.out
slave_3: starting datanode, logging to /home/zhangbc/hadoop2.2.0/logs/hadoop-zhangbc-datanode-slave_3.out
slave_2: starting datanode, logging to /home/zhangbc/hadoop2.2.0/logs/hadoop-zhangbc-datanode-slave_2.out


zhangbc@master:~$ jps
6524 Jps
5771 NameNode
zhangbc@slave_1:~$ jps
4919 Jps
4818 DataNode
zhangbc@slave_2:~$ jps
4919 Jps
4801 DataNode
zhangbc@slave_3:~$ jps
4705 DataNode
4800 Jps

WEB驗證:http://192.168.71.128:50070
web_dfs

  • 啟動Yarn
zhangbc@master:~$ start-yarn.sh 
starting yarn daemons
starting resourcemanager, logging to /home/zhangbc/hadoop2.2.0/logs/yarn-zhangbc-resourcemanager-master.out
slave_2: starting nodemanager, logging to /home/zhangbc/hadoop2.2.0/logs/yarn-zhangbc-nodemanager-slave_2.out
slave_1: starting nodemanager, logging to /home/zhangbc/hadoop2.2.0/logs/yarn-zhangbc-nodemanager-slave_1.out
slave_3: starting nodemanager, logging to /home/zhangbc/hadoop2.2.0/logs/yarn-zhangbc-nodemanager-slave_3.out

zhangbc@master:~$ jps
5771 NameNode
6642 Jps
zhangbc@slave_1:~$ jps
5099 Jps
4818 DataNode
5011 NodeManager
zhangbc@slave_2:~$ jps
5101 Jps
5016 NodeManager
4801 DataNode
zhangbc@slave_2:~$ jps
5101 Jps
5016 NodeManager
4801 DataNode

WEB驗證:http://192.168.71.128:8088
web_yarn

  • 管理JobHistory Server
zhangbc@master:~$ mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /home/zhangbc/hadoop2.2.0/logs/mapred-zhangbc-historyserver-master.out
zhangbc@master:~$ mr-jobhistory-daemon.sh stop historyserver

WEB驗證:http://192.168.71.128:19888
web_job

  • 集群驗證
# 創建目錄
zhangbc@master:~$ hdfs dfs -mkdir -p /data/wordscount
zhangbc@master:~$ hdfs dfs -mkdir -p /output

# 查看數據目錄
zhangbc@master:~$ hdfs dfs -ls /data

# 上傳本地文件
zhangbc@master:~$ hdfs dfs -put hadoop2.2.0/etc/hadoop/core-site.xml /data/wordscount

# 執行
zhangbc@master:~$ hadoop jar hadoop2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /data/wordscount /output/wordscount
...............................
19/11/14 13:04:45 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1573705994579_0001/
19/11/14 13:04:45 INFO mapreduce.Job: Running job: job_1573705994579_0001
19/11/14 13:04:59 INFO mapreduce.Job: Job job_1573705994579_0001 running in uber mode : false
19/11/14 13:04:59 INFO mapreduce.Job:  map 0% reduce 0%
19/11/14 13:05:14 INFO mapreduce.Job:  map 100% reduce 0%
19/11/14 13:05:27 INFO mapreduce.Job:  map 100% reduce 100%
19/11/14 13:05:27 INFO mapreduce.Job: Job job_1573705994579_0001 completed successfully
19/11/14 13:05:27 INFO mapreduce.Job: Counters: 43
............................................

# 查看運行結果
zhangbc@master:~$ hdfs dfs -cat /output/wordscount/part-r-00000

六,安裝過程中遇到的問題及其解決方案

  • 問題1:上傳文件報錯
zhangbc@master:~$ hdfs dfs -put hadoop2.2.0/etc/hadoop/core-site.xml /data/wordcount
19/11/14 10:13:24 WARN hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOExcept、ion): File /data/wordcount/core-site.xml._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1384)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2477)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:555)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:387)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:59582)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2048)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2042)

    at org.apache.hadoop.ipc.Client.call(Client.java:1347)
    at org.apache.hadoop.ipc.Client.call(Client.java:1300)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
    at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:186)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
    at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:330)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1226)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1078)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:514)
put: File /data/wordcount/core-site.xml._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.
19/11/14 10:13:24 ERROR hdfs.DFSClient: Failed to close file /data/wordcount/core-site.xml._COPYING_
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/wordcount/core-site.xml._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1384)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2477)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:555)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:387)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:59582)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2048)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2042)

    at org.apache.hadoop.ipc.Client.call(Client.java:1347)
    at org.apache.hadoop.ipc.Client.call(Client.java:1300)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
    at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:186)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
    at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:330)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1226)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1078)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:514)

主要原因是重新格式化文件系統,導致master節點下的hadoop2.2.0/hdfs/name/current/VERSION中的clusterIDSlave節點下的hadoop2.2.0/hdfs/data/current/VERSION中的clusterID不一致。在瀏覽器輸入master:50070可以發現Live Nodes為0。

解決方案是修改master節點下的clusterID使之與Slave節點下的clusterID一致,然後重啟服務即可。

  • 問題2:執行JAR報錯問題
Container launch failed for container_1573700741821_0001_01_000007 : java.lang.IllegalArgumentException: Does not contain a valid host:port authority: slave_1:33775

主要原因Hadoop nodemanager結點主機名不能帶下劃線_

解決方案:修改主機名稱。

  • 問題3:綁定主機名引起的問題:sudo: unable to resolve host master

解決方案如下:

➜  ~ sudo vi /etc/hosts

  1 127.0.0.1       localhost
  2 127.0.1.1       ubuntu
  3 127.0.1.1       master
:wq!

通過本次實驗,對集群概念有個基本的認識,在搭建過程中遇到問題不算太多,主要是對區域網組建缺乏認識深度,本集群環境可以進一步擴展,如動態增減節點,藉助Zookeeper技術加以融合等在企業中是比較常見的做法。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ip配置: vim /etc/network/interfaces auto eth0 iface eth0 inet static >靜態 iface eth0 inet dhcp >動態 address 192.168.0.133 netmask 255.255.255.0 gateway 19 ...
  • 字元串的MD5值 下麵這個例子是字元串 hello 的MD5值 命令解析 echo 預設是帶換行符做結尾的 echo n 可以去掉換行符 md5sum 列印或檢查MD5(128位)校驗和 文件的MD5值 下麵這個例子是文件 a.txt 的MD5值 命令解析 md5sum 列印或檢查MD5(128位) ...
  • Linux關鍵的根文件介紹 /etc:配置文件 /home:用戶的家目錄。每一個用戶的家目錄通常預設為/home/用戶名 /root:管理員的家目錄 /lib:庫文件 靜態庫:.a 動態庫:.dll .so /lib/modules:內核模塊文件 /media:掛載點目錄(常應用於移動設備) /mn ...
  • 電腦操作系統鎖機制. 在多線程編程中,操作系統引入了鎖機制。通過鎖機制,能夠保證在多核多線程環境中,在某一個時間點上,只能有一個線程進入臨界區代碼,從而保證臨界區中操作數據的一致性。 所謂的鎖,可以理解為記憶體中的一個整型數,擁有兩種狀態:空閑狀態和上鎖狀態。加鎖時,判斷鎖是否空閑,如果空閑,修改為 ...
  • 監控SQLServer資料庫 SSMS執行相關SQL SQL模板命名規則 Zabbix客戶端導入模板 添加SQLServer監控圖形 SQLServer伺服器關聯模板 監控思科Cisco防火牆交換機 監控SQLServer資料庫 SSMS執行相關SQL SQL模板命名規則 Zabbix客戶端導入模板 ...
  • 這段時間一直在學習mysql資料庫。項目組一直用的是oracle,所以對mysql的瞭解也不深。本文主要是對mysql鎖的總結。 Mysql的鎖主要分為3大類: 表級鎖:存儲引擎為Myisam。鎖住整個表,特點是開銷小,加鎖快,鎖定力度大,發生鎖衝突的概率最高,併發度最低。 頁級鎖:存儲引擎為BDB ...
  • 恢復內容開始 SQL語句的執行順序 1>From 表 2>where 條件 3>group by 列 4>Having 篩選條件 5>select 5-1>被分組列,聚合函數列5-2>distinct>5-3>top6>order by 列 GROUP BY --當使用了分組語句(group by) ...
  • CREATE TABLE biao( name VARCHAR(20) PRIMARY KEY, age INT(11) NOT NULL, sex CHAR(11)DEFAULT 1, love VARCHAR(11) );Query OK, 0 rows affected 此時name設置了主鍵 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...