天天看點

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

自從2015年花了2個多月時間把Hadoop1.x的學習教程學習了一遍,對Hadoop這個神奇的小象有了一個初步的了解,還對每次學習的内容進行了總結,也形成了我的一個博文系列《Hadoop學習筆記系列》。其實,早在2014年Hadoop2.x版本就已經開始流行了起來,并且已經成為了現在的主流。是以,我決定趁着現在又變成了單身狗(滿滿的都是傷感)的時機,把Hadoop2.x學習一下,也順帶分享一些學習筆記的文章與園友們分享。

自從2015年花了2個多月時間把Hadoop1.x的學習教程學習了一遍,對Hadoop這個神奇的小象有了一個初步的了解,還對每次學習的内容進行了總結,也形成了我的一個博文系列《Hadoop學習筆記系列》。其實,早在2014年Hadoop2.x版本就已經開始流行了起來,并且已經成為了現在的主流。當然,還有一些非離線計算的架構如實時計算架構Storm,近實時計算架構Spark等等。相信了解Hadoop2.x的童鞋都應該知道2.x相較于1.x版本的更新應該不是一丁半點,最顯著的展現在兩點:

(1)HDFS的NameNode可以以叢集的方式布署,增強了NameNodes的水準擴充能力和高可用性,分别是:HDFS Federation與HA;

(2)MapReduce将JobTracker中的資源管理及任務生命周期管理(包括定時觸發及監控),拆分成兩個獨立的元件,并更名為YARN(Yet Another Resource Negotiator);

是以,我決定趁着現在又變成了單身狗(滿滿的都是傷感)的時機,把Hadoop2.x學習一下,也順帶分享一些學習筆記的文章與園友們分享。

至于Hadoop2.x到底相較于1.x有哪些改變,如果你不太知道,那麼你可以先閱讀一下這篇文章《Hadoop2的改進内容簡介》大概了解一下,本篇内容将不會介紹這些,直接上環境搭建與配置的内容。

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

一、準備工作

  (1)一台配置不錯的電腦或筆記本(主要是記憶體、記憶體、記憶體,重要的事情說三遍)

  (2)一個你使用過的虛拟機軟體(可以是VMWare、Virtual Box或者其他的,我用的VMWare WorkStation)

  (3)一個你使用過的SSH用戶端軟體(可以使XShell,XFtp、WinSCP等等,我用的XShell+XFtp)

  (4)Hadoop2.4.1、JDK1.7的linux安裝包(當然你也可以直接線上下載下傳)

  當然,體貼的我已為你準備了Hadoop2.4.1和JDK1.7的包,你可以通過這個連結下載下傳:點我下載下傳

二、僞分布式搭建

  2.1 基礎網絡配置

  安裝完VMware Workstation之後,你的網絡擴充卡會多出來兩個,你要做的就是為多出來的第2個網卡設定靜态IP位址,我這裡是Ethernet 3

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

  這裡我們設定網關為192.168.22.1,為主控端設定IP為192.168.22.2,也就是說我們的虛拟機必須要在192.168.22.x這個網段内。

  然後我們再為虛拟機設定網絡連接配接方式,選擇VMNET8(NAT模式),如果你不知道NAT是什麼意思,請百度一下。

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

  2.2 為虛拟機安裝Linux鏡像

  這裡我們選擇的是CentOS,你也可以選擇其他的Linux發行版本。

  2.3 設定靜态IP位址

  輸入指令 setup -> 進入Device Configuration -> 輸入service network restart重新開機網卡

  另外,想要在主控端通路虛拟機,需要開放端口,為了友善,我們直接将虛拟機的防火牆關閉:sudo service iptables stop

  檢查狀态:sudo chkconfig iptables off

  2.4 設定完全指令行模式啟動

  輸入指令 sudo vi /etc/inittab -> 修改id:3 -> 輸入reboot重新開機虛拟機

  2.5 使用XShell代替VMware直接操作

  這個時候你就可以使用XShell而不再需要在VMware裡直接敲指令了,你會發現XShell用起來很爽!

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

  2.6 将hadoop使用者加入sudo使用者組

  由于linux下root使用者的權限太大,經常使用root使用者會很不安全,是以我們一般使用一個一般使用者去操作,在用到需要高權限時使用sudo指令去執行。是以,我們這裡需要将hadoop使用者加入sudo使用者組。

  輸入指令 su -> vi /etc/sudoers -> 找到這一行:root ALL=(ALL) ALL

  然後在它下面一行加上一行:hadoop  ALL=(ALL) ALL

  最後儲存退出。

  2.7 更改主機名與IP位址映射關系

  (1) sudo vi /etc/sysconfig/network -> hadoop-master.manulife -> reboot

    (2) sudo vi /etc/hosts -> 加一行: 192.168.22.100 hadoop-master.manulife

  2.8 建立一個專門放安裝包的檔案夾(非必要)

  (1) rm -rf P* D* Music/ Videos/ Templates/

    (2) mkdir app -> 安裝後的地方

    (3) mkdir local -> 放置安裝包的地方

  2.9 安裝JDK

  (1)上傳jdk到虛拟機,這裡借助SFtp軟體

  (2)解壓jdk:tar -zvxf jdk -C ../app/

  (3)設定環境變量:

sudo vi /etc/profile

  export JAVA_HOME=/home/hadoop/app/jdk1.7.0_65

  export PATH=$PATH:$JAVA_HOME/bin;

source /etc/profile  

  2.10 安裝Hadoop

  (2)解壓jdk:tar -zvxf hadoop -C ../app/

  (3)删除hadoop中share檔案夾中的多餘doc檔案(非必要):rm -rf doc

  (4)設定hadoop中etc檔案夾中的一些重要配置檔案:cd etc -> hadoop-env.sh,core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml

  hadoop-env.sh

  vim hadoop-env.sh

  #第27行

  export JAVA_HOME=/home/hadoop/app/jdk  

  core-site.xml

  <!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的位址 -->

  <property>

     <name>fs.defaultFS</name>

     <value>hdfs://hadoop-master.manulife:9000</value>

  </property>

  <!-- 指定hadoop運作時産生檔案的存儲目錄 -->

      <name>hadoop.tmp.dir</name>

      <value>/home/hadoop/app/hadoop/tmp</value>

  </property>  

  hdfs-site.xml

  <!-- 指定HDFS副本的數量 -->

     <name>dfs.replication</name>

     <value>1</value>

  yarn-site.xml

  <!-- 指定YARN的老大(ResourceManager)的位址 -->

     <name>yarn.resourcemanager.hostname</name>

     <value>hadoop-master.manulife</value>

  <!-- reducer擷取資料的方式 -->

     <name>yarn.nodemanager.aux-services</name>

     <value>mapreduce_shuffle</value>

  mapred-site.xml (需要首先換個名字:mv mapred-site.xml.template mapred-site.xml)

  <!-- 指定mr運作在yarn上 -->

     <name>mapreduce.framework.name</name>

     <value>yarn</value>

  (5)設定環境變量

export JAVA_HOME=/usr/java/jdk1.7.0_65

export HADOOP_HOME=/itcast/hadoop-2.4.1

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

  (6)格式化NameNode

  hadoop namenode -format

  (7)啟動Hadoop兩大核心功能:HDFS與YARN

  首先編輯slaves配置檔案(這裡我們的主節點既是DataNode又是NameNode):vi slaves -> add hadoop-master.manulife

  啟動HDFS:sbin/start-dfs.sh

  啟動YARN:sbin/start-yarn.sh

  驗證是否啟動:jps

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

  (8)在主控端中通路Hadoop Manager

  首先将虛拟機的IP位址和主機名加入Windows Hosts:windows/system32/etc -> 加一行 : 192.168.22.100 hadoop-master.manulife

  打開浏覽器輸入:http://hadoop-master.manulife:50070

Hadoop學習筆記—22.Hadoop2.x環境搭建與配置
Hadoop學習筆記—22.Hadoop2.x環境搭建與配置

  2.11 HDFS簡單測試

  上傳一個檔案至HDFS : hadoop fs -put xxxx.tar.gz hdfs://hadoop-master.manulife:9000/

    從HDFS下載下傳一個檔案 : hadoop fs -get hdfs://hadoop-master.manulife:9000/xxxx.tar.gz

  2.12 MapReduce簡單測試

  這裡直接運作一個hadoop自帶的求圓周率的example:

  (1)cd /home/hadoop/app/hadoop/share/hadoop/mapreduce/

    (2)hadoop jar hadoop-mapreduce-examples-2.4.1.jar pi 5 5

  2.13 SSH免密碼登入

  一般linux分布式叢集中都會設定ssh免密碼登入,這裡我們首先将主節點設定為ssh免密碼登入:

  (1)ssh-keygen -t rsa

    (2)cd .ssh -> cp id_rsa.pub authorized_keys

    (3)ssh localhost

三、Java開發環境搭建

  3.1 準備工作 

  3.2 使用Java API操作HDFS

  3.3 簡單測試

四、完全分布式搭建

作者:周旭龍

出處:http://www.cnblogs.com/edisonchou/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結。

繼續閱讀