一、克隆
1.在虛擬機(jī)關(guān)機(jī)的狀態(tài)下選擇克隆
2.開(kāi)始克隆
3.選擇從當(dāng)前狀態(tài)創(chuàng)建
4.創(chuàng)建一個(gè)完整的克隆
5.選擇新的虛擬機(jī)存儲(chǔ)位置(選擇內(nèi)存充足的磁盤(pán))
6.開(kāi)始克隆
7.克隆完成
8.同樣的方法克隆第二臺(tái)虛擬機(jī)
9.在計(jì)算機(jī)中存在三臺(tái)虛擬機(jī)
將第一臺(tái)虛擬機(jī)更名為hadoop01
修改hadoop01的主機(jī)名為hadoop01
修改hadoop02的主機(jī)名為hadoop02
同樣的方式修改hadoop03的主機(jī)名為hadoop03
二、網(wǎng)絡(luò)配置
查看三臺(tái)虛擬機(jī)IP地址,該地址為動(dòng)態(tài)分配
設(shè)置三臺(tái)主機(jī)IP地址為固定地址:
-
點(diǎn)擊【編輯】——【虛擬網(wǎng)絡(luò)編輯器】
-
【選擇VMnet】模式——【NAT設(shè)置】
-
輸入自己設(shè)置的子網(wǎng)IP和子網(wǎng)掩碼
我這里設(shè)置的 子網(wǎng)IP:192.168.10.0
子網(wǎng)掩碼:255.255.255.0
hadoop01主機(jī)設(shè)置固定IP地址:
輸入命令:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改文件信息:
IPADDR=192.168.10.131
GATEWAY=192.168.10.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
執(zhí)行命令重啟網(wǎng)絡(luò)服務(wù):
systemctl restart network.service
查看配置后的網(wǎng)絡(luò)信息:
ifconfig
hadoop02和hadoop03配置方法和hadoop01方法一致
三、SSH服務(wù)配置
使用Xshell工具繼續(xù)操作較為方便,所以我以下的操作均在Xshell中進(jìn)行
分別連接三臺(tái)主機(jī)(【新建連接】——【輸入主機(jī)IP】——【連接】)
采用輸入主機(jī)名稱(chēng)與密碼的方式進(jìn)行連接
成功連接三臺(tái)主機(jī)
添加主機(jī)名與IP地址的映射關(guān)系
在hadoop01、hadoop02和hadoop03三臺(tái)主機(jī)中分別添加主機(jī)名與IP地址的映射關(guān)系
執(zhí)行命令:
sudo vi /etc/hosts
內(nèi)容如下:
復(fù)制hadoop01的公鑰到hadoop02和hadoop03中
驗(yàn)證免密碼登錄
四、hadoop完全分布式配置
Hadoop完全分布式配置目標(biāo):
hadoop01 | hadoop02 | hadoop03 |
---|---|---|
NameNode進(jìn)程 | DataNode進(jìn)程 | DataNode進(jìn)程 |
ResourceManager進(jìn)程 | NodeManage進(jìn)程 | NodeManage進(jìn)程 |
\ | SecondaryNameNode進(jìn)程 | \ |
配置主節(jié)點(diǎn)
進(jìn)入hadoop目錄下執(zhí)行命令
cd /usr/local/java/hadoop-2.7.7/etc/hadoop
修改core-site.xml文件
sudo vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/java/hadoop-2.7.7/tmp</value>
</property>
</configuration>
修改hdfs-site.xml
sudo vi hadf-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090/</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/java/hadoop-2.7.7/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/java/hadoop-2.7.7/dfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
</configuration>
修改mapred-site.xml文件
sudo vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>hadoop01:9001</value>
</property>
</configuration>
修改yarn-site.xml文件
sudo vi yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01:8099</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
修改slaves文件
sudo vi slaves
slaves的內(nèi)容如下:
在主節(jié)點(diǎn)hadoop01中格式化文件系統(tǒng)
輸入命令之前需要將三臺(tái)主機(jī)的防火墻關(guān)閉
- 查看防火墻狀態(tài):
sudo systemctl status firewalld
- 關(guān)閉防火墻:
sudo systemctl stop firewalld
- 重啟后還想防火墻處于關(guān)閉狀態(tài):
sudo systemctl disable firewalld
建議執(zhí)行順序:【1】——【2】——【3】
關(guān)閉前:
關(guān)閉后:
在主節(jié)點(diǎn)hadoop01中格式化文件系統(tǒng)
輸入命令hdfs namenode -format
或者hadoop namenode -format
集群格式化成功
分發(fā)配置文件
注意:如果是第二次或者多次執(zhí)行格式化操作,在進(jìn)行分發(fā)配置文件之前,需要將hadoop01、hadoop02、hadoop03下的hadoop-2.7.7/dfs目錄下的name和data目錄全部刪掉后,再進(jìn)行拷貝操作。
刪除后文件夾為空:
將hadoop01節(jié)點(diǎn)下的hadoop-2.7.7拷貝給hadoop02和hadoop03
執(zhí)行命令:
scp -r /usr/local/java/hadoop-2.7.7 hadoop02:/usr/local/java/
scp -r /usr/local/java/hadoop-2.7.7 hadoop03:/usr/local/java/
啟動(dòng)和查看Hadoop進(jìn)程
在hadoop01節(jié)點(diǎn)啟動(dòng)服務(wù)
start-all.sh
輸入jsp查看進(jìn)程
hadoop01節(jié)點(diǎn)進(jìn)程
hadoop02節(jié)點(diǎn)進(jìn)程
hadoop03節(jié)點(diǎn)進(jìn)程
關(guān)閉所有進(jìn)程:stop-all.sh
搭建過(guò)程中遇到的問(wèn)題: hadoop02節(jié)點(diǎn)沒(méi)有出現(xiàn)SecondaryNameNode節(jié)點(diǎn),關(guān)閉集群時(shí)出現(xiàn)no
resourcemanager to stop、no nodemanager to stop、no namenode to stop、no
datanode to stop,但是相關(guān)進(jìn)程都真實(shí)存在,并且可用。失敗原因:當(dāng)啟動(dòng)節(jié)點(diǎn)服務(wù)的過(guò)程中沒(méi)有指定pid的存放位置,hadoop默認(rèn)會(huì)放在Linux的/tmp目錄下,進(jìn)程名命名規(guī)則一般是框架名-用戶(hù)名-角色名.pid,而默認(rèn)情況下/tmp里面的東西會(huì)自動(dòng)清除,因?yàn)閜id不存在,所以執(zhí)行stop相關(guān)命令的時(shí)候找不到pid,也就無(wú)法停止相關(guān)進(jìn)程。
解決方法: 使用自定義進(jìn)程存放目錄
修改配置文件hadoop-env.sh 如果沒(méi)有相關(guān)的配置,就直接進(jìn)行添加
修改配置文件mapred-env.sh
修改配置文件yarn-env.sh
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-432176.html
以上文件配置好以后,啟動(dòng)hdfs和yarn,啟動(dòng)成功后查看jps,進(jìn)程都存在,pidDir目錄下有以下文件:
yarn-ttj-nodemanager.pid
yarn-ttj-resourcemanager.pid
hadoop-ttj-namenode.pid
hadoop-ttj-secondarynamenode.pid
hadoop-ttj-datanode.pid文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-432176.html
到了這里,關(guān)于Hadoop完全分布式集群搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!