Hadoop編譯安裝2.7.3(CentOS7)

Hadoop編譯安裝指南(centos 7)

1 hadoop編譯

1.1 爲什麼需要編譯?

         我們都知道hadoop使用JAVA語言來編寫的,而官方提供的是.java文件,我們需要編譯成能夠被JVM可執行的.class文件。才能夠再JVM上運行,才能夠正常安裝。

1.2我們需要準備哪些工具?

1.2.1 protobuf

1.2.1.1 protobuf簡介

protobuf是由google公司貢獻的開源序列化框架,類似與XML和JSON數據表示語言。而protobuf最大的特點就是基於二進制,因此效率會比XML高得多。而hadoop中的RPC實現是基於protobuf的,所以我們在編譯時需要預先安裝protobuf。

protobuf開源網址爲:https://github.com/google/protobuf

protobuf各個版本的zip包:https://github.com/google/protobuf/releases

1.2.1.2 protobuf編譯安裝

根據上述提供的網址下載protobuf的預編譯包。本次下載的版本是protobuf-2.5.0.tar.gz(在文件夾中提供,由於官網不支持2.5.0版本的下載,而hadoop2.7.3版本要求必須爲2.5.0)。

具體安裝步驟如下:

1、安裝protobuf所需的依賴包

         yuminstall autoconf automake libtool curl make g++ gcc-c++ unzip

2、將下載的protobuf包放到cenos7服務器中。

         3、解壓壓縮包tarzxvf protobuf-2.5.0.tar.gz

4、進入到protobuf目錄cd protobuf-2.5.0

5、從github下載的souce包需要先直行腳本autogen.sh,下載一些相關文件

         ./ autogen.sh

6、直行編譯安裝

1./configure

2make

3make check

4sudo make install

5sudo ldconfig # refresh shared library cache

安裝完成之後,可以使用protoc –version查看版本號。

1.2.2 maven

1.2.2.1 maven簡介

Maven是一個項目管理和綜合工具。Maven提供了開發人員構建一個完整的生命週期框架。開發團隊可以自動完成項目的基礎工具建設,Maven使用標準的目錄結構和默認構建生命週期。

在多個開發團隊環境時,Maven可以設置按標準在非常短的時間裏完成配置工作。由於大部分項目的設置都很簡單,並且可重複使用,Maven讓開發人員的工作更輕鬆,同時創建報表,檢查,構建和測試自動化設置。

概括地說,Maven簡化和標準化項目建設過程。處理編譯,分配,文檔,團隊協作和其他任務的無縫連接。 Maven增加可重用性並負責建立相關的任務。

1.2.2.2 maven安裝

maven的安裝可以直接使用yum install maven命令安裝。

安裝完成之後可以通過mvn–version命令去查看是否正常安裝。

1.3 編譯hadoop

做好上述準備工作之後(自動安裝的maven的時候會安裝jdk和ant,如果手動安裝,請注意安裝這兩個工具),我們就可以去編譯Hadoop了。hadoop編譯需要的各個工具的版本,在BUILDING.txt文件中會有詳細說明。(2.7.3版本中,ProtocolBuffer要求必須爲2.5.0)

首先我們需要從apache官網下載hadoop的源碼包。在此我下載的版本是hadoop-2.7.3-src.tar.gz。

hadoop源碼下載連接:http://hadoop.apache.org/releases.html#Download

具體編譯過程如下:

1、將源碼包上傳到服務器上。

2、解壓文件包tar zxvf hadoop-2.7.3-src.tar.gz

3、進入源碼包cd hadoop-2.7.3-src

4、運行編譯命令mvn package -Pdist -DskipTests –Dtar

經過漫長的等待之後,編譯成功後會顯示以下信息:

從提示信息我們可以看到編譯好的hadoop壓縮包存放的目錄,直接取出使用。大功告成!


 

2 hadoop安裝(分佈式)

2.1 環境說明

1、系統環境:centos 7

2、java版本:jdk 1.8

3、hadoop版本:2.7.3

2.2 節點配置

Master: 192.168.1.10 (hadoopmaster)

Hadoopslave: 192.168.1.11(hadoopslave1)

Hadoopslave: 192.168.1.12(hadoopslave2)

2.3 安裝步驟

2.3.1 安裝jdk

1、下載安裝包,本次下載的是:jdk-8u111-linux-x64.tar.gz下載地址爲:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2、創建文件夾 mkdir /usr/local/java

3、將安裝包上傳至目錄/usr/local/java

4、解壓安裝包tar zxvf jdk-8u111-linux-x64.tar.gz

5、配置環境變量在/etc/profile文件的末尾添加

         JAVA_HOME=/usr/local/java/jdk1.8.0_111

JRE_HOME=/usr/local/java/jdk1.8.0_111/jre

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH

PATH=$PATH:$JAVA_HOME/bin

6、讓環境變量及時生效source /etc/profile

7、查看java版本信息 java –version

2.3.2 添加用戶

新建一個hadoop用戶,用於管理和維護hadoop相關的操作。

useradd -m hadoop -s /bin/bash

修改用戶登陸密碼

passwd hadoop

連續兩次輸入密碼

添加用戶完成!

2.3.3 ssh免密登陸

1、切換到hadoop用戶

2、在192.168.1.10機器(master)中執行命令

         ①cd ~/.ssh  (進入用戶目錄下的隱藏文件.ssh,若沒有該目錄,請先執行一次ssh localhost)

         ②ssh-keygen-t rsa (用rsa生成密鑰)

         ③cpid_rsa.pub authorized_keys(把公鑰複製一份,並改名爲authorized_keys,這步執行完,應該ssh localhost可以無密碼登錄本機了,可能第一次要密碼)

         ④scp authorized_keys [email protected]/home/hadoop/.ssh(把重命名後的公鑰通過ssh提供的遠程複製文件複製到從機slave1上面)

         ⑤chmod 600authorized_keys (更改公鑰的權限,也需要在從機slave1中執行同樣代碼)

         ⑥ssh 192.168.1.11(可以遠程無密碼登錄slave1這臺機子了,注意是ssh不是sudo ssh。)

3、如果有其他的子節點,則直行相同的操作

2.3.4 安裝hadoop

1、上傳編譯好的hadoop包,並解壓tar zxvf hadoop-2.7.3.tar.gz

2、修改解壓後的文件夾名稱mv hadoop-2.7.3 hadoop

3、修改文件夾權限chown -R hadoop:hadoop hadoop

4、修改hadoop的JAVA_HOME :vi etc/hadoop/hadoop-env.sh將JAVA_HOME修改爲絕對路徑


5、查看hadoop版本./bin/hadoop version

6、增加hadoop環境變量 vi ~/.bashrc

         # Hadoop EnvironmentVariables

exportHADOOP_HOME=/hadoop/hadoop

exportHADOOP_INSTALL=$HADOOP_HOME

exportHADOOP_MAPRED_HOME=$HADOOP_HOME

exportHADOOP_COMMON_HOME=$HADOOP_HOME

exportHADOOP_HDFS_HOME=$HADOOP_HOME

exportYARN_HOME=$HADOOP_HOME

exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

exportPATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

7、使環境變量即時生效source ~/.bashrc

8、測試環境變量是否生效 hadoop verison

2.3.5 配置hadoop集羣

搭建集羣需要修改hadoop/etc/hadoop下面的共五個配置文件,更多高級選項設置,可以參見官網說明。這裏僅設置了一些必要的設置。

1、slave文件

該文件是配置葉子節點。默認文件只有一行localhsot,這裏一行代表一個葉子節點。根據我們的節點配置安排,我們再次配置如下:

2、core-site.xml文件

<configuration>

        <property>

               <name>fs.defaultFS</name>

               <value>hdfs://192.168.1.10:9000</value>

        </property>

        <property>

               <name>hadoop.tmp.dir</name>

               <value>file:/hadoop/hadoop/tmp</value>

                <description>Abasefor other temporary directories.</description>

        </property>

</configuration>

3、hdfs-site.xml文件

<configuration>

        <property>

               <name>dfs.namenode.secondary.http-address</name>

               <value>192.168.1.10:50090</value>

        </property>

        <property>

               <name>dfs.replication</name>

               <value>1</value>

        </property>

        <property>

               <name>dfs.namenode.name.dir</name>

               <value>file:/hadoop/hadoop/tmp/dfs/name</value>

        </property>

        <property>

               <name>dfs.datanode.data.dir</name>

               <value>file:/hadoop/hadoop/tmp/dfs/data</value>

        </property>

</configuration>

4、mapred-site.xml 文件

<configuration>

        <property>

                <name>mapreduce.framework.name</name>

               <value>yarn</value>

        </property>

        <property>

               <name>mapreduce.jobhistory.address</name>

               <value>192.168.1.10:10020</value>

        </property>

        <property>

               <name>mapreduce.jobhistory.webapp.address</name>

               <value>192.168.1.10:19888</value>

        </property>

</configuration>

5、 yarn-site.xml文件

<configuration>

        <property>

               <name>yarn.resourcemanager.hostname</name>

               <value>192.168.1.10</value>

        </property>

        <property>

               <name>yarn.nodemanager.aux-services</name>

               <value>mapreduce_shuffle</value>

        </property>

</configuration>

6、將配置好的hadoop拷貝到葉子節點的服務器中

         ①將文件夾壓縮tar-zcf /hadoop/hadoop.master.tar.gz /hadoop/hadoop

         ②將壓縮文件拷貝到葉子節點服務器

                   scphadoop.master.tar.gz [email protected]:/hadoop

                   scphadoop.master.tar.gz [email protected]:/hadoop

         ③在葉子節點服務器中解壓文件夾 tar zxvf hadoop.master.tar.gz

         ④修改文件夾權限chown-R hadoop:hadoop hadoop

         ⑤設置hadoop環境變量(參考2.3.4 第六點)

7、增加主機名靜態查詢表 vi /etc/hosts所有服務器都需要

         192.168.1.10hadoop.master

192.168.1.11 hadoop.slave1

192.168.1.12 hadoop.slave2

         8、初始化hdfs:hdfsnamenode –format

2.4 啓動hadoop

經過上述準備我們的hadoop集羣就搭建完成了。接下來我們可以來到mater主服務器來啓動hadoop。

start-dfs.sh

start-yarn.sh

mr-jobhistory-daemon.shstart historyserver

然後我們可以通過jps命令查看各個服務器的啓動進程。

主服務器(master)下可以看到如下進程:


葉子節點的服務器可以看到如下進程:


我們也可以通過 Web 頁面看到查看 DataNode NameNode 的狀態:

http://master:50070/


2.5 關閉hadoop集羣

         關閉集羣也是在主服務器(master)上執行命令:

         stop-yarn.sh

stop-dfs.sh

mr-jobhistory-daemon.shstop historyserver

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章