2021-08-10 Ubuntu下安裝配置 Apache Hadoop

Hadoop是Apache基金會旗下的一個開源的分布式計算平臺,是基于Java語言開發(fā)的庶喜,有很好的跨平臺特性小腊,并且可以部署在廉價的計算機集群中。用戶無需了解分布式底層細節(jié)久窟,就可以開發(fā)分布式程序秩冈,充分利用集群的威力進行高速運算和存儲。

Ubuntu 版本: 18.x ~ 20.x

Hadoop版本:3.2.2? (http://hadoop.apache.org/)

1. 安裝 JDK

? ? $ sudo apt-get update
? ? $ sudo apt-get install openjdk-8-jdk

? ? $ java -version

? ? openjdk version "1.8.0_275"
? ? OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01)
? ? OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

? ? $ update-alternatives --config java

? ? There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java


2. 設置 JAVA_HOME

? ? $ sudo vi /etc/profile

? ? JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
? ? JRE_HOME=$JAVA_HOME/jre
? ? CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
? ? PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
? ? export JAVA_HOME JRE_HOME CLASS_PATH PATH

? ? $ source /etc/profile
? ? $ echo $JAVA_HOME


3. 安裝 Hadoop 到主機

? ? $ wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz? ? ? # 下載 hadoop

? ? $ mv ./hadoop-3.2.2.tar.gz ~/apps/? ? # 移動到你想要放置的文件夾
? ? $ tar -zvxf hadoop-3.2.2.tar.gz? ? # ~/apps/hadoop-3.2.2

? ? 本地配置 SSH 無密碼訪問:
? ? $ cd ~/.ssh
? ? $ ssh-keygen -t rsa
? ? $ cat ./id_rsa.pub >> ./authorized_keys
? ? $ ssh localhsot


4. 配置 Hadoop

? ? 創(chuàng)建 Hadoop用戶和組斥扛,并授予執(zhí)行權限

? ? $ sudo addgroup hadoop
? ? $ sudo usermod -a -G hadoop xxx   # 將當前用戶加入到hadoop組
? ? $ sudo vim /etc/sudoers  ? ? ? ? # 將hadoop組加入到sudoer

? ? 在 root ALL=(ALL) ALL? 后

? ? 添加一行 hadoop ALL=(ALL) ALL

? ? $ sudo chmod -R 755 ~/apps/hadoop-3.2.2
? ? $ sudo chown -R xxx:hadoop ~/apps/hadoop-3.2.2? ? # 否則ssh會拒絕訪問

? ? $ sudo vim /etc/profile? (增量配置入问,不要刪除之前的 JAVA_HOME ...)

? ? HADOOP_HOME=/home/xxx/apps/hadoop-3.2.2
? ? PATH=.$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
? ? export HADOOP_HOME

? ? $ sudo source /etc/profile
? ? $ echo $HADOOP_HOME
? ?

5. 單機模式運行 Hadoop

? ? $ hadoop version? ? # 測試是否配置成功
? ? $ cd ~/apps/hadoop-3.2.2
? ? $ mkdir input
? ? $ cp README.txt input
? ? $ hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-3.2.2-sources.jar org.apache.hadoop.examples.WordCount input output


6. 偽分布式配置 Hadoop

? ? $ cd ~/apps/hadoop-3.2.2

? ? $ vim ./etc/hadoop/hadoop-env.sh

? ? ? ? export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

? ? $ vim ./etc/hadoop/core-site.xml

? ? <configuration>
? ? ? ? <property>
? ? ? ? ? ? <name>hadoop.tmp.dir</name>
? ? ? ? ? ? <value>file:/home/xxx/apps/hadoop-3.2.2/tmp</value>
? ? ? ? ? ? <description>Abase for other temporary directories.</description>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? <name>fs.defaultFS</name>
? ? ? ? ? ? <value>hdfs://localhost:9000</value>
? ? ? ? </property>
? ? </configuration>
? ? *注:路徑里的 ‘xxx’ 是 ubuntu 用戶的home目錄名丹锹,下同?

? ? $ vim ./etc/hadoop/hdfs-site.xml

? ? <configuration>
? ? ? ? <property>
? ? ? ? ? ? <name>dfs.replication</name>
? ? ? ? ? ? <value>1</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? <name>dfs.http.address</name>
? ? ? ? ? <value>0.0.0.0:50070</value>
? ? ? ? </property>? ? ? ?
? ? ? ? <property>
? ? ? ? ? ? <name>dfs.namenode.name.dir</name>
? ? ? ? ? ? <value>file:/home/xxx/apps/hadoop-3.2.2/tmp/dfs/name</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? <name>dfs.datanode.data.dir</name>
? ? ? ? ? ? <value>file:/home/xxx/apps/hadoop-3.2.2/tmp/dfs/data</value>
? ? ? ? </property>
? ? </configuration>

? ? $ hdfs namenode -format

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

? ? 遇到報錯:localhost: ERROR: JAVA_HOME is not set and could not be found.
? ? 解決方案:其實是hadoop里面hadoop-env.sh文件里面的java路徑設置不對,hadoop-env.sh ./etc/hadoop目錄下芬失,具體的修改辦法如下:? ?

? ? $ vim ./etc/hadoop/hdoop-env.sh

? ? 將語句
? ? export JAVA_HOME=$JAVA_HOME?
? ? # 也有可能語句為export JAVA_HOME=? (且被注釋掉了)

? ? 修改為
? ? export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64? # 自己的Java home路徑楣黍,可以在終端輸入$JAVA_HOME 查看

? ? 保存后退出,重新執(zhí)行 ./sbin/start-dfs.sh

? ? 輸入jps命令查看是否啟動成功, namenode和datanode都要出現(xiàn)才算成功棱烂?租漂?

? ? 訪問 http://localhost:50070 查看節(jié)點信息

? ? 關閉hdfs: ./sbin/stop-dfs.sh


7. 配置yarn(可選項)

? ? $ vim ./etc/hadoop/mapred-site.xml

? ? <configuration>
? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.framework.name</name>
? ? ? ? ? ? ? ? <value>yarn</value>
? ? ? ? ? ? </property>
? ? </configuration>


? ? $ vim ./etc/hadoop/yarn-site.xml

? ? <configuration>
? ? ? ? <property>
? ? ? ? ? ? <name>yarn.nodemanager.aux-services</name>
? ? ? ? ? ? <value>mapreduce_shuffle</value>
? ? ? ? </property>
? ? </configuration>

? ? 啟動yarn(要先啟動了hdfs:start-dfs.sh)

? ? $ ./sbin/start-yarn.sh


? ? 開啟歷史服務器,查看歷史任務颊糜,這樣可以在web界面中查看任務運行情況:

? ? $ ./sbin/mr-jobhistory-daemon.sh start historyserver

? ? 啟動成功后可以在 http://localhost:8088/cluster 訪問集群資源管理器哩治。

? ? 不啟用 YARN 時,是 “mapred.LocalJobRunner” 在跑任務衬鱼,啟用 YARN 之后业筏,是 “mapred.YARNRunner” 在跑任務。啟動 YARN 有個好處是可以通過 Web 界面查看任務的運行情況:http://localhost:8088/cluster 鸟赫。


8. HDFS文件操作

? ? $ hdfs dfsadmin -report? ? # 查看信息

? ? $ hdfs dfs -mkdir /test? ? # create folder

? ? $ hdfs dfs -rm -r /test? ? # delete folder

? ? $ hdfs dfs -ls -R /? ? ? ? #? recursive list folder

? ? $ hdfs dfs -put data.txt /test? ? ? # put file from local

? ? $ hdfs dfs -get /test/data.txt? ? ? # get file to local


9. 集群/分布式配置 Hadoop

? ? 一臺主機 hadoop-master-vm蒜胖,一臺輔機 hadoop-slave-vm,配置主輔機之間SSH無密碼訪問(把各自的~/.ssh/id_rsa.pub 放入對方的 ~/.ssh/authorized_keys 中)

? ? 1) 主機hadoop-master-vm抛蚤, 修改/etc/hosts
? ?
? ? ? ? 127.0.0.1? ? localhost
? ? ? ? #127.0.1.1? ? hadoop-master-vm

? ? ? ? 192.168.0.3? ? hadoop-master-vm
? ? ? ? 192.168.0.4? ? hadoop-slave-vm
? ? ? ? ...


? ? 2) 輔機hadoop-slave-vm翠勉, 修改/etc/hosts
? ?
? ? ? ? 127.0.0.1? ? localhost
? ? ? ? #127.0.1.1? ? hadoop-slave-vm

? ? ? ? 192.168.0.3? ? hadoop-master-vm
? ? ? ? 192.168.0.4? ? hadoop-slave-vm
? ? ? ? ...


? ? 3) 修改主機上的 hadoop 配置

? ? ? ? $ cd ~/apps/hadoop-3.2.2

? ? ? ? $ vim ./etc/hadoop/workers

? ? ? ? ? ? #localhost
? ? ? ? ? ? hadoop-slave-vm


? ? ? ? $ vim ./etc/hadoop/core-site.xml

? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>hadoop.tmp.dir</name>
? ? ? ? ? ? ? ? ? ? <value>file:/home/xxx/apps/hadoop-3.2.2/tmp</value>
? ? ? ? ? ? ? ? ? ? <description>Abase for other temporary directories.</description>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>fs.defaultFS</name>
? ? ? ? ? ? ? ? ? ? <value>hdfs://hadoop-master-vm:9000</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? </configuration>


? ? ? ? $ vim ./etc/hadoop/hdfs-site.xml

? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>dfs.replication</name>
? ? ? ? ? ? ? ? ? ? <value>1</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? <name>dfs.http.address</name>
? ? ? ? ? ? ? ? ? <value>hadoop-master-vm:50070</value>
? ? ? ? ? ? ? ? </property>? ? ? ?
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>dfs.namenode.name.dir</name>
? ? ? ? ? ? ? ? ? ? <value>file:/home/xxx/apps/hadoop-3.2.2/tmp/dfs/name</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>dfs.datanode.data.dir</name>
? ? ? ? ? ? ? ? ? ? <value>file:/home/xxx/apps/hadoop-3.2.2/tmp/dfs/data</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? </configuration>


? ? ? ? $ vim ./etc/hadoop/mapred-site.xml? # MapReduce 相關

? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>mapreduce.framework.name</name>
? ? ? ? ? ? ? ? ? ? <value>yarn</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.address</name>
? ? ? ? ? ? ? ? ? ? <value>hadoop-master-vm:10020</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.webapp.address</name>
? ? ? ? ? ? ? ? ? ? <value>hadoop-master-vm:19888</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? </configuration>


? ? ? ? $ vim ./etc/hadoop/yarn-site.xml

? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>yarn.resourcemanager.hostname</name>
? ? ? ? ? ? ? ? ? ? <value>hadoop-master-vm</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? ? ? <property>
? ? ? ? ? ? ? ? ? ? <name>yarn.nodemanager.aux-services</name>
? ? ? ? ? ? ? ? ? ? <value>mapreduce_shuffle</value>
? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? </configuration>

? ? $ hdfs namenode -format

? ? ? ? 把主機的hadoop目錄 ~/apps/hadoop-3.2.2 完全同步到輔機上,輔機的JAVA_HOME, HADOOP_HOME 等參考主機的配置霉颠。


? ? 4) 在主機上運行

? ? ? ? $ ./sbin/start-dfs.sh
? ? ? ? $ ./sbin/start-yarn.sh
? ? ? ? # $ mr-jobhistory-daemon.sh start historyserver

? ? ? ? (1) 主機上查看節(jié)點

? ? ? ? ? ? xxx@hadoop-master-vm:~/apps/hadoop-3.2.2$ jps
? ? ? ? ? ? 6807 NameNode
? ? ? ? ? ? 7752 ResourceManager
? ? ? ? ? ? 7082 SecondaryNameNode
? ? ? ? ? ? 8171 Jps
? ? ? ? ? ? 8156 JobHistoryServer? ?

? ? ? ? (2)輔機上查看節(jié)點

? ? ? ? ? ? xxx@hadoop-slave-vm:~/apps/hadoop-3.2.2$ jps
? ? ? ? ? ? 2368 remoting.jar
? ? ? ? ? ? 6192 DataNode
? ? ? ? ? ? 20802 Jps?

? ? ? ? (3)主輔機上查看report

? ? ? ? ? ? $ hdfs dfsadmin -report

? ? ? ? ? ? ? ? Configured Capacity: 490651459584 (456.95 GB)
? ? ? ? ? ? ? ? Present Capacity: 410068922368 (381.91 GB)
? ? ? ? ? ? ? ? DFS Remaining: 410068877312 (381.91 GB)
? ? ? ? ? ? ? ? DFS Used: 45056 (44 KB)
? ? ? ? ? ? ? ? DFS Used%: 0.00%
? ? ? ? ? ? ? ? ...

? ? ? ? ? ? ? ? -------------------------------------------------
? ? ? ? ? ? ? ? Live datanodes (1):

? ? ? ? ? ? ? ? Name: 192.168.0.4:9866 (hadoop-slave-vm)
? ? ? ? ? ? ? ? Hostname: hadoop-slave-vm
? ? ? ? ? ? ? ? Decommission Status : Normal
? ? ? ? ? ? ? ? Configured Capacity: 490651459584 (456.95 GB)
? ? ? ? ? ? ? ? DFS Used: 45056 (44 KB)
? ? ? ? ? ? ? ? Non DFS Used: 55587368960 (51.77 GB)
? ? ? ? ? ? ? ? DFS Remaining: 410068877312 (381.91 GB)
? ? ? ? ? ? ? ? DFS Used%: 0.00%
? ? ? ? ? ? ? ? DFS Remaining%: 83.58%
? ? ? ? ? ? ? ? ...


10. Web UI

? ? 1) Hadoop node overview

? ? ? ? http://hadoop-master-vm:50070/
? ?
? ? 2) Hadoop cluster
? ?
? ? ? ? http://hadoop-master-vm:8088/?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荆虱,隨后出現(xiàn)的幾起案子蒿偎,更是在濱河造成了極大的恐慌,老刑警劉巖怀读,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诉位,死亡現(xiàn)場離奇詭異,居然都是意外死亡菜枷,警方通過查閱死者的電腦和手機涉茧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門悦污,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事歧焦。” “怎么了咧虎?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵闺属,是天一觀的道長。 經常有香客問我牡昆,道長姚炕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮柱宦,結果婚禮上些椒,老公的妹妹穿的比我還像新娘。我一直安慰自己掸刊,他們只是感情好免糕,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痒给,像睡著了一般说墨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上苍柏,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天尼斧,我揣著相機與錄音,去河邊找鬼试吁。 笑死棺棵,一個胖子當著我的面吹牛,可吹牛的內容都是我干的熄捍。 我是一名探鬼主播烛恤,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼余耽!你這毒婦竟也來了缚柏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤碟贾,失蹤者是張志新(化名)和其女友劉穎币喧,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袱耽,經...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡杀餐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了朱巨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片史翘。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冀续,靈堂內的尸體忽然破棺而出琼讽,到底是詐尸還是另有隱情,我是刑警寧澤洪唐,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布跨琳,位于F島的核電站,受9級特大地震影響桐罕,放射性物質發(fā)生泄漏脉让。R本人自食惡果不足惜桂敛,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溅潜。 院中可真熱鬧术唬,春花似錦、人聲如沸滚澜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽设捐。三九已至借浊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間萝招,已是汗流浹背蚂斤。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留槐沼,地道東北人曙蒸。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像岗钩,于是被迫代替她去往敵國和親纽窟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容