在Ubuntu 16.04上構(gòu)建多節(jié)點(diǎn)的(分布式)Hadoop-2.7.3集群

實(shí)驗(yàn)環(huán)境

  • Ubuntu 16.04
  • Hadoop-2.7.3
  • Java 7
  • SSH

在本篇教程中,我總共使用了兩臺(tái)裝有Ubuntu 16.04虛擬機(jī)掏颊,分別稱為master和slave璧微。

IP 主機(jī)名 (hostname) 內(nèi)存 CPU
192.168.0.161 hadoop-master 8192 MB 4 cores
192.168.0.162 hadoop-s1 8192 MB 4 cores

首先需要在兩臺(tái)機(jī)器上各自的/etc/hosts文件中加上彼此的主機(jī)名和IP地址:

h1.png

安裝Java 7

$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
$ java -version

如果java安裝成功省有,那么默認(rèn)是裝在了/usr/lib/jvm下的澜掩,我們需要把以下的兩句加入~/.bashrc中账磺。

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$PATH:/usr/lib/jvm/java-7-openjdk-amd64/bin

SSH免密登錄

Hadoop需要節(jié)點(diǎn)之間可以免密訪問芹敌,因此我們需要生成SSH秘鑰并且加入對(duì)方的配置文件。
首先在master上執(zhí)行:

$ sudo apt-get install openssh-server
$ ssh-keygen -t rsa -P ""

然后把生成的id_rsa.pub加入authorized_keys里:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

此時(shí)master已經(jīng)可以對(duì)localhost免密訪問了

$ ssh localhost

接下來垮抗,為了使master能免密訪問slave:

$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub administrator@hadoop-s1
$ ssh hadoop-s1

安裝Hadoop

Hadoop的各個(gè)版本的Release版本在http://hadoop.apache.org/releases.html

<u>在Master和Slave節(jié)點(diǎn)上</u>

下載hadoop-2.7.3壓縮包氏捞,并解壓。

$ cd $HOME
$ wget http://mirror.fibergrid.in/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
$ tar -xvf hadoop-2.7.3.tar.gz

此時(shí)可以通過以下命令確認(rèn)hadoop是否成功安裝

$ cd hadoop-2.7.3/
$ bin/hadoop-2.7.3

如果成功安裝冒版,則把hadoop的以下環(huán)境變量加入.bashrc文件中液茎。

# Set Hadoop-related environment variables
export HADOOP_HOME=$HOME/hadoop-2.7.3
export HADOOP_CONF_DIR=$HOME/hadoop-2.7.3/etc/hadoop
export HADOOP_MAPRED_HOME=$HOME/hadoop-2.7.3
export HADOOP_COMMON_HOME=$HOME/hadoop-2.7.3
export HADOOP_HDFS_HOME=$HOME/hadoop-2.7.3
export YARN_HOME=$HOME/hadoop-2.7.3

# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HOME/hadoop-2.7.3/bin
$ source .bashrc

然后將JAVA_HOME配置到hadoop-2.7.3/etc/hadoop/hadoop-env.sh里,這個(gè)文件指定了Hadoop的守護(hù)進(jìn)程使用的JDK環(huán)境變量辞嗡。

$ cd hadoop-2.7.3/etc/hadoop/
$ sudo vim hadoop-env.sh

將以下命令貼到文件中并保存捆等。

# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

接下來我們創(chuàng)建NameNode和DataNode的目錄。

$ cd
$ mkdir -p $HADOOP_HOME/hadoop2_data/hdfs/namenode
$ mkdir -p $HADOOP_HOME/hadoop2_data/hdfs/datanode

Hadoop有很多的配置文件需要我們根據(jù)需求來做相應(yīng)的配置续室,下面一個(gè)一個(gè)地進(jìn)行配置楚里。

$ cd hadoop-2.7.3/etc/hadoop/
$ sudo vim core-site.xml

<u>core-site.xml</u>

<configuration>

    <property>
    
        <name>fs.defaultFS</name>
        
        <value>hdfs://master:9000</value>
    
    </property>

</configuration>

<u>hdfs-site.xml</u>

$ sudo vim hdfs-site.xml
<configuration>

    <property>
    
        <name>dfs.replication</name>
        
        <value>2</value>
    
    </property>
    
    <property>
    
        <name>dfs.permissions</name>
        
        <value>false</value>
    
    </property>
    
    <property>
    
        <name>dfs.namenode.name.dir</name>
        
        <value>/home/ubuntu/hadoop-2.7.3/hadoop2_data/hdfs/namenode</value>
    
    </property>
    
    <property>
    
        <name>dfs.datanode.data.dir</name>
        
        <value>/home/ubuntu/hadoop-2.7.3/hadoop2_data/hdfs/datanode</value>
    
    </property>

</configuration>

<u>yarn-site.xml</u>

$ sudo vim yarn-site.xml
<configuration>

     <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
     </property>
     <property>
           <name>yarn.resourcemanager.address</name>
           <value>hadoop-master:8032</value>
     </property>
     <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>hadoop-master:8030</value>
      </property>
     <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>hadoop-master:8031</value>
     </property>
     <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>hadoop-master:8033</value>
     </property>
     <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>hadoop-master:8088</value>
     </property>

</configuration>

<u>mapred-site.xml</u>

$ cp mapred-site.xml.template mapred-site.xml
$ sudo vim mapred-site.xml
<configuration>

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>4096</value>
    </property>
    
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>4096</value>
    </property>
    
    <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xmx3072m</value>
    </property>
    
    <property>
        <name>mapreduce.reduce.java.opts</name>
        <value>-Xmx3072m</value>
    </property>

</configuration>
$ sudo vim hadoop-2.7.3/etc/hadoop/masters
hadoop-master
$ sudo vim hadoop-2.7.3/etc/hadoop/slaves
hadoop-master
hadoop-s1

現(xiàn)在對(duì)Hadoop集群master的配置已經(jīng)完成了,我們需要按照同樣的步驟配置slave節(jié)點(diǎn)猎贴。當(dāng)兩臺(tái)機(jī)器都安裝并配置好hadoop之后班缎,我們就可以啟動(dòng)hadoop集群了。首先要格式化hadoop的文件系統(tǒng)她渴。

<u>On Master</u>

$ cd hadoop-2.7.3/bin
$ hadoop namenode -format

然后就可以啟動(dòng)Hadoop的守護(hù)進(jìn)程了(NameNode, DataNode, ResourceManager和NodeManager)

$ cd ..
$ sbin/start-dfs.sh

運(yùn)行完成后再啟動(dòng)yarn达址。

$ sbin/start-yarn.sh

通過在命令行運(yùn)行jps指令我們可以看到當(dāng)前運(yùn)行在master節(jié)點(diǎn)上的守護(hù)進(jìn)程。

h2.png
h3.png

此時(shí)可在hadoop-master節(jié)點(diǎn)上訪問http://hadoop-master:8088/cluster/nodeshttp://hadoop-master:50070/dfshealth.html來查看集群的一些狀態(tài)信息趁耗。

h4.png

運(yùn)行MapReduce示例程序做詞頻統(tǒng)計(jì)

Hadoop中的所有MapReduce都是運(yùn)行在HDFS上的沉唠。首先我們可以去網(wǎng)上隨便找一篇莎士比亞全集,用txt格式保存在某個(gè)目錄中苛败,本文是保存在master的$HOME下满葛,文件大小為54MB径簿。

把用來做詞頻統(tǒng)計(jì)的輸入文件放到HDFS中,就可以運(yùn)行wordcount來做詞頻統(tǒng)計(jì)了嘀韧。

$ cd $HADOOP_HOME
$ hdfs dfs -put $HOME/shakespeare.txt /input
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-example-2.7.3.jar wordcount /input /output

程序運(yùn)行起來后可以在http://hadoop-master:8088/cluster/nodes查看任務(wù)的狀態(tài)篇亭。如果運(yùn)行成功,統(tǒng)計(jì)結(jié)果會(huì)存在HDFS的/output目錄下锄贷。如果想查看的話可以從HDFS中導(dǎo)入到本地的文件系統(tǒng)译蒂。

hdfs dfs -getmerge /output $HOME/output.txt

如果想了解更多對(duì)HDFS的操作方式,可以訪問https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/FileSystemShell.html#Overview

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谊却,一起剝皮案震驚了整個(gè)濱河市柔昼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炎辨,老刑警劉巖捕透,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異碴萧,居然都是意外死亡乙嘀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門勿决,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乒躺,“玉大人,你說我怎么就攤上這事低缩〖蚊埃” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵咆繁,是天一觀的道長讳推。 經(jīng)常有香客問我,道長玩般,這世上最難降的妖魔是什么银觅? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮坏为,結(jié)果婚禮上究驴,老公的妹妹穿的比我還像新娘。我一直安慰自己匀伏,他們只是感情好洒忧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著够颠,像睡著了一般熙侍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天蛉抓,我揣著相機(jī)與錄音庆尘,去河邊找鬼。 笑死巷送,一個(gè)胖子當(dāng)著我的面吹牛驶忌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惩系,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼位岔,長吁一口氣:“原來是場噩夢啊……” “哼如筛!你這毒婦竟也來了堡牡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤杨刨,失蹤者是張志新(化名)和其女友劉穎晤柄,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妖胀,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芥颈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赚抡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爬坑。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涂臣,靈堂內(nèi)的尸體忽然破棺而出盾计,到底是詐尸還是另有隱情,我是刑警寧澤赁遗,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布署辉,位于F島的核電站,受9級(jí)特大地震影響岩四,放射性物質(zhì)發(fā)生泄漏哭尝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一剖煌、第九天 我趴在偏房一處隱蔽的房頂上張望材鹦。 院中可真熱鬧,春花似錦耕姊、人聲如沸桶唐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莽红。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間安吁,已是汗流浹背醉蚁。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鬼店,地道東北人网棍。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像妇智,于是被迫代替她去往敵國和親滥玷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容