hadoop分布式集群搭建,包含网络配置-hadoop3环境
生活随笔
收集整理的這篇文章主要介紹了
hadoop分布式集群搭建,包含网络配置-hadoop3环境
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先準備三臺或者五臺虛擬機(我這里寫三臺,實際我用的五臺)
在安裝centos時可以在選擇(最小安裝還是圖形化界面處)有配置網絡的,把網絡先配置好,這樣就不需要在重新配置了
先配置一臺主機,后兩臺克隆即可,我這里搭建的主機用的圖形化界面,從節點用的最小安裝
ip和主機名
| 192.168.228.138 | chun1 |
| 192.168.228.139 | chun2 |
| 192.168.228.140 | chun3 |
把 ip 主機名 寫到/etc/hosts里,這里是映射,用來關聯你的另外的機器。
ip與主機名根據自己情況定義,下面會講ip地址怎么
echo '192.168.228.138 chun1' >>/etc/hosts echo '192.168.228.139 chun2' >>/etc/hosts echo '192.168.228.140 chun2' >>/etc/hosts
把每臺對應的ip和主機名改掉
1- 改ip 進入
[root@chun1 /]# cd /etc/sysconfig/network-scripts/
1.1 ls查看目錄
可以看到 ifcig-ens33文件,centos6與7不同,有的是ifcfig-etho,配置是一樣的。vi編譯此文件,來修改主機ip地址
BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.228.138 //這是你的主機ip NETMASK=255.255.255.0 //這是你的子網掩碼 GATEWAY=192.168.228.3 //這是你的網關 DNS1=192.168.228.3 //第一個DNS1與網關相同 DNS2=114.114.114.114 //第二個用114.114.114然后講怎么配置ip,子網掩碼,網關。
到VMware界面
到此網絡基本配置好了
1.2-更改主機名
分別在對應IP的主機中修改主機名:vi /etc/hostname 把localhost改成你的主機名
2配置ssh免密登錄:
原理很簡單,先在每臺機器上生成秘鑰,ssh-keygen -t rsa,三次回車即可。然后把從節點/root/.ssh/id_rsa.pub發給主機,并改名,要不然會被覆蓋
在chun2上執行:scp /root/.ssh/id_rsa.pub root@chun1:/root/.ssh/id_rsa.pub002 在chun3上執行:scp /root/.ssh/id rsa.pub root@chun1:/root/.ssh/id_rsa.pub003然后在chun1中把三個id_rsa.pub加入到authorized_keys里
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys cat /root/.ssh/id_rsa.pub002 >> /root/.ssh/authorized_keys cat /root/.ssh/id_rsa.pub003 >> /root/.ssh/authorized_keys然后把authorized_keys發給chun2,chun3,就可以實現三臺互通
scp /root/.ssh/authorized_keys root@chun2:/root/.ssh/authorized_keys scp /root/.ssh/authorized_keys root@chun3:/root/.ssh/authorized_keys測試 --退出用exit
以下安裝都是在master(chun1)上安裝之后在發送
3.安裝JDK
下載jdk1.8.0,官網下載即可,下載后解壓,配置環境變量就行。(下載解壓就不講了)
我這里放在了/usr/local/java下java目錄自己創建的
配置環境變量
vi /etc/profile #在最后加上#JAVA JAVA_HOME=/usr/local/java/jdk1.8.0_221 #解壓后的jdk目錄名稱 JRE_JOME=/usr/local/java/jdk1.8.0_221/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_JOME CLASS_PATH PATH刷新環境變量
source /etc/profile測試輸入java -version,java,javac分別查看,出來很多內容即是成功
[root@chun1 ~]# java -version openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)4.安裝hadoop 這里用的2.7.7 ,暫時別用3和2.8.5,后面配置hbase會出現不兼容問題。詳情見我的hbase搭建。
我這里官方下載的2.7.7下載bin類型。下載后解壓到/usr/loacl/hadoophadoop為自己創建的文件夾
tar -zxf hadoop-2.7.7.tar.gz -C /usr/local/hadoop/配置環境變量
#HADOOP export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin #zookeeper export ZOOKEEPER_PREFIX=/usr/local/zookeeper/zookeeper-3.4.6 export PATH=$PATH:$ZOOKEEPER_PREFIX/bin刷新環境變量
source /etc/profile進行測試是否成功
[root@chun1 ~]# hadoop version Hadoop 2.7.7 Subversion Unknown -r c1aad84bd27cd79c3d1a7dd58202a8c3ee1ed3ac Compiled by stevel on 2018-07-18T22:47Z Compiled with protoc 2.5.0 From source with checksum 792e15d20b12c74bd6f19a1fb886490 This command was run using /usr/local/hadoop/hadoop-2.7.7/share/hadoop/common/hadoop-common-2.7.7.jar5.配置Hadoop
創建目錄
#在/usr/local/hadoop目錄下創建目錄 cd /usr/local/hadoop/ mkdir tmp mkdir var mkdir dfs mkdir dfs/name mkdir dfs/data修改配置文件
進入hadoop-2.7.7/etc/hadoop下
cd /usr/local/hadoop/hadoop-3.7.7/etc/hadoop(1) hadoop-env.sh
在# JAVA_HOME=/usr/java/testing hdfs dfs -ls一行下面添加如下代碼 export JAVA_HOME=/usr/local/java/jdk1.8.0_221 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root(2)修改slaves,把從節點名字寫進去,刪除localhost,hadoop3是修改workers。
chun2 chun3下面在各個文件的< configuration> < /configuration>中添加
(3)修改core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.228.138:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>(4)hdfs-site.xml
<property><name>dfs.name.dir</name><value>/usr/local/hadoop/dfs/name</value><description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description> </property> <property><name>dfs.data.dir</name><value>/usr/local/hadoop/dfs/data</value><description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description> </property> <property> <name>dfs.namenode.http-address</name> <value>192.168.228.138:50070</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.228.138:50090</value> </property> <property><name>dfs.replication</name><value>4</value> </property> <property><name>dfs.permissions</name><value>false</value><description>need not permissions</description> </property>(5)mapred-site.xml
<property><name>mapred.job.tracker</name><value>chun1:49001</value> </property> <property><name>mapred.local.dir</name><value>/usr/local/hadoop/var</value> </property> <property><name>mapreduce.framework.name</name><value>yarn</value> </property>(6) yarn-site.xml
在命令行輸入 hadoop classpath,把得到的內容復制到下面
[root@chun1 ~]# hadoop classpath /usr/local/hadoop/hadoop-2.7.7/etc/hadoop:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/common/lib/*:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/common/*:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/hdfs:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/hdfs/lib/*:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/hdfs/*:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/yarn/lib/*:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/yarn/*:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/mapreduce/lib/*:/usr/local/hadoop/hadoop-2.7.7/share/hadoop/mapreduce/*:/usr/local/hadoop/hadoop-2.7.7/contrib/capacity-scheduler/*.jar <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.application.classpath</name> <value>輸入剛才返回的Hadoop classpath路徑</value> //這里借鑒了別人的 </property>到此配置基本結束,然后同步給另外兩臺虛擬機
scp -r /usr/local/java chun2:/usr/local/java scp -r /usr/local/hadoop chun2:/usr/local/hadoop scp -r /etc/profile chun2:/etc/scp -r /usr/local/java chun3:/usr/local/java scp -r /usr/local/hadoop chun3:/usr/local/hadoop scp -r /etc/profile chun3:/etc/這里有個問題就是如果你的另外虛擬機local下有hadoop文件夾和java文件夾,他會放到你的java或者hadoop下,導致你的目錄會又多了一層。可以這樣解決,或者簡單粗暴直接刪除原來的文件夾:
進入到local下 使用命令scp hadoop/ chun2:$PWD 這樣進行傳輸,會覆蓋掉。PWD表示當前你所進入的目錄
然后刷新兩個從節點環境變量
ssh chun2 source /etc/profilessh chun3 source /etc/profile格式化節點
在主節點上執行
hdfs namenode -format運行之后不報錯,并在倒數第五六行有successfully即為格式化節點成功
啟動hadoop集群的服務
start-all.sh輸入jps可以查看進程
chun1上會有namenode
chun2、chun3上有datanode
在瀏覽器上訪問192.168.228.138:50070 查看hdfs的web界面(前面是主節點的ip后面是端口)
查看yarn的web端
總結
以上是生活随笔為你收集整理的hadoop分布式集群搭建,包含网络配置-hadoop3环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 90后女星被网友围攻上热搜!赵樱子回应:
- 下一篇: PWN-PRACTICE-BUUCTF-