虛擬機搭建Hadoop
1:工具列表
Linux 這裏使用的是:CentOS 6.5
Hadoop 這裏使用的是:hadoop-1.2.1-bin.tar.gz
JDK 這裏使用的是:jdk-8u172-linux-x64.tar.gz
2:通過VMware裝3個Linux系統的虛擬機,這裏就不做介紹了(這裏使用的是CentOS 6.5版本)
3 :配置網絡
將3臺機器的IP配置成固定IP, 網絡設置成NET方式
配置固定IP cd /etc/sysconfig/network-scripts; vi ifcfg-eth0 DEVICE="eth7" BOOTPROTO="static" #這裏是設置固定IP模式的: static固定, DHCP自動獲取# HWADDR="00:0C:29:2A:0E:89" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="8ffaa06d-8057-43a1-bb93-1302400da0b9" IPADDR=192.168.183.130 #這裏是設置IP GATEWAY=192.168.183.2 #網關 我這裏設置的是192.168.183.130(父) 其他兩個環境分別設置成: 192.168.183.128(子) 192.168.183.129(子) 設置虛擬機登錄方式:(這裏我個人設置的NET連接方式,其他的應該也可以,可以嘗試一下) NET聯網設置 虛擬機(編輯----.>虛擬網絡編輯器),選擇NET模式 下面的子網IP 設置成 192.168.183.0 進入NET設置,裏面將網關設置成192.168.183.2 然後進入自己本機的網絡設置頁面: 打開網絡與共享中心----->更改適配器設置------> 進入VMware Network Adapter VMnet8的屬性IPv4設置 默認網關設置成192.168.183.2 然後重啟虛擬機的網絡連接(虛擬機右下角的電腦圖標,斷開連接,再重新連接) 虛擬機的設置裏面 設置--->硬件-----> 網絡適配器-----> 網絡連接(選擇自定義,復選VMnet8(NET模式)) 重啟虛擬機
4:配置hostname 和 免密互相訪問
配置hostname cd /etc; vi hosts 在文件內容下面追加 192.168.183.130 blue 192.168.183.129 blue2 192.168.183.128 blue3 註: 要對3個環境分別修改操作 配置network文件 cd /etc/sysconfig ; vi network 編輯network的值,分別修改成blue blue2 blue3 重啟虛擬機,執行hostname 命令,會發現hostname修改成功了 設置免密互相訪問 生成秘鑰key 首先建立目錄: mkdir /root/.ssh 執行命令 ssh-keygen (過程中出現需要確認情況,直接回車跳過----這些確認步驟是提示設置密碼的) 執行結束後會在 /root/.ssh 目錄下生成2個文件 id_rsa id_rsa.pub 不通的機器生成的文件內容不同: 比如: 192.168.183.130環境生成的 id_rsa.pub: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxxuQrPBqE09NVjfHbquem5abgu7htljA7bNddQsAP/7wuko7dy6JC5lc1+oant4TrDSu+QTEEMt4anIyp3dk2FAP1FrSlyZvioC0oPhcAfXlVUe/WOLaoVsXvXc7BaRx/DVeWBoadYoVN/zb/jrgBiVSN0mklawrZou+GkNs0I2EtOL8URx6ZGO5H5pyfy8tZeebCoE2BgMw7nZBHccnL1InCc38Hpn90cyu5vA9xNT0Akp1npCGKmLYMkoWnCdSqPwwM69ZkRHAo4gL/0ZeyAkPzSa6cyFAQa40wTxq5ye8M2eCGBmjhKhauRgyo8SdN7A9sJ63FXMGCJkzI48aIw== root@blue 192.168.183.128環境生成的 id_rsa.pub: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAucpajUU3o6XCk6V6JxPT7fgUDJ7Cw/tItDEFB9EMDSoCfua+tARPUdickq6qdqcrzE0JS2sB1Clil4p8nO7DL0HPQwK4ER3CEzXUDB9uoUeuDKNDpRHJFZvvDHs1Lqo+OPMZ6hbWVGh1DE+yFLOKBQ3DtbfGYZhePXryqhh/W2FrI/3LjT1DLSTckGa7ZgqaPh5t4YmktpLGzue3KjWzRAb2BPdKqgK5f67w5RSv4s3ttZbAMOGebg/PNdl9M77oSX7HsMIDkvbkogIZDHV+2LWIyHpaCAvBNDzHQd/67+XlRH1GJummFQjFrl3wJ1epJFl2rPhZjmT+37CCnMUbAQ== root@blue3 192.168.183.129環境生成的 id_rsa.pub: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzkKeSoDQx9AnAKkBoygiWLH25Pp6GlwjaqqG9LnbCwif5LcUX4N2mfWyXrgpJ3C5PB0r4xq7T776U1Q+VUj43/JEBmlFzpzIiQt0k0yB10mzDVdJwHSWspjQGNkCsiCF9gnuUpcxU5QO0J9gCvJhgfoK6mbVM+xBjF3B5pBaIdnSLZJTqlAlG62SH+kOQQWjkhiFzrxJdfViAcq4Leyg5WP+rBs7tKXysmwnFtpbn6Tok4V+p3VGFqg9/p8OB2HwWokHPV/ZISGbo4G6UpEtYp2hfcLJyo8JjJ1LCDszMyyvIrAZwo/wm6HCNuQU5kG4glghpUrhIEwPqivTeKq4eQ== root@blue2 將id_rsa.pub寫入authorized_keys 在父節點執行命令: cat id_rsa.pub > authorized_keys 然後將子節點的id_rsa.pub 文件追加到authorized_keys,最後追加後的內容的root 改成blue. 最終的authorized_keys文件內容為: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxxuQrPBqE09NVjfHbquem5abgu7htljA7bNddQsAP/7wuko7dy6JC5lc1+oant4TrDSu+QTEEMt4anIyp3dk2FAP1FrSlyZvioC0oPhcAfXlVUe/WOLaoVsXvXc7BaRx/DVeWBoadYoVN/zb/jrgBiVSN0mklawrZou+GkNs0I2EtOL8URx6ZGO5H5pyfy8tZeebCoE2BgMw7nZBHccnL1InCc38Hpn90cyu5vA9xNT0Akp1npCGKmLYMkoWnCdSqPwwM69ZkRHAo4gL/0ZeyAkPzSa6cyFAQa40wTxq5ye8M2eCGBmjhKhauRgyo8SdN7A9sJ63FXMGCJkzI48aIw== root@blue
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzkKeSoDQx9AnAKkBoygiWLH25Pp6GlwjaqqG9LnbCwif5LcUX4N2mfWyXrgpJ3C5PB0r4xq7T776U1Q+VUj43/JEBmlFzpzIiQt0k0yB10mzDVdJwHSWspjQGNkCsiCF9gnuUpcxU5QO0J9gCvJhgfoK6mbVM+xBjF3B5pBaIdnSLZJTqlAlG62SH+kOQQWjkhiFzrxJdfViAcq4Leyg5WP+rBs7tKXysmwnFtpbn6Tok4V+p3VGFqg9/p8OB2HwWokHPV/ZISGbo4G6UpEtYp2hfcLJyo8JjJ1LCDszMyyvIrAZwo/wm6HCNuQU5kG4glghpUrhIEwPqivTeKq4eQ== blue@blue2
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAucpajUU3o6XCk6V6JxPT7fgUDJ7Cw/tItDEFB9EMDSoCfua+tARPUdickq6qdqcrzE0JS2sB1Clil4p8nO7DL0HPQwK4ER3CEzXUDB9uoUeuDKNDpRHJFZvvDHs1Lqo+OPMZ6hbWVGh1DE+yFLOKBQ3DtbfGYZhePXryqhh/W2FrI/3LjT1DLSTckGa7ZgqaPh5t4YmktpLGzue3KjWzRAb2BPdKqgK5f67w5RSv4s3ttZbAMOGebg/PNdl9M77oSX7HsMIDkvbkogIZDHV+2LWIyHpaCAvBNDzHQd/67+XlRH1GJummFQjFrl3wJ1epJFl2rPhZjmT+37CCnMUbAQ== blue@blue3
將authorized_keys 文件分發到2個子節點:
在父節點執行命令:
scp –r authorized_keys 192.168.183.128:~/.ssh
scp –r authorized_keys 192.168.183.129:~/.ssh
該步驟結束後,會發現三個環境可以可以免密互相訪問了
5: 配置安裝Hadoop (中間需要安裝JDK,配置環境變量)
首先對環境進項配置:
關閉3個環境的防火墻
命令: service iptables stop
查看狀態: service iptables status
出現這種提示:iptables: Firewall is not running. 表明防火墻已經關閉
或者執行 iptables -L
出現下面的這種提示,也表明防火墻已經關閉
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
安裝JDK(我這裏使用的是jdk-8u172-linux-x64.tar.gz):將下載好的軟件包解壓到指定目錄: (這裏的目錄是 安裝部署目錄為 /usr/local/src)
tar -zxvf jdk-8u172-linux-x64.tar.gz
解壓後當前目錄下生成 jdk1.8.0_172目錄
配置環境變量:
vi /root/.bashrc
在文件中追加內容:
#set java path
export JAVA_HOME=/usr/local/src/jdk1.8.0_172
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin/:$PATH
然後讓環境變量生效
source .bashrc
執行命令: java 可以查看環境變量是否生效。
按照相同的方法在其他兩個環境中分別安裝JDK,配置環境變量。
********************************************************************************************************************************************************************************************
安裝Hadoop軟件(我這裏使用的是hadoop-1.2.1-bin.tar.gz): 將下載好的軟件包解壓到指定目錄:(這裏的目錄是 安裝部署目錄為 /usr/local/src)
解壓包
tar -zxvf hadoop-1.2.1-bin.tar.gz
對解壓後的目錄 hadoop-1.2.1 進行修改 mv hadoop-1.2.1 hadoop (也可以不修改,只要保證這個目錄名跟下面的配置文件的目錄名保持一致就OK,只是筆者有強迫癥)
修改Hadoop工具配置文件:
cd /usr/local/src/hadoop/conf;
修改的配置文件有6個
分別為
masters
slaves
core-site.xml
mapred-site.xml
hdfs-site.xml
hadoop-env.sh
開始配置:
vi masters
將內容修改成:
blue
vi slaves
將內容修改成
blue2
blue3
vi core-site.xml
補充configuration內的內容
修改後的文件內容
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.183.130:9000</value>
</property>
</configuration>
vi mapred-site.xml
補充configuration內的內容
修改後的文件內容
虛擬機搭建Hadoop