搭建完全分布式的hadoop
用于測試,我用4臺虛擬機搭建成了hadoop結構
我用了兩個臺式機。一個xp系統,一個win7系統。每臺電腦裝兩個虛擬機,要不然內存就滿了。
?
1、安裝虛擬機環境
? ? ?Vmware,收費產品,占內存較大。
? ? ?或
? ? ?Oracle的VirtualBox,開源產品,占內存較小,但安裝ubuntu過程中,重啟會出錯。
? ? ?我選Vmware。
?
2、安裝操作系統
? ? ?Centos,紅帽開源版,接近于生產環境。
? ? ?Ubuntu,操作簡單,方便,界面友好。
? ? ?我選Ubuntu12.10.X 32位
?
3、安裝一些常用的軟件
? ? ?在每臺linux虛擬機上,安裝:vim,ssh
? ? ?sudo apt-get install vim
? ? ?sudo apt-get install ssh
? ? ?在客戶端,也就是win7上,安裝SecureCRT,Winscp或putty,這幾個程序,都是依靠ssh服務來操作的,所以前提必須安裝ssh服務。
? ? ?service ssh status 查看ssh狀態。如果關閉使用service ssh start開啟服務。
? ? ?SecureCRT,可以通過ssh遠程訪問linux虛擬機。
? ? ?winSCP或putty,可以從win7向linux上傳文件。
?
4、修改主機名和網絡配置
? ? 主機名分別為:master,host2,host3,host4。
? ? sudo vim /etc/hostname
? ? 網絡配置,包括ip地址,子網掩碼,DNS服務器。如上圖所示。
?
5、修改/etc/hosts文件。
? ? 修改每臺電腦的hosts文件。
? ? hosts文件和windows上的功能是一樣的。存儲主機名和ip地址的映射。
? ? 在每臺linux上,sudo vim /etc/hosts 編寫hosts文件。將主機名和ip地址的映射填寫進去。編輯完后,結果如下:
? ??
?
?
6、配置ssh,實現無密碼登陸
? ? 無密碼登陸,效果也就是在master上,通過 ssh host2 或 ssh host3 或 ssh host4 就可以登陸到對方計算機上。而且不用輸入密碼。
? ? 四臺虛擬機上,使用? ?ssh-keygen -t rsa ? ?一路按回車就行了。
? ? 剛才都作甚了呢?主要是設置ssh的密鑰和密鑰的存放路徑。 路徑為~/.ssh下。
? ? 打開~/.ssh 下面有三個文件
? ? authorized_keys,已認證的keys
? ? id_rsa,私鑰
? ? id_rsa.pub,公鑰 ??三個文件。
? ? 下面就是關鍵的地方了,(我們要做ssh認證。進行下面操作前,可以先搜關于認證和加密區別以及各自的過程。)
? ? ①在master上將公鑰放到authorized_keys里。命令:sudo cat id_rsa.pub >> authorized_keys
? ? ②將master上的authorized_keys放到其他linux的~/.ssh目錄下。
? ? ? ?命令:sudo scp authorized_keys hadoop@10.10.11.192:~/.ssh ? ? ??
? ? ? ? ? ? ? ?sudo scp authorized_keys 遠程主機用戶名@遠程主機名或ip:存放路徑。
? ? ③修改authorized_keys權限,命令:chmod 644 authorized_keys
? ? ④測試是否成功
? ? ? ?ssh host2 輸入用戶名密碼,然后退出,再次ssh host2不用密碼,直接進入系統。這就表示成功了。
?
7、上傳jdk,并配置環境變量。
? ? 通過winSCP將文件上傳到linux中。將文件放到/usr/lib/java中,四個linux都要操作。
? ? 解壓縮:tar -zxvf jdk1.7.0_21.tar
? ? 設置環境變量 sudo vim ~/.bashrc
? ? 在最下面添加:
? ? export JAVA_HOME = /usr/lib/java/jdk1.7.0_21
? ? export PATH = $JAVA_HOME/bin:$PATH
?
? ? 修改完后,用source ~/.bashrc讓配置文件生效。
?
8、上傳hadoop,配置hadoop
? ? 通過winSCP,上傳hadoop,到/usr/local/下,解壓縮tar -zxvf hadoop1.2.1.tar
? ? 再重命名一下,sudo?mv hadoop1.2.1 hadoop?
? ? 這樣目錄就變成/usr/local/hadoop
?
? ? ①修改環境變量,將hadoop加進去(最后四個linux都操作一次)
? ? sudo vim ~/.bashrc
? ? export HADOOP_HOME = /usr/local/hadoop
? ? export PATH = $JAVA_HOme/bin:$HADOOP_HOME/bin:$PATH
?
? ? 修改完后,用source ~/.bashrc讓配置文件生效。
?
? ? ②修改/usr/local/hadoop/conf下配置文件
? ? hadoop-env.sh,
? ? ?
?
? ? (上面這張圖片,有一些問題,只export JAVA_HOME進去就可以了,不用export HADOOP_HOME和PATH了 )
? ? core-site.xml,
? ??
? ? hdfs-site.xml,
? ??
? ? mapred-site.xml,
? ??
? ? master,
? ??
? ? slave,
? ??
?
? ? 上面的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml,master,slave幾個文件,在四臺linux中都是一樣的。
? ? 配置完一臺電腦后,可以將hadoop包,直接拷貝到其他電腦上。
?
? ? ③最后要記得,將hadoop的用戶加進去,命令為
? ? ? sudo chown -R hadoop:hadoop hadoop?
? ? ? sudo chown -R 用戶名@用戶組 目錄名
? ? ④讓hadoop配置生效
? ? ? source hadoop-env.sh
?
? ? ⑤格式化namenode,只格式一次
? ? ? hadoop namenode -format
?
? ? ⑥啟動hadoop
? ? ? 切到/usr/local/hadoop/bin目錄下,執行 start-all.sh啟動所有程序
?
? ? ⑦查看進程,是否啟動
? ? ? ?jps
? ? ? master,
? ? ??
? ? ? host2,
? ? ??
? ? ? host3,host4,的顯示結果,與host2相同。
轉載于:https://blog.51cto.com/leeli/1700554
總結
以上是生活随笔為你收集整理的搭建完全分布式的hadoop的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP可变参数
- 下一篇: ASP.NET MVC开发,编辑页面和添