大數(shù)據(jù)hadoop配置

鏈接:http://www.reibang.com/p/0d4a365ef350

第一部分:Linux環(huán)境安裝
Hadoop是運行在Linux,雖然借助工具也可以運行在Windows上秩霍,但是建議還是運行在Linux系統(tǒng)上,第一部分介紹Linux環(huán)境的安裝、配置采郎、Java JDK安裝等苔悦。

第二部分:Hadoop本地模式安裝
Hadoop 本地模式只是用于本地開發(fā)調(diào)試净嘀,或者快速安裝體驗 Hadoop,這部分做簡單的介紹摔竿。

第三部分:Hadoop偽分布式模式安裝
學(xué)習(xí) Hadoop 一般是在偽分布式模式下進行面粮。這種模式是在一臺機器上各個進程上運行 Hadoop 的各個模塊,偽分布式的意思是雖然各個模塊是在各個進程上分開運行的继低,但是只是運行在一個操作系統(tǒng)上的熬苍,并不是真正的分布式。

第四部分:完全分布式安裝
完全分布式模式才是生產(chǎn)環(huán)境采用的模式袁翁,Hadoop 運行在服務(wù)器集群上柴底,生產(chǎn)環(huán)境一般都會做HA,以實現(xiàn)高可用粱胜。

第五部分:Hadoop HA安裝
HA是指高可用柄驻,為了解決Hadoop單點故障問題,生產(chǎn)環(huán)境一般都做HA部署焙压。這部分介紹了如何配置Hadoop2.x的高可用鸿脓,并簡單介紹了HA的工作原理。

第一部分 :Linux環(huán)境安裝

1. 服務(wù)器規(guī)劃

hostname ip name
bigdata-senior01 192.168.0.101 CentOSSerer01
bigdata-senior02 192.168.0.102 CentOSSerer02
bigdata-senior03 192.168.0.103 CentOSMYsqlDB_master

2. 環(huán)境配置

一涯曲、修改 Hostname
  1. 臨時修改 hostname

[root@localhost Desktop]# hostname bigdata-senior01.chybinmy.com
這種修改方式野哭,系統(tǒng)重啟后就會失效。

  1. 永久修改 hostname

想永久修改幻件,應(yīng)該修改配置文件 /etc/sysconfig/network拨黔。

命令:[root@bigdata-senior01 ~] vim /etc/sysconfig/network
打開文件后,

NETWORKING=yes  #使用網(wǎng)絡(luò)
HOSTNAME=bigdata-senior01.chybinmy.com  #設(shè)置主機名
二绰沥、配置Host
命令:[root@bigdata-senior01 ~] vim /etc/hosts
添加hosts: 192.168.0.101 bigdata-senior01
三篱蝇、關(guān)閉防火墻
四、關(guān)閉selinux

selinux是Linux一個子安全機制徽曲,學(xué)習(xí)環(huán)境可以將它禁用零截。
sudo vim /etc/sysconfig/selinux

五、安裝JDK
  • 刪除centos自帶的openjdk

[wj@master hadoop]$ rpm -qa | grep java
java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
tzdata-java-2018e-3.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64

[root@master ~]# rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
[root@master ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
[root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
[root@master ~]# rpm -e --nodeps tzdata-java-2018e-3.el7.noarch
[root@master ~]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
[root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64

安裝參考http://www.reibang.com/p/a30b42bbfc09

第二部分:Hadoop安裝

一秃臣、 Hadoop 所用的用戶設(shè)置

1. 創(chuàng)建一個名字為 hadoop 的普通用戶

image

2. 給 hadoop 用戶 sudo 權(quán)限

image

設(shè)置權(quán)限瞻润,學(xué)習(xí)環(huán)境可以將 hadoop 用戶的權(quán)限設(shè)置的大一些,但是生產(chǎn)環(huán)境一定要注意普通用戶的權(quán)限限制甜刻。

image

注意:如果root用戶無權(quán)修改sudoers文件绍撞,先手動為root用戶添加寫權(quán)限。

image

3. 切換到hadoop用戶

<pre>

[root@bigdata-senior01 ~]# su - hadoop[hadoop@bigdata-senior01 ~]$

</pre>

4. 創(chuàng)建存放hadoop文件的目錄

image
  1. 將hadoop文件夾的所有者指定為hadoop用戶

如果存放hadoop的目錄的所有者不是hadoop得院,之后hadoop運行中可能會有權(quán)限問題傻铣,那么就講所有者改為hadoop。

image

二祥绞、

解壓Hadoop目錄文件

1. 復(fù)制 hadoop-2.5.0.tar.gz 到/opt/modules目錄下非洲。

  1. 解壓 hadoop-2.5.0.tar.gz
image

十五鸭限、配置 Hadoop

1. 配置 Hadoop 環(huán)境變量

image

追加配置:

export HADOOP_HOME="/opt/modules/hadoop-2.10.0"
export PATH=$HADDOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

執(zhí)行:source /etc/profile 使得配置生效

驗證 HADOOP_HOME 參數(shù):

image
  1. 配置 hadoop-env.sh、mapred-env.sh两踏、yarn-env.sh 文件的 JAVA_HOME參數(shù)
image

3. 配置 core-site.xml

image

[hadoop@bigdata-senior01 ~]sudo vim{HADOOP_HOME}/etc/hadoop/core-site.xml

<configuration>
  <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata-senior01:8020</value>
  </property>
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/data/tmp</value>
  </property>
</configuration>

(1) fs.defaultFS 參數(shù)配置的是HDFS的地址败京。

image

(2) hadoop.tmp.dir配置的是Hadoop臨時目錄,比如HDFS的NameNode數(shù)據(jù)默認都存放這個目錄下梦染,查看*-default.xml等默認配置文件赡麦,就可以看到很多依賴${hadoop.tmp.dir}的配置。

默認的hadoop.tmp.dir/tmp/hadoop-${user.name},此時有個問題就是 NameNode 會將 HDFS 的元數(shù)據(jù)存儲在這個/tmp目錄下帕识,如果操作系統(tǒng)重啟了泛粹,系統(tǒng)會清空 /tmp 目錄下的東西,導(dǎo)致NameNode元數(shù)據(jù)丟失肮疗,是個非常嚴重的問題晶姊,所有我們應(yīng)該修改這個路徑。

  • 創(chuàng)建臨時目錄:
image
  • 將臨時目錄的所有者修改為 hadoop
image
  • 修改 hadoop.tmp.dir
image

十六伪货、配置们衙、格式化、啟動 HDFS

1. 配置 hdfs-site.xml

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.http-address</name>
                <value>bigdata-senior01:9000</value>
        </property>
</configuration>

dfs.replication 配置的是 HDFS存 儲時的備份數(shù)量碱呼,因為這里是偽分布式環(huán)境只有一個節(jié)點蒙挑,所以這里設(shè)置為1。

2. 格式化 HDFS

image
image

格式化是對 HDFS 這個分布式文件系統(tǒng)中的 DataNode 進行分塊巍举,統(tǒng)計所有分塊后的初始元數(shù)據(jù)的存儲在 NameNode 中。

格式化后凝垛,查看 core-site.xml 里 hadoop.tmp.dir(本例是 /opt/data 目錄)指定的目錄下是否有了 dfs 目錄懊悯,如果有,說明格式化成功梦皮。

注意:

  1. 格式化時炭分,這里注意 hadoop.tmp.dir 目錄的權(quán)限問題,應(yīng)該 hadoop 普通用戶有讀寫權(quán)限才行剑肯,可以將 /opt/data 的所有者改為 hadoop捧毛。
    [hadoop@bigdata-senior01 hadoop-2.5.0]$ sudo chown -R hadoop:hadoop /opt/data

  2. 查看 NameNode 格式化后的目錄。

image

fsimage 是 NameNode 元數(shù)據(jù)在內(nèi)存滿了后让网,持久化保存到的文件呀忧。

fsimage*.md5 是校驗文件,用于校驗 fsimage 的完整性溃睹。

seen_txid 是 hadoop 的版本

vession 文件里保存:

  • namespaceID:NameNode 的唯一 ID而账。

  • clusterID:集群 ID,NameNode 和 DataNode 的集群 ID 應(yīng)該一致因篇,表明是一個集群泞辐。

image

3. 啟動 NameNode

image
image

4. 啟動 DataNode

image

5. 啟動 SecondaryNameNode

image
  1. JPS 命令查看是否已經(jīng)啟動成功笔横,有結(jié)果就是啟動成功了。
image

7. HDFS 上測試創(chuàng)建目錄咐吼、上傳吹缔、下載文件

HDFS 上創(chuàng)建目錄

image

上傳本地文件到 HDFS 上

image

讀取 HDFS 上的文件內(nèi)容

image
image

從 HDFS上 下載文件到本地

[hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -get /demo1/core-site.xml

image

十七、配置锯茄、啟動YARN

1. 配置mapred-site.xml

默認沒有mapred-site.xml文件厢塘,但是有個mapred-site.xml.template配置模板文件。復(fù)制模板生成mapred-site.xml撇吞。

image

添加配置如下:

指定 mapreduce 運行在 yarn 框架上俗冻。

<configuration>
        <property>
                <name>mapreduce.framwork.name</name>
                <value>yarn</value>
        </property>
</configuration>

2. 配置 yarn-site.xml

添加配置如下:

        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>bigdata-senior01</value>
        </property>
</configuration>
  • yarn.nodemanager.aux-services 配置了 yarn 的默認混洗方式,選擇為 mapreduce 的默認混洗算法牍颈。

  • yarn.resourcemanager.hostname 指定了 Resourcemanager 運行在哪個節(jié)點上迄薄。

3. 啟動 Resourcemanager

image
image

4. 啟動 nodemanager

image
image

5. 查看是否啟動成功

image

可以看到 ResourceManager、NodeManager 已經(jīng)啟動成功了煮岁。

image

6. YARN 的 Web 頁面

YARN 的 Web 客戶端端口號是 8088讥蔽,通過 http://192.168.100.10:8088/ 可以查看。

image

八画机、運行 MapReduce Job

在 Hadoop 的 share 目錄里冶伞,自帶了一些 jar 包,里面帶有一些 mapreduce 實例小例子步氏,位置在 share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar响禽,可以運行這些例子體驗剛搭建好的Hadoop平臺,我們這里來運行最經(jīng)典的 WordCount 實例荚醒。

1. 創(chuàng)建測試用的 Input 文件

創(chuàng)建輸入目錄:
./bin/hdfs dfs -mkdir -p /wordcountdemo/input

創(chuàng)建原始文件:

在本地 /opt/data 目錄創(chuàng)建一個文件 wc.input芋类,內(nèi)容如下。

hadoop mapreduce hive
hbase spark hadoop
hive spart

將 wc.input 文件上傳到 HDFS 的 /wordcountdemo/input 目錄中:
[hadoop@bigdata-senior01 hadoop-2.10.0]$ ./bin/hdfs dfs -put /opt/data/wc.input /wordcountdemo/input

2. 運行 WordCount MapReduce Job
[hadoop@bigdata-senior01 hadoop-2.10.0]$ ./bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /wordcountdemo/input /wordcountdemo/output

image
image
  1. 查看輸出結(jié)果目錄
    ./bin/hdfs dfs -ls /wordcountdemo/output
[hadoop@bigdata-senior01 hadoop-2.10.0]$ ./bin/hdfs dfs -ls /wordcountdemo/output1
Found 2 items
-rw-r--r--   1 hadoop supergroup          0 2020-06-17 15:47 /wordcountdemo/output1/_SUCCESS
-rw-r--r--   1 hadoop supergroup         52 2020-06-17 15:47 /wordcountdemo/output1/part-r-00000
  • output 目錄中有兩個文件界阁,_SUCCESS 文件是空文件侯繁,有這個文件說明Job執(zhí)行成功。

  • part-r-00000文件是結(jié)果文件泡躯,其中-r-說明這個文件是 Reduce 階段產(chǎn)生的結(jié)果贮竟,mapreduce 程序執(zhí)行時,可以沒有 reduce 階段较剃,但是肯定會有 map 階段咕别,如果沒有 reduce 階段這個地方有是-m-。

  • 一個 reduce 會產(chǎn)生一個 part-r- 開頭的文件写穴。

  • 查看輸出文件內(nèi)容顷级。

[hadoop@bigdata-senior01 hadoop-2.10.0]$ ./bin/hdfs dfs -cat /wordcountdemo/output/part-r-00000
hadoop  2
hbase   1
hive    2
mapreduce   1
spark   1
spart   1

結(jié)果是按照鍵值排好序的。
十九确垫、停止 Hadoop

image

二十弓颈、 Hadoop 各個功能模塊的理解

  1. HDFS模塊

HDFS 負責(zé)大數(shù)據(jù)的存儲帽芽,通過將大文件分塊后進行分布式存儲方式,突破了服務(wù)器硬盤大小的限制翔冀,解決了單臺機器無法存儲大文件的問題导街,HDFS 是個相對獨立的模塊,可以為 YARN 提供服務(wù)纤子,也可以為 HBase 等其他模塊提供服務(wù)搬瑰。

  1. YARN 模塊

YARN 是一個通用的資源協(xié)同和任務(wù)調(diào)度框架,是為了解決 Hadoop1.x 中MapReduce 里 NameNode 負載太大和其他問題而創(chuàng)建的一個框架控硼。

YARN 是個通用框架泽论,不止可以運行 MapReduce,還可以運行Spark卡乾、Storm等其他計算框架翼悴。

  1. MapReduce 模塊

MapReduce 是一個計算框架,它給出了一種數(shù)據(jù)處理的方式幔妨,即通過 Map 階段鹦赎、Reduce階段來分布式地流式處理數(shù)據(jù)。它只適用于大數(shù)據(jù)的離線處理误堡,對實時性要求很高的應(yīng)用不適用古话。

第七步 開啟歷史服務(wù)

二十一、歷史服務(wù)介紹

Hadoop 開啟歷史服務(wù)可以在 web 頁面上查看 Yarn 上執(zhí)行 job 情況的詳細信息锁施∨悴龋可以通過歷史服務(wù)器查看已經(jīng)運行完的 Mapreduce 作業(yè)記錄,比如用了多少個 Map悉抵、用了多少個 Reduce肩狂、作業(yè)提交時間、作業(yè)啟動時間基跑、作業(yè)完成時間等信息婚温。

二十二描焰、開啟歷史服務(wù)

image

開啟后媳否,可以通過 Web 頁面查看歷史服務(wù)器:

http://bigdata-senior01.chybinmy.com:19888/

二十三、Web 查看 job 執(zhí)行歷史

1. 運行一個 mapreduce 任務(wù)

image
  1. job 執(zhí)行中
image

3. 查看 job 歷史

image

歷史服務(wù)器的 Web 端口默認是19888荆秦,可以查看Web界面篱竭。

但是在上面所顯示的某一個 Job 任務(wù)頁面的最下面,Map 和 Reduce 個數(shù)的鏈接上步绸,點擊進入 Map 的詳細信息頁面掺逼,再查看某一個 Map 或者 Reduce 的詳細日志是看不到的,是因為沒有開啟日志聚集服務(wù)瓤介。
二十四吕喘、開啟日志聚集

4. 日志聚集介紹

MapReduce是在各個機器上運行的赘那,在運行過程中產(chǎn)生的日志存在于各個機器上,為了能夠統(tǒng)一查看各個機器的運行日志氯质,將日志集中存放在HDFS上募舟,這個過程就是日志聚集。

  1. 開啟日志聚集

配置日志聚集功能:

Hadoop 默認是不啟用日志聚集的闻察。在 yarn-site.xml 文件里配置啟用日志聚集拱礁。

image

yarn.log-aggregation-enable:是否啟用日志聚集功能。

yarn.log-aggregation.retain-seconds:設(shè)置日志保留時間辕漂,單位是秒呢灶。

將配置文件分發(fā)到其他節(jié)點:

image

重啟 Yarn 進程:

image

重啟 HistoryServer 進程:

image

6. 測試日志聚集

運行一個 demo MapReduce,使之產(chǎn)生日志:

image

查看日志:

運行 Job 后钉嘹,就可以在歷史服務(wù)器 Web 頁面查看各個 Map 和 Reduce 的日志了鸯乃。

分布式安裝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市隧期,隨后出現(xiàn)的幾起案子飒责,更是在濱河造成了極大的恐慌,老刑警劉巖仆潮,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宏蛉,死亡現(xiàn)場離奇詭異,居然都是意外死亡性置,警方通過查閱死者的電腦和手機拾并,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹏浅,“玉大人嗅义,你說我怎么就攤上這事∫遥” “怎么了之碗?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長季希。 經(jīng)常有香客問我褪那,道長,這世上最難降的妖魔是什么式塌? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任博敬,我火速辦了婚禮,結(jié)果婚禮上峰尝,老公的妹妹穿的比我還像新娘偏窝。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布祭往。 她就那樣靜靜地躺著伦意,像睡著了一般。 火紅的嫁衣襯著肌膚如雪硼补。 梳的紋絲不亂的頭發(fā)上默赂,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音括勺,去河邊找鬼缆八。 笑死,一個胖子當(dāng)著我的面吹牛疾捍,可吹牛的內(nèi)容都是我干的奈辰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼乱豆,長吁一口氣:“原來是場噩夢啊……” “哼奖恰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宛裕,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤瑟啃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后揩尸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛹屿,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年岩榆,在試婚紗的時候發(fā)現(xiàn)自己被綠了错负。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡勇边,死狀恐怖犹撒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粒褒,我是刑警寧澤识颊,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站奕坟,受9級特大地震影響祥款,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜执赡,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一镰踏、第九天 我趴在偏房一處隱蔽的房頂上張望函筋。 院中可真熱鬧沙合,春花似錦、人聲如沸跌帐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至究履,卻和暖如春滤否,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背最仑。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工藐俺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泥彤。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓欲芹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吟吝。 傳聞我的和親對象是個殘疾皇子菱父,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348