一. mini安裝一台centos到虛擬機上
安裝過程參考這篇博客http://www.linuxdown.net/install/setup/2015/0906/4053.html
二. 修改網絡配置文件
-
看百度網址是否能ping通,如果可以,使用命令ifconfig查詢當前的ip地址
-
/etc/sysconfig/network-scripts/ifcfg-eth0 進入這個配置文件進行修改,修改后重啟網卡
DEVICE=eth0 HWADDR=00:0C:29:CC:88:95 TYPE=Ethernet UUID=bf2fbf08-d925-4b3e-9bec-2327c3385f09 #將網卡設置為開機啟動 ONBOOT=yes NM_CONTROLLED=yes #改成none,使用靜態ip BOOTPROTO=none PREFIX=24 #此處的網關地址由上一步通過ifconfig查出來的ip進行配置, #比如查出來的ip是192.168.80.80,那么此處網關就配置為 192.168.80.2 DNS1=192.168.199.2 DNS2=114.114.114.114 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" LAST_CONNECT=1514653019 USERCTL=no #此處填入過ifconfig查出來的ip IPADDR=192.168.199.131 NETMASK=255.255.255.0 #跟DNS1一樣 GATEWAY=192.168.199.2
3. 修改主機名
```
vi /etc/sysconfig/network
HOSTNAME=localhost.localdomain 修改為:
HOSTNAME=自己的主機名
```
-
關閉防火牆並關閉自啟動
關閉防火牆。 1、查看防火牆的狀態: service iptables status 2、關閉防火牆: service iptables stop 3、再次查看狀態: service iptables status 系統提示:iptables:Firewall is not running. 表示停止成功。 4、最后,關閉防火牆開機自啟: chkconfig iptables off 檢查是否關閉成功: chkconfig --list iptables 全部為off表示關閉成功。
-
關閉開機等待時間
vi /boot/grub/menu.lst 將timeout=5,修改即可
-
拍快照及克隆3份出來當做節點
三. 修改每一台節點上的配置
-
修改主機名稱
vi /etc/sysconfig/network
-
克隆后網卡沖突解決
vi /etc/udev/rules.d/70-persistent-net.rules
-
注釋掉第一網卡驅動紅色標注地方
-
修改第二個網卡驅動name=“eth0”
-
記住第二個ATTR{address}=="00:0c:29:95:4a:d3",這個網卡地址后續要用
# PCI device 0x1022:0x2000 (pcnet32) #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ac:0c:#39", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:95:4a:d3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
-
修改$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR 的值修改成上一步中的網卡地址:00:0c:29:95:4a:d3DEVICE=eth0 HWADDR=00:0C:29:95:4A:D3 #修改 TYPE=Ethernet UUID=ad391919-c736-4d3d-b24d-1d78427e7c6e ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp #動態獲取ip,給2.6那一步使用 IPADDR=192.168.8.111 #增加一行 GATEWAY=192.168.8.2 #增加一行
-
重啟機器
reboot
-
再次修改$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 HWADDR=00:0C:29:95:4A:D3 TYPE=Ethernet UUID=ad391919-c736-4d3d-b24d-1d78427e7c6e ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none #修改 IPADDR=192.168.199.132 #填入虛擬機分配的ip,通過ifconfig查詢 GATEWAY=192.168.199.2 #根據上一步ip得到的網關 DNS1=192.168.199.2#跟網關一樣 DNS2=114.114.114.114
```
-
-
在SecureCRT設置免密登陸服務器
-
這個界面,紅處取消打勾
-
在這個界面,增加4處
-
四. hadoop00配置hosts文件
-
vi /etc/hosts
-
如圖所示:
五. 配置服務器ssh免密登陸節點服務器
-
centos默認已經安裝了ssh服務端,4台機都需要安裝ssh客戶端yum -y install openssh-clients
-
在每台機器都生成秘鑰ssh-keygen
-
將hadoop00的公鑰加到其他3台機的authorized_keys文件中
進入hadoop00的.ssh目錄,輸入ssh-copy-id 主機名@域名 就可以自動將hadoop00的公鑰添加到該主機名的免驗證文件中
六. 安裝jdk和hadoop
- 在hadoop00上解壓安裝jdk,並配置環境變量
2. 在hadoop00上解壓安裝hadoop,並配置環境變量
七. 配置hadoop
-
hadoop-env.sh
這個文件需要配置JAVA_HOMEexport JAVA_HOME=/usr/local/jdk1.7.0_79
2. hdfs-site.xml
```
<configuration>
#副本系數,偽分布式使用的1個DataNode,因此這里填1
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
```
-
core-site.xml
<configuration> #配置nameservice地址,默認端口是8020 <property> <name>fs.defaultFS</name> <value>hdfs://hadoop01:8020</value> </property> #這里配置的是hdfs數據庫所在的臨時目錄,如果這里沒有配置,那么默認路徑是系統的臨時>目錄,電腦開機后,會自動格式化 <property> <name>hadoop.tmp.dir</name> <value>/usr/local/apps/hadoop-2.6.0/tmp</value> </property> </configuration>
-
mapred-site.xml
<configuration> #表示MapReduce使用yarn來進行計算 <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> #設置jobhistory的日志端口 <name>mapreduce.jobhistory.address</name> <value>hadoop000:10020</value> </property> #設置jobhistory日志在web上的端口自 <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop000:19888</value> </property> #設置jobhistory日志的臨時存儲目錄 <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>/mr-history/tmp</value> </property> #設置jobhistory完成后的日志目錄 <property> <name>mapreduce.jobhistory.done-dir</name> <value>/mr-history/done</value> </property> </configuration>
-
yarn-site.xml
<configuration> #默認要配 <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> #resourcemanager主機地址配置 <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> </configuration>
八. 配置完后,將hadoop01上的安裝軟件和配置文件下發到DataNode
-
復制/usr/local/apps 到 其他 3個節點將其相同的文件夾上
-
復制/etc/hosts /etc/profile 到3個節點將其相同的文件夾上
九. 進行測試
-
初始化 hdfs namenode -format
-
在$HADOOP_HOME/sbin 執行./start-all.sh
-
在hadoop01輸入jps 如果看到NameNode/ResourceManager/SecondNameNode,說明namenode啟動成功
-
在其他3台機輸入jps,如果都看到DataNode/NodeManager,說明DataNode啟動成功
-
通過shell命令測試創建/上傳/下載等操作,如果成功,說明hadoop機群搭建成功!