九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Hadoop安裝教程

本教程適合于在 CentOS 6.x 系統(tǒng)中安裝原生 Hadoop 2,適用于Hadoop 2.7.1, Hadoop 2.6.0 等版本,主要參考了官方安裝教程,步驟詳細,輔以適當說明,相信按照步驟來,都能順利在 CentOS 中安裝并運行 Hadoop。本 Hadoop 教程由給力星出品,轉載請注明。

環(huán)境

本教程使用 CentOS 6.4 32位 作為系統(tǒng)環(huán)境,請自行安裝系統(tǒng)。如果用的是 Ubuntu 系統(tǒng),請查看相應的 Ubuntu安裝Hadoop教程。

本教程基于原生 Hadoop 2,在 Hadoop 2.6.0 (stable) 版本下驗證通過,可適合任何 Hadoop 2.x.y 版本,例如 Hadoop 2.7.1, Hadoop 2.4.1等。

Hadoop版本

Hadoop 有兩個主要版本,Hadoop 1.x.y 和 Hadoop 2.x.y 系列,比較老的教材上用的可能是 0.20 這樣的版本。Hadoop 2.x 版本在不斷更新,本教程均可適用。如果需安裝 0.20,1.2.1這樣的版本,本教程也可以作為參考,主要差別在于配置項,配置請參考官網(wǎng)教程或其他教程。

新版是兼容舊版的,書上舊版本的代碼應該能夠正常運行(我自己沒驗證,歡迎驗證反饋)。

裝好了 CentOS 系統(tǒng)之后,在安裝 Hadoop 前還需要做一些必備工作。

創(chuàng)建hadoop用戶

如果你安裝 CentOS 的時候不是用的 “hadoop” 用戶,那么需要增加一個名為 hadoop 的用戶。

首先點擊左上角的 “應用程序” -> “系統(tǒng)工具” -> “終端”,首先在終端中輸入 su ,按回車,輸入 root 密碼以 root 用戶登錄,接著執(zhí)行命令創(chuàng)建新用戶 hadoop:

  1. su # 上述提到的以 root 用戶登錄
  2. useradd -m hadoop -s /bin/bash # 創(chuàng)建新用戶hadoop
Shell 命令

如下圖所示,這條命令創(chuàng)建了可以登陸的 hadoop 用戶,并使用 /bin/bash 作為shell。

CentOS創(chuàng)建hadoop用戶

接著使用如下命令修改密碼,按提示輸入兩次密碼,可簡單的設為 “hadoop”(密碼隨意指定,若提示“無效的密碼,過于簡單”則再次輸入確認就行):

  1. passwd hadoop
Shell 命令

可為 hadoop 用戶增加管理員權限,方便部署,避免一些對新手來說比較棘手的權限問題,執(zhí)行:

  1. visudo
Shell 命令

如下圖,找到 root ALL=(ALL) ALL 這行(應該在第98行,可以先按一下鍵盤上的 ESC 鍵,然后輸入 :98 (按一下冒號,接著輸入98,再按回車鍵),可以直接跳到第98行 ),然后在這行下面增加一行內容:hadoop ALL=(ALL) ALL (當中的間隔為tab),如下圖所示:

為hadoop增加sudo權限

添加好內容后,先按一下鍵盤上的 ESC 鍵,然后輸入 :wq (輸入冒號還有wq,這是vi/vim編輯器的保存方法),再按回車鍵保存退出就可以了。

最后注銷當前用戶(點擊屏幕右上角的用戶名,選擇退出->注銷),在登陸界面使用剛創(chuàng)建的 hadoop 用戶進行登陸。(如果已經(jīng)是 hadoop 用戶,且在終端中使用 su 登錄了 root 用戶,那么需要執(zhí)行 exit 退出 root 用戶狀態(tài))

準備工作

使用 hadoop 用戶登錄后,還需要安裝幾個軟件才能安裝 Hadoop。

CentOS 使用 yum 來安裝軟件,需要聯(lián)網(wǎng)環(huán)境,首先應檢查一下是否連上了網(wǎng)絡。如下圖所示,桌面右上角的網(wǎng)絡圖標若顯示紅叉,則表明還未聯(lián)網(wǎng),應點擊選擇可用網(wǎng)絡。

檢查是否聯(lián)網(wǎng)

連接網(wǎng)絡后,需要安裝 SSH 和 Java。

安裝SSH、配置SSH無密碼登陸

集群、單節(jié)點模式都需要用到 SSH 登陸(類似于遠程登陸,你可以登錄某臺 Linux 主機,并且在上面運行命令),一般情況下,CentOS 默認已安裝了 SSH client、SSH server,打開終端執(zhí)行如下命令進行檢驗:

  1. rpm -qa | grep ssh
Shell 命令

如果返回的結果如下圖所示,包含了 SSH client 跟 SSH server,則不需要再安裝。

檢查是否安裝了SSH

若需要安裝,則可以通過 yum 進行安裝(安裝過程中會讓你輸入 [y/N],輸入 y 即可):

  1. sudo yum install openssh-clients
  2. sudo yum install openssh-server
Shell 命令

接著執(zhí)行如下命令測試一下 SSH 是否可用:

  1. ssh localhost
Shell 命令

此時會有如下提示(SSH首次登陸提示),輸入 yes 。然后按提示輸入密碼 hadoop,這樣就登陸到本機了。

測試SSH是否可用

但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。

首先輸入 exit 退出剛才的 ssh,就回到了我們原先的終端窗口,然后利用 ssh-keygen 生成密鑰,并將密鑰加入到授權中:

  1. exit # 退出剛才的 ssh localhost
  2. cd ~/.ssh/ # 若沒有該目錄,請先執(zhí)行一次ssh localhost
  3. ssh-keygen -t rsa # 會有提示,都按回車就可以
  4. cat id_rsa.pub >> authorized_keys # 加入授權
  5. chmod 600 ./authorized_keys # 修改文件權限
Shell 命令
~的含義

在 Linux 系統(tǒng)中,~ 代表的是用戶的主文件夾,即 “/home/用戶名” 這個目錄,如你的用戶名為 hadoop,則 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注釋。

此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了,如下圖所示。

SSH無密碼登錄

安裝Java環(huán)境

Java 環(huán)境可選擇 Oracle 的 JDK,或是 OpenJDK,現(xiàn)在一般 Linux 系統(tǒng)默認安裝的基本是 OpenJDK,如 CentOS 6.4 就默認安裝了 OpenJDK 1.7。按 http://wiki.apache.org/hadoop/HadoopJavaVersions 中說的,Hadoop 在 OpenJDK 1.7 下運行是沒問題的。需要注意的是,CentOS 6.4 中默認安裝的只是 Java JRE,而不是 JDK,為了開發(fā)方便,我們還是需要通過 yum 進行安裝 JDK,安裝過程中會讓輸入 [y/N],輸入 y 即可:

  1. sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
Shell 命令

通過上述命令安裝 OpenJDK,默認安裝位置為 /usr/lib/jvm/java-1.7.0-openjdk(該路徑可以通過執(zhí)行 rpm -ql java-1.7.0-openjdk-devel | grep '/bin/javac' 命令確定,執(zhí)行后會輸出一個路徑,除去路徑末尾的 “/bin/javac”,剩下的就是正確的路徑了)。OpenJDK 安裝后就可以直接使用 java、javac 等命令了。

接著需要配置一下 JAVA_HOME 環(huán)境變量,為方便,我們在 ~/.bashrc 中進行設置(擴展閱讀: 設置Linux環(huán)境變量的方法和區(qū)別):

  1. vim ~/.bashrc
Shell 命令

在文件最后面添加如下單獨一行(指向 JDK 的安裝位置),并保存:

  1. export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk
Shell

如下圖所示:

設置JAVA_HOME環(huán)境變量

接著還需要讓該環(huán)境變量生效,執(zhí)行如下代碼:

  1. source ~/.bashrc # 使變量設置生效
Shell 命令

設置好后我們來檢驗一下是否設置正確:

  1. echo $JAVA_HOME # 檢驗變量值
  2. java -version
  3. $JAVA_HOME/bin/java -version # 與直接執(zhí)行 java -version 一樣
Shell 命令

如果設置正確的話,$JAVA_HOME/bin/java -version 會輸出 java 的版本信息,且和 java -version 的輸出結果一樣,如下圖所示:

成功設置JAVA_HOME環(huán)境變量

這樣,Hadoop 所需的 Java 運行環(huán)境就安裝好了。

安裝 Hadoop 2

Hadoop 2 可以通過 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下載,本教程選擇的是 2.6.0 版本,下載時請下載 hadoop-2.x.y.tar.gz 這個格式的文件,這是編譯好的,另一個包含 src 的則是 Hadoop 源代碼,需要進行編譯才可使用。

下載時強烈建議也下載 hadoop-2.x.y.tar.gz.mds 這個文件,該文件包含了檢驗值可用于檢查 hadoop-2.x.y.tar.gz 的完整性,否則若文件發(fā)生了損壞或下載不完整,Hadoop 將無法正常運行。

本文涉及的文件均通過瀏覽器下載,默認保存在 “下載” 目錄中(若不是請自行更改 tar 命令的相應目錄)。另外,如果你用的不是 2.6.0 版本,則將所有命令中出現(xiàn)的 2.6.0 更改為你所使用的版本。

  1. cat ~/下載/hadoop-2.6.0.tar.gz.mds | grep 'MD5' # 列出md5檢驗值
  2. # head -n 6 ~/下載/hadoop-2.7.1.tar.gz.mds # 2.7.1版本格式變了,可以用這種方式輸出
  3. md5sum ~/下載/hadoop-2.6.0.tar.gz | tr "a-z" "A-Z" # 計算md5值,并轉化為大寫,方便比較
Shell 命令

若文件不完整則這兩個值一般差別很大,可以簡單對比下前幾個字符跟后幾個字符是否相等即可,如下圖所示,如果兩個值不一樣,請務必重新下載。

檢驗文件完整性

我們選擇將 Hadoop 安裝至 /usr/local/ 中:

  1. sudo tar -zxf ~/下載/hadoop-2.6.0.tar.gz -C /usr/local # 解壓到/usr/local中
  2. cd /usr/local/
  3. sudo mv ./hadoop-2.6.0/ ./hadoop # 將文件夾名改為hadoop
  4. sudo chown -R hadoop:hadoop ./hadoop # 修改文件權限
Shell 命令

Hadoop 解壓后即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:

  1. cd /usr/local/hadoop
  2. ./bin/hadoop version
Shell 命令
相對路徑與絕對路徑的區(qū)別

請務必注意命令中的相對路徑與絕對路徑,本文后續(xù)出現(xiàn)的 ./bin/...,./etc/... 等包含 ./ 的路徑,均為相對路徑,以 /usr/local/hadoop 為當前目錄。例如在 /usr/local/hadoop 目錄中執(zhí)行 ./bin/hadoop version 等同于執(zhí)行 /usr/local/hadoop/bin/hadoop version??梢詫⑾鄬β窂礁某山^對路徑來執(zhí)行,但如果你是在主文件夾 ~ 中執(zhí)行 ./bin/hadoop version,執(zhí)行的會是 /home/hadoop/bin/hadoop version,就不是我們所想要的了。

Hadoop單機配置(非分布式)

Hadoop 默認模式為非分布式模式,無需進行其他配置即可運行。非分布式即單 Java 進程,方便進行調試。

現(xiàn)在我們可以執(zhí)行例子來感受下 Hadoop 的運行。Hadoop 附帶了豐富的例子(運行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

在此我們選擇運行 grep 例子,我們將 input 文件夾中的所有文件作為輸入,篩選當中符合正則表達式 dfs[a-z.]+ 的單詞并統(tǒng)計出現(xiàn)的次數(shù),最后輸出結果到 output 文件夾中。

  1. cd /usr/local/hadoop
  2. mkdir ./input
  3. cp ./etc/hadoop/*.xml ./input # 將配置文件作為輸入文件
  4. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
  5. cat ./output/* # 查看運行結果
Shell 命令

若運行出錯,如出現(xiàn)如下圖提示:

運行Hadoop實例時可能會報錯

若出現(xiàn)提示 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”,該 WARN 提示可以忽略,不會影響 Hadoop 正常運行(可通過編譯 Hadoop 源碼解決,解決方法請自行搜索)。

若出現(xiàn)提示 “INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknowHostException”,這需要執(zhí)行如下命令修改 hosts 文件,為你的主機名增加IP映射:

  1. sudo vim /etc/hosts
Shell 命令

主機名在終端窗口標題里可以看到,或執(zhí)行命令 hostname 查看,如下圖所示,在最后面增加一行 “127.0.0.1 dblab”:

設置主機名的IP映射

保存文件后,重新運行 hadoop 實例,若執(zhí)行成功的話會輸出很多作業(yè)的相關信息,最后的輸出信息如下圖所示。作業(yè)的結果會輸出在指定的 output 文件夾中,通過命令 cat ./output/* 查看結果,符合正則的單詞 dfsadmin 出現(xiàn)了1次:

Hadoop例子輸出結果

注意,Hadoop 默認不會覆蓋結果文件,因此再次運行上面實例會提示出錯,需要先將 ./output 刪除。

  1. rm -r ./output
Shell 命令

Hadoop偽分布式配置

Hadoop 可以在單節(jié)點上以偽分布式的方式運行,Hadoop 進程以分離的 Java 進程來運行,節(jié)點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的文件。

在設置 Hadoop 偽分布式配置前,我們還需要設置 HADOOP 環(huán)境變量,執(zhí)行如下命令在 ~/.bashrc 中設置:

  1. gedit ~/.bashrc
Shell 命令

這次我們選擇用 gedit 而不是 vim 來編輯。gedit 是文本編輯器,類似于 Windows 中的記事本,會比較方便。保存后記得關掉整個 gedit 程序,否則會占用終端。在文件最后面增加如下內容:

  1. # Hadoop Environment Variables
  2. export HADOOP_HOME=/usr/local/hadoop
  3. export HADOOP_INSTALL=$HADOOP_HOME
  4. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  5. export HADOOP_COMMON_HOME=$HADOOP_HOME
  6. export HADOOP_HDFS_HOME=$HADOOP_HOME
  7. export YARN_HOME=$HADOOP_HOME
  8. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  9. export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
Shell

保存后,不要忘記執(zhí)行如下命令使配置生效:

  1. source ~/.bashrc
Shell 命令

這些變量在啟動 Hadoop 進程時需要用到,不設置的話可能會報錯(這些變量也可以通過修改 ./etc/hadoop/hadoop-env.sh 實現(xiàn))。

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個配置文件 core-site.xmlhdfs-site.xml 。Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現(xiàn)。

修改配置文件 core-site.xml (通過 gedit 編輯會比較方便: gedit ./etc/hadoop/core-site.xml),將當中的

  1. <configuration>
  2. </configuration>
XML

修改為下面配置:

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>file:/usr/local/hadoop/tmp</value>
  5. <description>Abase for other temporary directories.</description>
  6. </property>
  7. <property>
  8. <name>fs.defaultFS</name>
  9. <value>hdfs://localhost:9000</value>
  10. </property>
  11. </configuration>
XML

同樣的,修改配置文件 hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/usr/local/hadoop/tmp/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/usr/local/hadoop/tmp/dfs/data</value>
  13. </property>
  14. </configuration>
XML

配置完成后,執(zhí)行 NameNode 的格式化:

  1. ./bin/hdfs namenode -format
Shell 命令

成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯。

執(zhí)行NameNode格式化

接著開啟 NaneNodeDataNode 守護進程:

  1. ./sbin/start-dfs.sh
Shell 命令

若出現(xiàn)如下 SSH 的提示 “Are you sure you want to continue connecting”,輸入 yes 即可。

首次啟動Hadoop時的SSH提示

啟動時可能會有 WARN 提示 “WARN util.NativeCodeLoader…” 如前面提到的,這個提示不會影響正常使用。

啟動完成后,可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下進程: “NameNode”、”DataNode”和SecondaryNameNode(如果 SecondaryNameNode 沒有啟動,請運行 sbin/stop-dfs.sh 關閉進程,然后再次嘗試啟動嘗試)。如果沒有 NameNode 或 DataNode ,那就是配置不成功,請仔細檢查之前步驟,或通過查看啟動日志排查原因。

通過jps查看啟動的Hadoop進程

通過查看啟動日志分析啟動失敗原因

有時 Hadoop 無法正確啟動,如 NameNode 進程沒有順利啟動,這時可以查看啟動日志來排查原因,注意幾點:

  • 啟動時會提示形如 “dblab: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-dblab.out”,其中 dblab 對應你的主機名,但啟動的日志信息是記錄在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-dblab.log 中,所以應該查看這個后綴為 .log 的文件;
  • 每一次的啟動日志都是追加在日志文件之后,所以得拉到最后面看,看下記錄的時間就知道了。
  • 一般出錯的提示在最后面,也就是寫著 Fatal、Error 或者 Java Exception 的地方。
  • 可以在網(wǎng)上搜索一下出錯信息,看能否找到一些相關的解決方法。

成功啟動后,可以訪問 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。

Hadopp的Web界面

運行Hadoop偽分布式實例

上面的單機模式,grep 例子讀取的是本地數(shù)據(jù),偽分布式讀取的則是 HDFS 上的數(shù)據(jù)。要使用 HDFS,首先需要在 HDFS 中創(chuàng)建用戶目錄:

  1. ./bin/hdfs dfs -mkdir -p /user/hadoop
Shell 命令

接著將 ./etc/hadoop 中的 xml 文件作為輸入文件復制到分布式文件系統(tǒng)中,即將 /usr/local/hadoop/etc/hadoop 復制到分布式文件系統(tǒng)中的 /user/hadoop/input 中。我們使用的是 hadoop 用戶,并且已創(chuàng)建相應的用戶目錄 /user/hadoop ,因此在命令中就可以使用相對路徑如 input,其對應的絕對路徑就是 /user/hadoop/input:

  1. ./bin/hdfs dfs -mkdir input
  2. ./bin/hdfs dfs -put ./etc/hadoop/*.xml input
Shell 命令

復制完成后,可以通過如下命令查看 HDFS 中的文件列表:

  1. ./bin/hdfs dfs -ls input
Shell 命令

偽分布式運行 MapReduce 作業(yè)的方式跟單機模式相同,區(qū)別在于偽分布式讀取的是HDFS中的文件(可以將單機步驟中創(chuàng)建的本地 input 文件夾,輸出結果 output 文件夾都刪掉來驗證這一點)。

  1. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
Shell 命令

查看運行結果的命令(查看的是位于 HDFS 中的輸出結果):

  1. ./bin/hdfs dfs -cat output/*
Shell 命令

結果如下,注意到剛才我們已經(jīng)更改了配置文件,所以運行結果不同。

Hadoop偽分布式運行grep的結果

我們也可以將運行結果取回到本地:

  1. rm -r ./output # 先刪除本地的 output 文件夾(如果存在)
  2. ./bin/hdfs dfs -get output ./output # 將 HDFS 上的 output 文件夾拷貝到本機
  3. cat ./output/*
Shell 命令

Hadoop 運行程序時,輸出目錄不能存在,否則會提示錯誤 “org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists” ,因此若要再次執(zhí)行,需要執(zhí)行如下命令刪除 output 文件夾:

  1. ./bin/hdfs dfs -rm -r output # 刪除 output 文件夾
Shell 命令
運行程序時,輸出目錄不能存在

運行 Hadoop 程序時,為了防止覆蓋結果,程序指定的輸出目錄(如 output)不能存在,否則會提示錯誤,因此運行前需要先刪除輸出目錄。在實際開發(fā)應用程序時,可考慮在程序中加上如下代碼,能在每次運行時自動刪除輸出目錄,避免繁瑣的命令行操作:

  1. Configuration conf = new Configuration();
  2. Job job = new Job(conf);
  3.  
  4. /* 刪除輸出目錄 */
  5. Path outputPath = new Path(args[1]);
  6. outputPath.getFileSystem(conf).delete(outputPath, true);
Java

若要關閉 Hadoop,則運行

  1. ./sbin/stop-dfs.sh
Shell 命令
注意

下次啟動 hadoop 時,無需進行 NameNode 的初始化,只需要運行 ./sbin/start-dfs.sh 就可以!

啟動YARN

(偽分布式不啟動 YARN 也可以,一般不會影響程序執(zhí)行)

有的讀者可能會疑惑,怎么啟動 Hadoop 后,見不到書上所說的 JobTracker 和 TaskTracker,這是因為新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也稱為 YARN,Yet Another Resource Negotiator)。

YARN 是從 MapReduce 中分離出來的,負責資源管理與任務調度。YARN 運行于 MapReduce 之上,提供了高可用性、高擴展性,YARN 的更多介紹在此不展開,有興趣的可查閱相關資料。

上述通過 ./sbin/start-dfs.sh 啟動 Hadoop,僅僅是啟動了 MapReduce 環(huán)境,我們可以啟動 YARN ,讓 YARN 來負責資源管理與任務調度。

首先修改配置文件 mapred-site.xml,這邊需要先進行重命名:

  1. mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
Shell 命令

然后再進行編輯,同樣使用 gedit 編輯會比較方便些 gedit ./etc/hadoop/mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>
XML

接著修改配置文件 yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. </configuration>
XML

然后就可以啟動 YARN 了(需要先執(zhí)行過 ./sbin/start-dfs.sh):

  1. ./sbin/start-yarn.sh $ 啟動YARN
  2. ./sbin/mr-jobhistory-daemon.sh start historyserver # 開啟歷史服務器,才能在Web中查看任務運行情況
Shell 命令

開啟后通過 jps 查看,可以看到多了 NodeManager 和 ResourceManager 兩個后臺進程,如下圖所示。

開啟YARN

啟動 YARN 之后,運行實例的方法還是一樣的,僅僅是資源管理方式、任務調度不同。觀察日志信息可以發(fā)現(xiàn),不啟用 YARN 時,是 “mapred.LocalJobRunner” 在跑任務,啟用 YARN 之后,是 “mapred.YARNRunner” 在跑任務。啟動 YARN 有個好處是可以通過 Web 界面查看任務的運行情況:http://localhost:8088/cluster,如下圖所示。

開啟YARN后可以查看任務運行信息

但 YARN 主要是為集群提供更好的資源管理與任務調度,然而這在單機上體現(xiàn)不出價值,反而會使程序跑得稍慢些。因此在單機上是否開啟 YARN 就看實際情況了。

不啟動 YARN 需重命名 mapred-site.xml

如果不想啟動 YARN,務必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用時改回來就行。否則在該配置文件存在,而未開啟 YARN 的情況下,運行程序會提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的錯誤,這也是為何該配置文件初始文件名為 mapred-site.xml.template。

同樣的,關閉 YARN 的腳本如下:

  1. ./sbin/stop-yarn.sh
  2. ./sbin/mr-jobhistory-daemon.sh stop historyserver
Shell 命令

自此,你已經(jīng)掌握 Hadoop 的配置和基本使用了。

附加教程: 配置PATH環(huán)境變量

在這里額外講一下 PATH 這個環(huán)境變量(可執(zhí)行 echo $PATH 查看,當中包含了多個目錄)。例如我們在主文件夾 ~ 中執(zhí)行 ls 這個命令時,實際執(zhí)行的是 /bin/ls 這個程序,而不是 ~/ls 這個程序。系統(tǒng)是根據(jù) PATH 這個環(huán)境變量中包含的目錄位置,逐一進行查找,直至在這些目錄位置下找到匹配的程序(若沒有匹配的則提示該命令不存在)。

上面的教程中,我們都是先進入到 /usr/local/hadoop 目錄中,再執(zhí)行 ./sbin/hadoop,實際上等同于運行 /usr/local/hadoop/sbin/hadoop。我們可以將 Hadoop 命令的相關目錄加入到 PATH 環(huán)境變量中,這樣就可以直接通過 start-dfs.sh 開啟 Hadoop,也可以直接通過 hdfs 訪問 HDFS 的內容,方便平時的操作。

在前面我們設置 HADOOP 環(huán)境變量時,我們已經(jīng)順便設置了 PATH 變量(即 “export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin”),那么以后我們在任意目錄中都可以直接通過執(zhí)行 start-dfs.sh 來啟動 Hadoop 或者執(zhí)行 hdfs dfs -ls input 查看 HDFS 文件了,讀者不妨現(xiàn)在就執(zhí)行 hdfs dfs -ls input 試試看。

安裝Hadoop集群

在平時的學習中,我們使用偽分布式就足夠了。如果需要安裝 Hadoop 集群,請查看Hadoop集群安裝配置教程。

相關教程

參考資料

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
初識Hadoop一,配置及啟動服務
Hadoop 2.7分布式集群環(huán)境搭建
818不敗家
hadoop 完全分布式部署
CentOS下Hadoop偽分布模式安裝
大數(shù)據(jù)之hadoop分布式集群初次啟動
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服