從零開始Hadoop集群環境搭建

本篇文章將從頭開始介紹Hadoop大數據平臺的一系列搭建工作,主要是搭建的具體操作步驟,思想方面涉及甚少,可以自行補充

虛擬機下載安裝

我使用的是VMware station12,下載地址為鏈接:http://pan.baidu.com/s/1geX11pL 密碼:uylp
本軟件為注冊軟件現提供一個注冊碼AV5R2-8LW53-484RP-H5YQZ-XU8RF,大家也可以自行百度。

centos下載

因為工作中常用的為不帶可視化界面的版本,現提供一個centos6.8_64下載,地址點我

centos安裝

打開安裝好的VMware station,右鍵選擇新建虛擬機,選擇典型安裝。
選擇稍后安裝操作系統,點擊下一步



選擇linux操作系統,版本為CentOS64位



輸入計算機名稱以及你想要安裝的位置

指定磁盤容量,這里要說明的是你選擇的20G并不會一下占用你20G的硬盤空間,而是跟隨你虛擬機大小進行變化的

點擊完成即可



此時你會發現在你VMwarestation左面有了安裝的虛擬機,現在需要做兩件事。
  • 設定虛擬機鏡像位置
  • 更改電腦虛擬化設置。有的電腦并沒有開啟Intel虛擬化,因此不能安裝64位虛擬機。檢測的方法是點擊開啟此虛擬機,如果進入安裝界面則證明你的虛擬化是打開的,否則會報錯,這時你需要開機進入BIOS,Advanced-CPU Setup將Intel Virtualization Technology和VT-d打開



    設置完成后選擇開啟此虛擬機,進入系統安裝界面。這里需要注意的就是skip測試你的安裝媒體。剩下的都是可視化的安裝,自己選擇就可以。


Linux環境配置

可選
1.通過useradd添加用戶(創建新用戶hadoop):useradd -m hadoop -s /bin/bash
2.為新用戶設置密碼passwd hadoop
3.給Hadoop用戶添加管理員權限 visudo,100行附近root ALL=(ALL)ALL下添加hadoop ALL=(ALL)ALL

  • 修改Linux的主機名
    -- centos6
    輸入hostname可以查看現在的主機名稱
    進入vi /etc/sysconfig/network,修改內容
NETWORKING=yes
HOSTNAME=node-1

進入vi /etc/hosts,修改內容原主機名為node-1
-- centos7
輸入hostname可以查看現在的主機名稱
進入vi /etc/hostname,直接修改主機名
進入vi /etc/sysconfig/network,修改內容(可以省略)

NETWORKING=yes
HOSTNAME=node-1

進入vi /etc/hosts,修改內容原主機名為node-1

  • 修改IP地址
    如果你此時執行ifconfig命令你會發現并沒有常見的etho網卡,這時因為系統默認沒有啟動。需要將配置文件改成如下內容。首先進入配置文件vi /etc/sysconfig/network-scripts/ifcfg-eth0(centos7可能不是eth0,可能為ens33,可使用ip addr查看)
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=192.168.213.100
NETMASK=255.255.255.0
centos7

這里需要注意的是ip地址的設置,首先你需要查看你的網絡連接方式,我采用默認的NAT模式,從下圖可以看到子網地址為192.168.213.0,因此我設置的為192.168.213.100。另外如果你想讓虛擬機聯網需要設置gateway和dns。


聯網配置:選擇NAT模式,將網絡設置為如下格式,然后再NAT中記錄網關地址,填入上面所說的文件中,重啟網絡服務即可。
image.png

配置好后用service network restart(centos7為 systemctl restart network.service)重啟網絡服務,用ifconfig可以查看是否配置成功。然后可以在Windows上ping該ip查看是否可以ping通。ping通后就可以使用putty或者SecureCRT連接虛擬機了。

  • 配置主機名和IP地址的映射關系
    vi /etc/hosts打開hosts文件,新增一行192.168.213.100 node-1
  • 關閉防火墻
    查看防火墻狀態
    service iptables status
    關閉防火墻
    service iptables stop
    設置防火墻開機不啟動
    chkconfig iptables off
    //centos7 臨時關閉
    systemctl stop firewalld
    //centos7 禁止開機啟動
    systemctl disable firewalld

    最后reboot或者通過hostname node-1 以及exit,使我們配置的主機名生效
  • centos7 yum源設置
yum install wget###該步驟報錯可以參考https://blog.csdn.net/weicuidi/article/details/52935100
cd /etc/yum.repos.d/ 
mv /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all 
yum makecache
  • 刪除Mac地址與網卡映射文件(centos7可省略)
    我們想將這個虛擬機作為模板機,為了避免以后Mac地址沖突,因此要刪除Mac地址與網卡映射文件,以后啟動機器的時候會自動生成。
    rm -rf /etc/udev/rules.d/70-persistent-net.rules
    然后用halt關機

創建克隆機

做大數據肯定不可能只有一個虛擬機,我們現在用配置好的這臺機器,克隆出幾臺虛擬機出來。

  • 選擇模板機,然后點擊右鍵 –> 選擇Manage –> clone ->創建一個完整的克隆 –>
    ->配置機器的名字和存放位置
  • 開啟虛擬機之前一定要生成一個新的mac地址(centos7可省略)
  • 開啟虛擬機,修改其主機名和ip地址
    如果在執行service network restart命令時出現以下錯誤,則可能是沒有刪除模板機Mac地址與網卡映射文件,注意這個文件每次啟動都會自動生成的。解決方法是rm -rf /etc/udev/rules.d/70-persistent-net.rules刪除該文件然后重啟
    都修改完成后可以用一臺虛擬機依次ping其它虛擬機,可以ping通即可

修改hosts文件

在101機器上修改hosts文件,完成主機名和ip地址映射


ssh免密碼登錄

  • 在第一臺機器上生成一對鑰匙,一個公鑰,一個私鑰ssh-keygen –t rsa執行上面的命令后,輸入四個回車
  • 將公鑰拷貝到希望名登錄的機器ssh-copy-id 192.168.213.102執行上面的命令第一次要輸入第二臺機器的密碼
  • 然后執行scp操作就不需要輸入密碼了scp /etc/hosts root@192.168.213.102:/etc,現在可以將修改好的hosts文件發送到其他具有公鑰的機器。
    注意這種免密碼登錄是單向的,如果想相互免密碼登錄則需要在每一臺機器上都生成一個公鑰和一個私鑰。

Hadoop集群規劃

現在我們有四臺機器,分別為node-1,node-2,node-3,node-4,我們要做成下圖形式的架構。第一臺作為主節點,其他三臺作為從節點


Java安裝

將安裝包上傳到虛擬機上

  • 安裝Java
    • 創建文件夾mkdir /usr/java
    • 解壓tar -zxvf jdk.tar.gz -C /usr/java
    • 添加環境變量
      進入文件vi /etc/profile,按G到文件末尾,按o插入一行,加入下面語句
      export JAVA_HOME=/usr/java/jdk1.8.0_111
      export PATH=$PATH:$JAVA_HOME/bin
      執行source /etc/profile重新加載環境變量
    • 若需要傳到其他虛擬機上則
      scp –r /usr/java/ node-2:/usr
      scp /etc/profile node-2:/etc

Hadoop安裝

  • 解壓Hadoop
    mkdir /bigdata
    tar -zxvf hadoop-2.6.5.tar.gz -C /bigdata/

  • 在Hadoop安裝包目錄下有幾個比較重要的目錄
    sbin : 啟動或停止Hadoop相關服務的腳本
    bin :對Hadoop相關服務(HDFS,YARN)進行操作的腳本
    etc : Hadoop的配置文件目錄
    share :Hadoop的依賴jar包和文檔,文檔可以被刪掉
    lib :Hadoop的本地庫(對數據進行壓縮解壓縮功能的)

  • 修改配置文件
    進入到Hadoop的etc目錄下
    cd /bigdata/hadoop-2.6.5/etc/hadoop

修改第1個配置文
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_111

修改第2個配置文件
vi core-site.xml

<configuration>
  <!-- 配置hdfs的namenode(老大)的地址 -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node-1:9000</value>
  </property>

  <!-- 配置Hadoop運行時產生數據的存儲目錄,不是臨時的數據 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/bigdata/hadoop-2.6.5/tmp</value>
  </property>
</configuration>

修改第3個配置文件
vi hdfs-site.xml

<configuration>
 <!-- 指定HDFS存儲數據的副本數據量 -->
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
</configuration>

修改第4個配置文件
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

<configuration>
  <!-- 指定mapreduce編程模型運行在yarn上  -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

修改第5個配置文件
vi yarn-site.xml

<configuration>
  <!-- 指定yarn的老大(ResourceManager的地址) -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node-1</value>
  </property>
  
  <!-- mapreduce執行shuffle時獲取數據的方式 -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

第6個配置文件slaves
vi slaves
原來的localhost要刪掉

node-2
node-3
node-4

將配置好的Hadoop安裝包拷貝到其他服務上

scp -r /bigdata  node-2:/
scp -r /bigdata  node-3:/
scp -r /bigdata  node-4:/

在第一臺機器(NameNode所在的機器)上對hdfs進行初始化(格式化HDFS)
cd /bigdata/hadoop-2.6.5/bin/
./hdfs namenode -format

配置自己到自己的免密碼登錄,輸入當前機器的密碼
ssh-copy-id node-1

在第一臺機器(NameNode所在的機器)上對hdfs進行初始化(格式化HDFS)
cd /bigdata/hadoop-2.6.5/bin/
./hdfs namenode -format
格式化成功的標志是出現以下提示

Paste_Image.png

配置自己到自己的免密碼登錄,輸入當前機器的密碼
ssh-copy-id node-1

啟動并測試Hadoop

cd /bigdata/hadoop-2.6.5/sbin/
./start-dfs.sh
./start-yarn.sh

可以使用jps檢查進程是否存在

node1

node2

也可以訪問網頁測試
訪問hdfs的管理界面
192.168.213.101:50070

訪問yarn的管理界面
192.168.213.101:8088

Paste_Image.png

關閉hdfs/yarn服務

./stop-dfs.sh
./stop-yarn.sh

上傳文件到HDFS上

上傳文件
/bigdata/hadoop-2.6.5/bin/hdfs dfs -put /root/install.log hdfs://node-1:9000/
查看文件信息
/bigdata/hadoop-2.6.5/bin/hdfs dfs -ls hdfs://node-1:9000/

HDFS動態擴容

查看現在DataNode情況可以在Hadoop的bin目錄下執行./hdfs dfsadmin -report,可以看到存活的DataNode。現在為3個。
下面為擴容的具體步驟:

  • 準備一臺新的服務器(最好是跟原集群的機器相同配置)
  • 為新的服務器準備系統環境(主機名、IP地址、防火墻、JDK環境、hosts文件)
  • 將新的服務器連入原集群網絡(測試是否可以ping通)
  • 從原集群中拷貝一個hadoop的安裝目錄到新節點上,并且刪除原datanode的工作目錄(這里配置的為tmp目錄)
  • 修改/bigdata/hadoop-2.6.5/etc/hadoop/slaves 文件,加入新節點的主機名
  • 在新節點上用命令:hadoop-daemon.sh start datanode 啟動datanode,就會自動加入集群
  • 重啟start-dfs,start-yarn

hadoop集群恢復終極解決方案

  • 在每一臺機器上用命令殺掉所有java進程: killall java
  • 在每一臺機器上刪掉hadoop安裝目錄中的tmp文件夾
  • 在node-1上格式化namenode: hadoop namenode -format
  • 在node-1上執行腳本來啟動整個集群: start-dfs.sh
    注意用這種方案會重新格式化hdsf,意味著原來上傳的文件會全部丟失!!!
    補充:關閉HDFS集群的命令:在node-1上: stop-dfs.sh
    關閉YARN集群的命令:在node-1上: stop-yarn.sh
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容