共計 3209 個字符,預計需要花費 9 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關 hadoop 完全分布式集群如何搭建,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
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 完全分布式集群如何搭建”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。