1. 大數據 hadoop 三種運行模式的區別、及詳細配置講解
基於Hadoop進行開發時,有時候會被Hadoop的運行模式弄得暈頭轉向,傻傻分不清各種運行模式的區別,給日常開發帶來很多困惑,不同集群配置文件也各不相不同。弄明白Hadoop的運行模式和對配置文件的作用要做到心中明了,在工作中才能得手順心。
hadoop的配置文件均以XML文件進行配置,它有四個最常見的配置文件,分別為:
core-site.xml文件主要用於配置通用屬性。
hdfs-site.xml文件用於配置Hdfs的屬性。
mapred-site.xml文件用於配置Maprece的屬性。
yarn-site.xml文件用於配置Yarn的屬性。
一般來說,這四種配置文件都存儲在hadoop默認的安裝目錄etc/hadoop子目錄中。 不過我們也可以在搭建集群時根據實際需求,把etc/hadoop目錄和其下的文件復制到另外一個位置。這樣可以把配置文件和安裝文件分離開來,方便管理。
注意:如果把etc/hadoop目錄和其下的文件復制到另外一個位置。
我們需要在環境變數中將hadoop_conf_dir設置成指向新目錄。
1、本地運行模式
無需任何守護進程 ,所有的程序都運行在同一個JVM上執行。在本地模式下調試MR程序非常高效方便,一般該模式主要是在學習或者開發階段調試使用 。
2、偽分布式模式
Hadoop守護進程運行在本地機器上 ,模擬一個小規模的集群,換句話說,可以配置一台機器的Hadoop集群,偽分布式是完全分布式的一個特例。
3、完全分布式模式
Hadoop守護進程運行在一個集群上 。這種運行模式也就是我們常見的各種雲,主要用於大規模的生產環境中。
注意:分布式要啟動守護進程 ,是指在使用分布式hadoop時,要先啟動一些准備程序進程,然後才能使用。 比如start-dfs.sh start-yarn.sh,而本地模式不需要啟動這些守護進程。
注意:在本地模式下,將使用本地文件系統和本地MapRece運行器。在分布式模式下,將啟動HDFS和YARN守護進程。
2. hadoop的核心配置文件有哪些
在hadoop1中核心組成部分是HDFS、MapRece,到了Hadoop2,核心變為HDFS、Yarn,而且新的HDFS中可以有多個NameNode,每個都有相同的職能。
以下內容是從http://www.superwu.cn/2014/02/12/1094/閱讀後自己總結了一下:
配置文件無非就這幾個文件:
1、hadoop-env.sh:
只需設置jdk的安裝路徑,如:export JAVA_HOME=/usr/local/jdk
2、core-site.xml:
(1)fs.defaultFS:hdfs://cluster1(域名),這里的值指的是默認的HDFS路徑
(2)hadoop.tmp.dir:/export/data/hadoop_tmp,這里的路徑默認是NameNode、DataNode、JournalNode等存放數據的公共目錄。用戶也可以自己單獨指定這三類節點的目錄。
(3)ha.zookeeper.quorum:hadoop101:2181,hadoop102:2181,hadoop103:2181,這里是ZooKeeper集群的地址和埠。注意,數量一定是奇數,且不少於三個節點
(4)hadoop.proxyuser.erpmerge.hosts、hadoop.proxyuser.erpmerge.groups主要用來設置oozie的代理用戶
3. Hadoop集群配置
切換到Hadoop解壓目錄的etc/hadoop/目錄下,編輯hadoop-env.sh,修改如下內容:
該文件是Hadoop的核心配置文件,目的是配置HDFS地址、埠號以及臨時文件目錄。
該文件MapRece的核心文件,用於指定MapRece運行時框架。在etc/hadoop/目錄沒有該文件,需要將mapred-site.xml.template復制並重命名為mapred-site.xml。
該文件YARN的核心文件,需要指定YARN集群的管理者。
該文件記錄Hadoop集群所有從節點(HDFSde DataNode和YARN的NodeManager所在主機)的主機名,用來配合一鍵啟動腳本啟動集群從節點(保證關聯節點配置了SSH免密登錄)。打開slaves文件,先刪除裡面的內容(默認localhost),配置如下內容
完成Hadoop集群主節點hadoop01的配置後,還需要將系統環境配置文件、JDK安裝目錄和Hadoop安裝目錄分發到其他子節點hadoop02和hadoop03上,具體指令:
scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
scp -r /export/ hadoop02:/
scp -r /export/ hadoop03:/
完成後,在hadoop02和hadoop03節點刷新配置文件:
source /etc/profile
初次啟動HDFS集群時,必須對主節點進行格式化處理。注意:格式化指令只需在Hadoop集群初次啟動前執行即可。指令:
hdfs namenode –format
或
hadoop namenode -format
出現「successfully formatted"字樣表示格式化成功。
針對Hadoop集群的啟動,需要啟動內部包含的HDFS集群和YARN集群兩個集群框架。
啟動:
(1)start-dfs.sh #啟動所有HDFS服務進程
(2)start-yarn.sh #啟動所有YARN服務進程
或者:
start-all.sh直接啟動整個Hadoop集群服務
關閉則直接將上述指令中的start換成stop即可。
在整個Hadoop集群服務啟動完成後,可以在各自機器上通過jps指令查看各節點的服務進程啟動情況。
集群啟動成功。
4. hadoop設置執行對應角色
做法:
(1)核心配置文件core-site.xml,該配置文件屬於Hadoop的全局配置文件,我們主要進行配置分布式文件系統的入口地址NameNode的地址和分布式文件系統中數據落地到伺服器本地磁碟位置的配置
(2)Hadoop環境配置文件hadoop-env.sh,在這個配置文件中我們主要需要制定jdk的路徑JAVA_HOME,避免程序運行中出現JAVA_HOME找不到的異常。
(3)HDFS配置文件hdfs-site.xml,在這個配置文件中主要進行配置HDFS文件系統屬性配置。
(4)YARN的環境配置文件yarn-env.sh,同樣將JAVA_HOME路徑配置指明。
(5)關於YARN的配置文件yarn-site.xml,其中配置YARN的相關參數,主要配置一下兩個參數。
(6)maprece的環境配置文件mapred-env.sh,同樣將JAVA_HOME路徑配置指明。(7)關於MapRece的配置文件mapred-site.xml,主要配置一個參數,指明MapRece的運行框架為YARN.
(8)主節點NameNode和ResourceManager的角色在配置文件中已經做了配置,從節點的角色還需指定,配置文件slaves就是用來配置Hadoop集群中各個從節點角色的。如下,對slaves文件進行修改,即將3台節點全部指定為從節點,可以啟動DataNode和NodeManager進程。
(9)在集群上分發配置好的Hadoop配置文件,這樣3台節點即享有相同的Hadoop的配置,可准備通過不同的進程啟動命令進行啟動了。
(10)查看文件分發情況。
5. 搭建hadoop集群,常用配置文件是什麼,以及配置哪些屬性
一. 簡介
參考了網上許多教程,最終把hadoop在ubuntu14.04中安裝配置成功。下面就把詳細的安裝步驟敘述一下。我所使用的環境:兩台ubuntu 14.04 64位的台式機,hadoop選擇2.7.1版本。(前邊主要介紹單機版的配置,集群版是在單機版的基礎上,主要是配置文件有所不同,後邊會有詳細說明)
二. 准備工作
2.1 創建用戶
創建用戶,並為其添加root許可權,經過親自驗證下面這種方法比較好。
1 sudo adser hadoop2 sudo vim /etc/sudoers3 # 修改內容如下:4 root ALL = (ALL)ALL5 hadoop ALL = (ALL)ALL
給hadoop用戶創建目錄,並添加到sudo用戶組中,命令如下:
1 sudo chown hadoop /home/hadoop2 # 添加到sudo用戶組3 sudo adser hadoop sudo
最後注銷當前用戶,使用新創建的hadoop用戶登陸。
2.2安裝ssh服務
ubuntu中默認是沒有裝ssh server的(只有ssh client),所以先運行以下命令安裝openssh-server。安裝過程輕松加愉快~
sudo apt-get install ssh openssh-server
2.3 配置ssh無密碼登陸
直接上代碼:執行完下邊的代碼就可以直接登陸了(可以運行ssh localhost進行驗證)
1 cd ~/.ssh# 如果找不到這個文件夾,先執行一下 "ssh localhost"2 ssh-keygen -t rsa3 cp id_rsa.pub authorized_keys
注意:
這里實現的是無密登陸自己,只適用與hadoop單機環境。如果配置Hadoop集群設置Master與Slave的SSH無密登陸可
三. 安裝過程
3.1 下載hadoop安裝包
有兩種下載方式:
1. 直接去官網下載:
2. 使用wget命令下載:
3.2 配置hadoop
1. 解壓下載的hadoop安裝包,並修改配置文件。我的解壓目錄是(/home/hadoop/hadoop-2.7.1),即進入/home/hadoop/文件夾下執行下面的解壓縮命令。
tar -zxvf hadoop-2.7.1.tar.gz
2. 修改配置文件:(hadoop2.7.1/etc/hadoop/)目錄下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml。
(1). core-site.xml 配置:其中的hadoop.tmp.dir的路徑可以根據自己的習慣進行設置。
至此,wordcount demo 運行結束。
六. 總結
配置過程遇到了很多問題,最後都一一解決,收獲很多,特此把這次配置的經驗分享出來,方便想要配置hadoop環境的各位朋友~
(Hadoop集群安裝配置過程基本和單機版是一樣的,主要是在配置文件方面有所區別,以及ssh無密登陸要求master和slave能夠互相無密登陸。
6. hadoop 配置文件部分
9000埠:是fileSystem默認的埠號:
50070埠: 50070是hdfs的web管理頁面的埠 (50070埠也可以查看hdfs 的總存儲 以及用了多少等情況),如下圖
8020埠: namenode 節點下active的埠
添加配置文件,即可解決問題