hadoop日記2——安裝分布式hadoop2.7.3

系統(tǒng):ubuntu 16.04、Apache hadoop2.7.3
教程適用于hadoop2.0以上的系統(tǒng)
教程使用兩個(gè)節(jié)點(diǎn)作為集群環(huán)境: 一個(gè)作為 Master 節(jié)點(diǎn),局域網(wǎng) IP 為 192.168.1.100;另一個(gè)作為 Slave 節(jié)點(diǎn),局域網(wǎng) IP 為 192.168.1.101。

hadoop安裝對于熟悉linux系統(tǒng)的人來說難度系數(shù)會(huì)大大的降低,教程比較適合不懂linux的新手。

安裝流程

  1. 安裝linux ubuntu系統(tǒng)(我安裝了linux桌面)
  2. 創(chuàng)建hadoop用戶
  3. 更新apt
  4. 安裝vim或者gedit
  5. 配置hosts和hostname
  6. 安裝SSH、配置SSH無密碼登錄
  7. 安裝java 環(huán)境
  8. 安裝hadoop2
  9. 配置hadoop2集群/分布式環(huán)境
  10. hadoop2異常說明

安裝linux ubuntu系統(tǒng)

ubuntu桌面版下載地址(linux新手推薦用桌面版比較容易上手)
http://www.ubuntu.com/download/desktop/

LTS表示 Long Term Support ,長期支持,linux建議安裝LTS的

具體安裝教程如下(這個(gè)教程感覺講的很詳細(xì))
http://www.jb51.net/os/windows/298507.html

創(chuàng)建hadoop用戶

這一步可以省略,如果你的linux系統(tǒng)已經(jīng)有了別的用戶
linux命令

sudo useradd -m hadoop -s /bin/bash  #這條命令創(chuàng)建了可以登陸的 hadoop 用戶,并使用 /bin/bash 作為 shell
sudo passwd hadoop  #設(shè)置密碼,按提示輸入兩次密碼
sudo adduser hadoop sudo  #為 hadoop 用戶增加管理員權(quán)限,方便部署,避免一些對新手來說比較棘手的權(quán)限問題

最后注銷當(dāng)前用戶(點(diǎn)擊屏幕右上角的齒輪,選擇注銷),在登陸界面使用剛創(chuàng)建的 hadoop 用戶進(jìn)行登陸

更新apt

linux命令

sudo apt-get update  #更新apt

安裝vim或者gedit

新手推薦安裝gedit,比較符合windows操作習(xí)慣
安裝命令

sudo apt-get install vim  #安裝vim
sudo apt-get install gedit  #安裝gedit

后續(xù)需要更改一些配置文件,會(huì)用到vim或者gedit,請根據(jù)個(gè)人喜歡自行使用

配置hosts和hostname
配置以后方便管理,同時(shí)可以使用主機(jī)名來訪問局域網(wǎng)里的其它主機(jī)

sudo vim /etc/hosts  #配置hosts

例如本教程使用兩個(gè)節(jié)點(diǎn)的名稱與對應(yīng)的 IP 關(guān)系如下:

192.168.1.100   Master
192.168.1.101   Slave1
sudo vim /etc/hostname  #配置hostname

例如本教程將192.168.1.100的主機(jī)名改成Master,將192。168.1.101改成Salve1
此時(shí)應(yīng)該重啟下系統(tǒng)

安裝SSH配置SSH無密碼登錄

集群、單節(jié)點(diǎn)模式都需要用到 SSH 登陸(master),Ubuntu 默認(rèn)已安裝了 SSH client,此外還需要安裝 SSH server

sudo apt-get install openssh-server  #安裝SSH server
ssh localhost  #使用命令登錄本機(jī),此時(shí)會(huì)有SSH首次登陸提示,輸入 yes 。然后按提示輸入密碼,這樣就登陸到本機(jī)了,然后輸入【exit】退出

配置SSH無密碼登錄
利用 ssh-keygen 生成密鑰

cd ~/.ssh/  #若沒有該目錄,請先執(zhí)行一次ssh localhost
ssh-keygen -t rsa  #會(huì)有提示,都按回車就可以,最后可以輸入ls命令查看目錄下的文件

讓 Master 節(jié)點(diǎn)需能無密碼 SSH 本機(jī),在 Master 節(jié)點(diǎn)上執(zhí)行:

cat ./id_rsa.pub >> ./authorized_keys  #完成后可執(zhí)行 ssh Master,就可以無密碼登錄到本地,驗(yàn)證以后記得輸入exit,返回原來終端

在Master 節(jié)點(diǎn)上將公匙id_rsa.pub傳輸?shù)?Slave1 節(jié)點(diǎn):

scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/  #這里將公鑰放在了Slave1節(jié)點(diǎn)/home/hadoop/目錄下,scp 是 secure copy 的簡寫,用于在 Linux 下進(jìn)行遠(yuǎn)程拷貝文件,類似于 cp 命令,不過 cp 只能在本機(jī)中拷貝。

在 Slave1 節(jié)點(diǎn)上,將 ssh 公匙加入授權(quán):

mkdir ~/.ssh       # 如果不存在該文件夾需先創(chuàng)建,若已存在則忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub    # 用完就可以刪掉了

最好可以在Master節(jié)點(diǎn)通過ssh Slave1命令來測試下是否可以無密碼登錄到Salve1節(jié)點(diǎn)上

安裝java環(huán)境

下載oracle JDK,可以通過https://wiki.apache.org/hadoop/HadoopJavaVersions 查看要hadoop支持哪些版本JDK

安裝

sudo tar -zxf {jdk存放的目錄}/jdk-xxx.linux.tar.gz -C /usr/local    # 解壓到/usr/local中

配置Javahome

sudo gedit /etc/profile  #打開配置文件

在打開的文件末尾加入如下變量,然后保存

export JAVA_HOME={jdk安裝目錄}  #例如/usr/local/java/jdk1.8.0_111
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

校驗(yàn)是否配置成功

echo $JAVA_HOME     # 檢驗(yàn)變量值
java -version
$JAVA_HOME/bin/java -version  # 與直接執(zhí)行 java -version 一樣
出現(xiàn)如下提示表示配置成功,如果無反映可以嘗試重啟系統(tǒng)

安裝hadoop2
我們將hadoop2安裝在Master主機(jī)上面,一切配置好之后,把hadoop2直接復(fù)制到Slave1主機(jī)上面即可
下面的操作都是在Master主機(jī)上進(jìn)行的

下載hadoop2
Hadoop2可以通過http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下載,一般選擇下載最新的穩(wěn)定版本,即下載 “stable” 下的 hadoop-2.x.y.tar.gz 這個(gè)格式的文件,這是編譯好的,另一個(gè)包含 src 的則是 Hadoop 源代碼,需要進(jìn)行編譯才可使用。

hadoop-2.7.3.tar.gz是我們要下載的文件

安裝hadoop2

sudo tar -zxf {hadoop下載路徑}/hadoop-2.7.3.tar.gz -C /usr/local    # 解壓到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.7.3/ ./hadoop            # 將文件夾名改為hadoop
sudo chown -R hadoop ./hadoop       # 修改文件權(quán)限

校驗(yàn)hadoop2是否安裝成功

cd /usr/local/hadoop
./bin/hadoop version

看到這個(gè)信息表示hadoop2安裝成功

配置hadoop環(huán)境變量
將 Hadoop 安裝目錄加入 PATH 變量中,這樣就可以在任意目錄中直接使用 hadoo、hdfs 等命令了。首先執(zhí)行 sudo gedit /etc/profile
修改PATH,在PATH末尾加入:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
加上之前配置的java環(huán)境,最好的PATH如下

export PATH=$PATH:$JAVA_HOME/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

配置hadoop2集群/分布式環(huán)境,在Master主機(jī)上進(jìn)行配置

集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5個(gè)配置文件,更多設(shè)置項(xiàng)可點(diǎn)擊查看官方說明,這里僅設(shè)置了正常啟動(dòng)所必須的設(shè)置項(xiàng): slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
官方文檔地址【2.7.3doc】:http://hadoop.apache.org/docs/r2.7.3/

  1. 文件 slaves,將作為 DataNode 的主機(jī)名寫入該文件,每行一個(gè),默認(rèn)為 localhost,所以在偽分布式配置時(shí),節(jié)點(diǎn)即作為 NameNode 也作為 DataNode。分布式配置可以保留 localhost,也可以刪掉,讓 Master 節(jié)點(diǎn)僅作為 NameNode 使用。
  2. core-site.xml
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>
  1. 文件 hdfs-site.xml,dfs.replication 一般設(shè)為 3表示有3個(gè)Slave節(jié)點(diǎn),但我們只有一個(gè) Slave 節(jié)點(diǎn),所以 dfs.replication 的值設(shè)為 1:
<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
  1. 文件 mapred-site.xml (hadoop2.7.3需要先重命名,默認(rèn)文件名為 mapred-site.xml.template),然后配置修改如下:
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
</configuration>
  1. yarn-site.xml
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>Master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

將配置好的hadoop2從Master主機(jī)復(fù)制到其它Slave主機(jī)

Master節(jié)點(diǎn)的hadoop配置好以后,將/usr/local/hadoop文件夾復(fù)制到各個(gè)Slave節(jié)點(diǎn)。

在Master節(jié)點(diǎn)執(zhí)行

cd /usr/local
tar -zcf ~/hadoop.master.tar.gz ./hadoop   #將hadoop文件夾壓縮到/home/hadoop/目錄下
cd ~
scp ./hadoop.master.tar.gz Slave1:/home/hadoop  #將hadoop.master.tar.gz從Master主機(jī)復(fù)制到Salve1主機(jī)/home/hadoop目錄下

在Salve節(jié)點(diǎn)執(zhí)行

sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local  #解壓安裝
sudo chown -R hadoop /usr/local/hadoop  #給hadoop目錄賦予讀寫權(quán)限

格式化NameNode

首次啟動(dòng)需要先在 Master 節(jié)點(diǎn)執(zhí)行 NameNode 的格式化:

hdfs namenode -format       # 首次運(yùn)行需要執(zhí)行初始化,之后不需要

啟動(dòng)hadoop2

在Master節(jié)點(diǎn)執(zhí)行如下操作

start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

通過命令jps可以查看各個(gè)節(jié)點(diǎn)所啟動(dòng)的進(jìn)程。正確的話,在 Master 節(jié)點(diǎn)上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 進(jìn)程,在 Slave 節(jié)點(diǎn)可以看到 DataNode 和 NodeManager 進(jìn)程。缺少任一進(jìn)程都表示出錯(cuò)。我們通過瀏覽器打開網(wǎng)址:http://master:50070/查看datanode和namenode的狀態(tài),如果有異常通過查看集群log文件來排查異常。

hadoop2異常說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容