1、hadoop集羣結構介紹html
hadoop自身集羣中包含兩個子集羣,它們分別是hdfs集羣、yarn集羣;hdfs集羣用於管理數據文件,而yarn集羣用於管理集羣運算相關的工做。hdfs集羣中主要包含兩種節點角色(name node、data node),name node即名稱服務節點,主要用於爲集羣提供記錄數據文件地址的名稱服務,data node即數據節點,主要用於爲集羣提供存儲文件的功能。node
集羣結構圖以下: c++
2、hadoop官網介紹git
官網地址:http://hadoop.apache.org/
hadoop common :內包含rpc框架
Ambarl:頁面圖形的hadoop管理工具
CDH:商業hadoop版本,包含一個web管理平臺,能夠停掉服務器、看狀態、加節點等等。web
3、hadoop安裝環境準備apache
因爲是本身學習使用,因此將name node和resource manager安裝在同一臺Linux服務器上。centos
1.服務器準備
centos-aaron-h1:192.168.29.14四、name node、SecondaryNameNode、resource manager
centos-aaron-h2:192.168.29.14五、data node、node manager
centos-aaron-h3:192.168.29.14六、data node、node manager
centos-aaron-h4:192.168.29.14七、data node、node managerbash
2.服務器主準備:centos6.9 vmware服務器
3.添加hadoop用戶,而且配置sudoer權限網絡
4.同步時間
5.配置centos-aaron-h1到其h1-h5的免密登陸
6.關閉防火牆
4、hadoop下載
1.首先從hadoop官網下載hadoop-2.9.1.tar.gz、hadoop-2.9.1-src.tar.gz
5、編譯hadoop(編譯要求可參照源碼包中的BUILD.txt文件)
1.安裝jdk1.7(省略...)
2.安裝apache-maven-3.5.4-bin.tar.gz
sudo tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local 修改配置文件: sudo vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4/ export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin 在mirrors中添加國內鏡像倉庫 vi /usr/local/apache-maven-3.5.4/conf/setting.xml <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
3.Findbug安裝,請先下載,地址爲:http://findbugs.sourceforge.net/downloads.html
sudo tar -zxvf findbugs-3.0.1.tar.gz -C /usr/local sudo vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4/ export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin
4.ProtocolBuffer安裝必須使用2.5.0。下載地址 https://code.google.com/p/protobuf/downloads/list
sudo tar -zxvf protobuf-2.5.0.tar.gz -C /usr/local yum install gcc-c++ //如下建議使用root用戶只需,不然可能沒有權限建立文件的錯誤 cd protobuf-2.5.0 ./configure --prefix=/usr/local/protobuf make && make install sudo vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4/ export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PROTOBUF_HOME=/usr/local/protobuf export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin:$PROTOBUF_HOME/bin
5.下載安裝cmake-3.6.2.tar.gz,下載地址:http://www.cmake.org/download/ 或者 https://gitlab.kitware.com/cmake/cmake/tree/v3.6.2
建議使用root帳號進行操做 tar -zxvf cmake-3.6.2.tar.gz cd cmake-3.6.2 ./configure --prefix=/usr/local/cmake make && make install vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4 export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PROTOBUF_HOME=/usr/local/protobuf export CMAKE_HOME=/usr/local/cmake export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin:$PROTOBUF_HOME/bin:$CMAKE_HOME/bin
6.安裝zlib-devel,執行命令:yum install zlib-devel
7.安裝openssl-devel , 執行命令:yum install openssl-devel
8.安裝ant環境
tar -zxvf apache-ant-1.9.13-bin.tar.gz -C /usr/local 配置環境變量 vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export M2_HOME=/usr/local/apache-maven-3.5.4 export FINDBUGS_HOME=/usr/local/findbugs-3.0.1 export PROTOBUF_HOME=/usr/local/protobuf export CMAKE_HOME=/usr/local/cmake export ANT_HOME=/usr/local/apache-ant-1.9.13/ export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$FINDBUGS_HOME/bin:$PROTOBUF_HOME/bin:$CMAKE_HOME/bin:$ANT_HOME/bin 生效環境變量 source /etc/profile 測試 ant -version
9.開始編譯hadoop
tar -zxvf hadoop-2.9.1-src.tar.gz mv hadoop-2.9.1-src hadoop-2.9.1 cd hadoop-2.9.1 mvn package -Pdist,native,docs,src -DskipTests –Dtar 或 mvn package -Pdist,native -DskipTests -Dtar
錯誤處理:hadoop pipes編譯失敗,須要安裝openssl;而後執行命令:mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-pipes
編譯成功效果圖:
編譯好的文件路徑:/home/hadoop/hadoop-2.9.1/hadoop-dist/target/hadoop-2.9.1.tar.gz
最後總結:編譯hadoop工程中極可能會出現假死、網絡差致使的jar包下載失敗等,能夠使用maven clean...命令進行編譯。編譯過程聽說若是順利的話能夠在一個小時內完成,博主編譯完成花了半天時間。重要的耐心....
補充知識:maven的setting中能夠多配置幾個國內鏡像
oschina
<mirror> <id>CN</id> <name>OSChina Central</name> <url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
repo2
<mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror>
net-cn
<mirror> <id>net-cn</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://maven.net.cn/content/groups/public/</url> </mirror>
uk
<mirror> <id>uk</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://uk.maven.org/maven2/</url> </mirror>
ibiblio
<mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url> </mirror>
jboss
<mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror>