1. 程式人生 > >Hadoop框架:叢集模式下分散式環境搭建

Hadoop框架:叢集模式下分散式環境搭建

本文原始碼:[GitHub·點這裡](https://github.com/cicadasmile/big-data-parent) || [GitEE·點這裡](https://gitee.com/cicadasmile/big-data-parent) # 一、基礎環境配置 ## 1、三臺服務 準備三臺Centos7服務,基礎環境從偽分散式環境克隆過來。 ``` 133 hop01,134 hop02,136 hop03 ``` ## 2、設定主機名 ``` ## 設定名稱 hostnamectl set-hostname hop01 ## 重啟 reboot -f ``` ## 3、主機名通訊 ``` vim /etc/hosts # 新增服務節點 192.168.37.133 hop01 192.168.37.134 hop02 192.168.37.136 hop03 ``` ## 4、SSH免密登入 配置三臺服務SSH免密登入。 ``` [root@hop01 ~]# ssh-keygen -t rsa ...一路回車結束 [root@hop01 ~]# cd .ssh ...許可權分配到指定叢集服務 [root@hop01 .ssh]# ssh-copy-id hop01 [root@hop01 .ssh]# ssh-copy-id hop02 [root@hop01 .ssh]# ssh-copy-id hop03 ...在hop01免密登入到hop02 [root@hop01 ~]# ssh hop02 ``` 這裡針對hop01服務,在hop02和hop03服務都要執行該操作。 ## 5、同步時間 ntp元件安裝 ``` # 安裝 yum install ntpdate ntp -y # 檢視 rpm -qa|grep ntp ``` 基礎管理命令 ``` # 檢視狀態 service ntpd status # 啟動 service ntpd start # 開機啟動 chkconfig ntpd on ``` 修改時間服務hop01 ``` # 修改ntp配置 vim /etc/ntp.conf # 新增內容 restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap server 127.0.0.1 fudge 127.0.0.1 stratum 10 ``` 修改hop02\hop03時間機制,從hop01同步時間,並登出網路獲取時間的機制。 ``` server 192.168.37.133 # server 0.centos.pool.ntp.org iburst # server 1.centos.pool.ntp.org iburst # server 2.centos.pool.ntp.org iburst # server 3.centos.pool.ntp.org iburst ``` 編寫定時任務 ``` [root@hop02 ~]# crontab -e */10 * * * * /usr/sbin/ntpdate hop01 ``` 修改hop02和hop03服務時間 ``` # 指定時間 date -s "2018-05-20 13:14:55" # 檢視時間 date ``` 這樣時間會基於hop01服務的時間不斷的更正或同步。 ## 6、環境清理 從偽分散式環境虛擬機器克隆三臺Centos7服務,刪除原來hadoop環境配置的data和log資料夾。 ``` [root@hop02 hadoop2.7]# rm -rf data/ logs/ ``` # 二、叢集環境搭建 ## 1、叢集配置概覽 |服務列表 | HDFS檔案 | YARN排程 | 單服務 | |---|---|---|---| |hop01 | DataNode | NodeManager | NameNode | |hop02 | DataNode | NodeManager | ResourceManager | |hop03 | DataNode | NodeManager | SecondaryNameNode | ## 2、修改配置 **vim core-site.xml** ``` ``` 這裡三臺服務都需要分別指定當前主機名稱。 **vim hdfs-site.xml** ``` ``` 這裡修改副本數為3,並指定SecondaryNameNode服務,三臺服務同樣修改指定SecondaryNameNode在hop03服務上。 **vim yarn-site.xml** ``` ``` 指定ResourceManager服務在hop02上。 **vim mapred-site.xml** ``` ``` 指定相關web端檢視地址在服務hop01上。 ## 3、叢集服務配置 路徑:**/opt/hadoop2.7/etc/hadoop** 檔案:**vim slaves** ``` hop01 hop02 hop03 ``` 這裡配置三臺服務的叢集列表。同步修改其他服務相同配置。 ## 4、格式化NameNode 注意這裡NameNode配置在hop01服務上。 ``` [root@hop01 hadoop2.7]# bin/hdfs namenode -format ``` ## 5、啟動HDFS ``` [root@hop01 hadoop2.7]# sbin/start-dfs.sh Starting namenodes on [hop01] hop01: starting namenode hop03: starting datanode hop02: starting datanode hop01: starting datanode Starting secondary namenodes [hop03] hop03: starting secondarynamenode ``` 注意看這裡的列印資訊,和配置完全吻合。namenodes在hop01上啟動,secondary-namenodes在hop03上啟動,可以通過JPS命令到各個服務檢視驗證。 ## 6、啟動YARN 注意Yarn配置在hop02服務上,所以在hop02服務執行啟動命令。 ``` [root@hop02 hadoop2.7]# sbin/start-yarn.sh starting yarn daemons starting resourcemanager hop03: starting nodemanager hop01: starting nodemanager hop02: starting nodemanager, ``` 注意這裡的啟動列印日誌,至此叢集規劃的服務都啟動完畢。 ``` [root@hop01 hadoop2.7]# jps 4306 NodeManager 4043 DataNode 3949 NameNode [root@hop02 hadoop2.7]# jps 3733 ResourceManager 3829 NodeManager 3613 DataNode [root@hop03 hadoop2.7]# jps 3748 DataNode 3928 NodeManager 3803 SecondaryNameNode ``` 檢視各個服務下的叢集程序,與規劃配置一致。 ## 7、Web端介面 ``` NameNode:http://hop01:50070 SecondaryNameNode:http://hop03:50090 ``` # 三、原始碼地址 ``` GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent ``` **推薦閱讀:程式設計體系整理** |序號|專案名稱|GitHub地址|GitEE地址|推薦指數| |:---|:---|:---|:---|:---| |01|Java描述設計模式,演算法,資料結構|[GitHub·點這裡](https://github.com/cicadasmile/model-arithmetic-parent)|[GitEE·點這裡](https://gitee.com/cicadasmile/model-arithmetic-parent)|☆☆☆☆☆| |02|Java基礎、併發、面向物件、Web開發|[GitHub·點這裡](https://github.com/cicadasmile/java-base-parent)|[GitEE·點這裡](https://gitee.com/cicadasmile/java-base-parent)|☆☆☆☆| |03|SpringCloud微服務基礎元件案例詳解|[GitHub·點這裡](https://github.com/cicadasmile/spring-cloud-base)|[GitEE·點這裡](https://gitee.com/cicadasmile/spring-cloud-base)|☆☆☆| |04|SpringCloud微服務架構實戰綜合案例|[GitHub·點這裡](https://github.com/cicadasmile/husky-spring-cloud)|[GitEE·點這裡](https://gitee.com/cicadasmile/husky-spring-cloud)|☆☆☆☆☆| |05|SpringBoot框架基礎應用入門到進階|[GitHub·點這裡](https://github.com/cicadasmile/spring-boot-base)|[GitEE·點這裡](https://gitee.com/cicadasmile/spring-boot-base)|☆☆☆☆| |06|SpringBoot框架整合開發常用中介軟體|[GitHub·點這裡](https://github.com/cicadasmile/middle-ware-parent)|[GitEE·點這裡](https://gitee.com/cicadasmile/middle-ware-parent)|☆☆☆☆☆| |07|資料管理、分散式、架構設計基礎案例|[GitHub·點這裡](https://github.com/cicadasmile/data-manage-parent)|[GitEE·點這裡](https://gitee.com/cicadasmile/data-manage-parent)|☆☆☆☆☆| |08|大資料系列、儲存、元件、計算等框架|[GitHub·點這裡](https://github.com/cicadasmile/big-data-parent)|[GitEE·點這裡](https://gitee.com/cicadasmile/big-data-parent)|☆☆☆