一、hadoop簡介
相信你或多或少都聽過hadoop這個名字,hadoop是一個開源的、分布式軟件平台。它主要解決了分布式存儲(hdfs)和分布式計算(mapReduce)兩個大數據的痛點問題,在hadoop平台上你可以輕易地使用和擴展數千台的計算機而不用關心底層的實現問題。而現在的hadoop更是形成了一個生態體系,如圖:
上圖大體展示了hadoop的生態體系,但並不完整。總而言之,隨着hadoop越來越成熟,也會有更多地成員加入hadoop生態體系中。
hadoop官方網站:http://hadoop.apache.org/
二、安裝hadoop
hadoop安裝分為三種形式:
1、單節點:也就是僅在一台機器上安裝一個hadoop節點;
2、偽分布式:在一台機器上安裝多個hadoop節點,模擬分布式環境;
3、完全分布式:在多態機器上分別安裝節點;
而本文將以單節點安裝作為學習演示使用
完全分布式可以參考:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html
准備環境
Linux系統:hadoop可以在Linux和windows平台上安裝,但是windows平台沒有經過生成測試,所以建議使用Linux平台,而本文采用的是centos作為測試平台。你可以在自己的電腦安裝虛擬機來操作,安裝vmware和centos參考文檔:
https://www.cnblogs.com/lay2017/p/9786213.html
https://www.cnblogs.com/lay2017/p/9786479.html
hadoop是由Java開發的,所以你需要提供JDK環境的支持:
Linux中JDK安裝參考文檔:
https://www.cnblogs.com/lay2017/p/7442217.html
注意:如果你安裝hadoop2.7+版本的話需要JDK1.7+的支持,如果是2.6-版本需要JDK1.6的支持。
下載安裝hadoop
前往hadoop下載頁面找到二進制包的下載地址
http://www.apache.org/dyn/closer.cgi/hadoop/common/
我們先在centos下創建一個hadoop目錄,然后進入該目錄:
mkdir /usr/local/hadoop
cd /usr/local/hadoop
使用wget命令下載hadoop到當前目錄下(本文下載的是2.9.0穩定版:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz)
使用tar命令解壓縮
你會得到
接下來,你需要配置JAVA_HOME,首先進入到etc/hadoop目錄下
cd /usr/local/hadoop/hadoop-2.9.0/etc/hadoop
編輯hadoop-env.sh文件
配置你的JAVA_HOME
三、測試
你可以使用hadoop/bin目錄下的hadoop命令簡單地查看一下版本號來測試:
bin/hadoop version
除了簡單地使用命令,我們還可以運行hadoop的示例程序
為了驗證當前的hadoop是否可用的,下面我們使用share目錄下mapReduce的示例jar來測試一下
我們先回到hadoop的根目錄
cd /usr/local/hadoop/hadoop-2.9.0
在運行示例jar之前先創建一個目錄用於輸入文件數據
mkdir input
我們將etc/hadoop下的一些文本文件拷貝過來當作測試用一下
cp etc/hadoop/*.xml input
接下來我們就可以運行share目錄下的示例程序了(運行結果是統計所有輸入文件中字符h出現的次數)
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'h'
我們將結果輸出看一下
cat output/*
你會看到,統計次數為528次
為了以后方便,我們將hadoop的bin目錄和sbin目錄配置到系統環境變量里面去:
編輯系統環境變量配置
vi /etc/profile
增加環境變量,把hadoop_home和path給添加到系統里面去
這樣我們在使用命令的時候就可以直接使用了,如
hadoop version
以上就是hadoop單節點的安裝,參考官方文檔實現:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html