目錄
JDK、Hadoop安裝、配置
- 先去官網http://hadoop.apache.org/下載hadoop,我下的是hadoop2.5.2.tar.gz
- 去jdk官網下載jdk1.7 linux.tar.gz 或者百度網盤https://pan.baidu.com/s/1qWoS4ws
- 下載filezilla https://filezilla-project.org/download.php ,登錄的時候端口號爲22,主機位ip地址,將下載的hadoop和jdk複製到/opt/softwares裏面。
- 打開虛擬機,打開Xshell5,輸入su定位到根目錄,rpm -qa|grep java 找到含java的文件,然後輸入rpm -e --nodeps (……上面過濾的目錄),強制刪除這些文件。我的是這樣的:
- cd到/opt/softwares,然後給此目錄下所有文件用戶權限加上可執行(x),
- 解壓:
- 配置環境變量:新建一個xshell窗口,然後編輯/etc/profile
按G到達結尾,把剛纔的安裝的目錄
/opt/modules/jdk1.7.0_79編輯進/etc/profile
然後source一下生效,
退出後重新連接 輸入java -version驗證是否配置成功:
hadoop配置操作類似:
用notepad++連接虛擬機,如果第一次用可能要安裝NppFTP插件,否則沒有,配置文件就在圖片灰色的hadoop下,然後
在hadoop下找到hadoop-env.sh用notepad++打開,輸入echo ${JAVA_HOME} ,將得到的路徑粘貼到下圖位置:
本地模式(standalone operation)配置
定義:MapReduce程序運行在本地,啓動JVM。
方法:
在hadoop-2.5.2目錄下創建Input目錄;
在input目錄下創建某某.input;
在hadoop-2.5.2目錄調用bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar 指令 input output ;
cat output/part-r-00000 查看結果集。
實例1
複製.xml文件到input中:
查詢input裏面含dfs加上a-z或.出現至少一次的字串,並把結果集輸出到output裏面:
如果是_SUCCESS則成功,_SUCCESS什麼用都沒有,只是起標識作用。這裏part-r-00000就是結果集。
實例2
統計每個單詞數量
僞分佈式模式配置
在etc/hadoop下找到core-site.xml,用notepad++打開,
,
在etc/hadoop找到hdfs-site.xml,用notepad++打開
本地運行
格式化:
啓動:
啓動成功:
hdfs web:在linux系統網頁裏輸入主機名:50070,我的是:
修改主機名看這個:https://jingyan.baidu.com/article/574c52192a1d8d6c8d9dc1ce.html
創建目錄:
從本地上傳文件:
查看文件內容:也可以通過web查看,utilities---browse the file system
統計單詞數量:
查看結果:,web上也有
YARN上運行
/etc/hadoop下找到 yarn-env.sh配置JAVA_HOME(通過echo $JAVA_HOME):
yarn-site.xml:
slaves:改成自己的主機名:
不用格式化,啓動resourcemanager和nodemanager:
默認端口號8088,web打開方式:hadoop-mcq(主機名):8088
mapred-env.sh配置JAVA_HOME:
找到mapred-site.xml.template並重命名爲mapred-site.xml,然後配置
先把以前的輸出刪掉:
運行:
三種模式區別
單機模式
-默認模式。
-不對配置文件進行修改。
-使用本地文件系統,而不是分佈式文件系統。
-Hadoop不會啓動NameNode、DataNode、JobTracker、TaskTracker等守護進程,Map()和Reduce()任務作爲同一個進程的不同部分來執行的。
-用於對MapReduce程序的邏輯進行調試,確保程序的正確。
僞分佈式模式
-在一臺主機模擬多主機。
-Hadoop啓動NameNode、DataNode、JobTracker、TaskTracker這些守護進程都在同一臺機器上運行,是相互獨立的Java進程。
-在這種模式下,Hadoop使用的是分佈式文件系統,各個作業也是由JobTraker服務,來管理的獨立進程。在單機模式之上增加了代碼調試功能,允許檢查內存使用情況,HDFS輸入輸出,以及其他的守護進程交互。類似於完全分佈式模式,因此,這種模式常用來開發測試Hadoop程序的執行是否正確。
-修改3個配置文件:core-site.xml(Hadoop集羣的特性,作用於全部進程及客戶端)、hdfs-site.xml(配置HDFS集羣的工作屬性)、mapred-site.xml(配置MapReduce集羣的屬性)
-格式化文件系統
完全分佈式模式
-Hadoop的守護進程運行在由多臺主機搭建的集羣上,是真正的生產環境。
-在所有的主機上安裝JDK和Hadoop,組成相互連通的網絡。
-在主機間設置SSH免密碼登錄,把各從節點生成的公鑰添加到主節點的信任列表。
-修改3個配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml,指定NameNode和JobTraker的位置和端口,設置文件的副本等參數
-格式化文件系統