這篇文章將為大家詳細講解有關hadoop完全分布式集群如何搭建,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
hadoop分布式集群搭搭建(環境:linux虛擬機上)
1.準備工作:(規劃主機名,ip及用途,先搭建三臺,第四臺動態的添加
用途欄中,也可以把namenode,secondaryNamenode及jobTracker
分開部署,看實際需求,不唯一)
主機名 機器ip 用途
cloud01 192.168.1.101 namenode/secondaryNamenode/jobTracker
cloud02 192.168.1.102 datanode/taskTracker
cloud03 192.168.1.103 datanode/taskTracker
cloud04 192.168.1.104 datanode/taskTracker
2.配置linux環境(以下參照偽分布式的搭建)
2.1修改主機名(cloud01,cloud02,cloud03)
2.2修改每臺機器的ip(按照自己分配的)
2.3修改主機名與ip的映射關系
(只在cloud01上修改,改完后拷貝到其它機器上就行,指令:
scp /etc/profile cloud02:/etc/
scp /etc/profile cloud03:/etc/)
2.4關閉防火墻
2.5重啟
3.安裝jdk(參照偽分布式的搭建,版本以jdk1.6.0_45為例)
只需要在一臺機器上安裝,然后拷貝到其他機器上(軟件最好統一管理)
例如在cloud01上jdk安裝在/soft/java下
(使用指令:scp -r /soft/java/ cloud02:/soft/
scp -r /soft/java/ cloud03:/soft/
就可以把jdk拷貝過去了.但是我們暫時不拷貝過去,等下面hadoop安裝好后,一起拷過去)
4.安裝hadoop集群(hadoop版本以hadoop-1.1.2為例)
4.1上傳hadoop壓縮包到/soft目錄下,并解壓到該目錄下(參照偽分布式的搭建)
4.2配置hadoop(這次需要配置6個文件)
4.21hadoop-env.sh
在第九行
export JAVA_HOME=/soft/java/jdk1.6.0_45 (注意把前面的#號去掉)
4.22core-site.xml
<!-- 指定HDFS的namenode的通信地址 -->
<property>
<name>fs.default.name</name>
<value>hdfs://cloud01:9000</value>
</property>
<!-- 指定hadoop運行時產生文件的存放目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/soft/hadoop-1.1.2/tmp</value>
</property>
4.23hdfs-site.xml
<!-- 配置HDFS副本的數量(根據需求,實際情況自己定義,默認為3份) -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
4.24mapred-site.xml
<!-- 指定jobtracker地址 -->
<property>
<name>mapred.job.tracker</name>
<value>cloud01:9001</value>
</property>
4.25masters(指定secondarynamenode地址)
cloud01
4.26slaves(指定子節點)
cloud02
cloud03
4.3將配置好的hadoop拷貝到其他兩臺機器上
直接將soft那個文件夾都拷貝過去(里面包含了jdk和hadoop,所以強烈建議
文件要統一管理)
指令:
scp -r /soft/ cloud02:/
scp -r /soft/ cloud03:/
4.4配置ssh免登
是主節點到子節點的免登陸
即cloud01到cloud02和cloud03的免登陸
在cloud01上生成即可
指令:ssh-keygen -t rsa
然后拷貝到其它兩臺機器上
指令:ssh-copy-id -i cloud02
ssh-copy-id -i cloud03
4.5格式化hadoop
只需要在cloud01(主節點namenode)上格式化就行
指令:hadoop namenode -format
4.6驗證
啟動集群 指令:start-all.sh
如果啟動過程,報錯safemode相關的Exception
執行命令:hadoop dfsadmin -safemode leave(退出安全模式)
再次啟動hadoop
然后jps一下,查看各臺機器,看是否和規劃好的用途一樣即可)
OK,如果和規劃好的一樣,就大功告成了.
5.動態添加一臺節點
(在實際生產過程中,很常見,很實用)
cloud04 192.168.1.104 datanode/taskTracker
5.1通過clone的方式添加一臺linux(以clone cloud01為例.實際生產過程中不會這樣,
因為實際生產過程中很少用虛擬機,都是直接服務器.注意,clone時,
得先把要clone的機器給停掉)
5.2修改主機名,ip地址,配置映射文件,關閉防火墻,再hadoop配置
文件slaves中添加cloud04,設置免登陸,重啟
(clone的話,就無需再配置映射文件,和關閉防火墻了.因為
你clone的那臺機器已經配置好了)
5.3重啟機器后,分別啟動datanode和taskTracker
指令:hadoop-daemon.sh start datanode
hadoop-daemon.sh start tasktracker
5.4在cloud01上即namenode所在節點上運行命令刷新
hadoop dfsadmin -refreshNodes
5.5驗證
http://linux的ip:50070(hdfs管理界面)
看是否多了一個節點,如果多了一個,則大功告成了!
6.刪除一臺節點(此處為收集)
6.1在cloud01上修改/soft/hadoop-1.1.2/conf/hdfs-site.xml文件
添加配置信息:
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop-1.1.2/conf/excludes</value>
</property>
6.2確定要下架的機器
dfs.hosts.exclude定義的文件內容為,每個需要下線的機器,一行一個。
6.3強制重新加載配置
指令:hadoop dfsadmin -refreshNodes
6.4關閉節點
指令:hadoop dfsadmin -report
可以查看到現在集群上連接的節點
正在執行Decommission,會顯示:
Decommission Status : Decommission in progress
執行完畢后,會顯示:
Decommission Status : Decommissioned
6.5再次編輯excludes文件
一旦完成了機器下架,它們就可以從excludes文件移除了
登錄要下架的機器,會發現DataNode進程沒有了,但是TaskTracker依然存在,
需要手工處理一下
關于“hadoop完全分布式集群如何搭建”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。