1. 程式人生 > >指導手冊01:安裝Hadoop.md

指導手冊01:安裝Hadoop.md

指導手冊01:安裝Hadoop

CentOS-6.8

Part 1:安裝及配置虛擬機器

1. 安裝Linux.

(1)開啟VMvirtualBox

(2) 控制->新建虛擬機器,輸入虛擬機器名稱“marst+學號” 型別:Linux,版本:other Linux(64-bit)

CentOS-6.8-x86_64-bin-DVD1

(3)記憶體建議1024M, 建立虛擬盤VHD虛擬硬碟,動態分配,硬碟20G。

(4) 右擊己建立的虛擬機器master, 設定:網路,網絡卡1:橋接網絡卡。儲存:光碟,選擇CentOS-6.8-x86_64-bin-DVD1安裝包。(先解壓:D:\大資料軟體\CentOS-6.8-x86_64-bin-DVD1.rar)

(5) 選擇Install or upgrade an existing system (安裝或升級現有的系統)

(6)選擇安裝語言,簡體中文,鍵盤U.S.English,儲存裝置->Basic Strage Devices,(基本步驟安裝),選擇“yes discard anyd data”(是的,刪除所有檢測到的硬碟的所有資料”。

(7)設定主機名為:“mater01.centos.com”,單擊下一步,選擇時區,設定管理員密碼:hadoop.

(8)選擇“Use All Space”(使用所有空間)。

(9)選擇安裝CentOS元件,這裡選擇“Desktop”(桌面)

(10)安裝成功,重擊重啟,登入,輸入使用者名稱“root”以及密碼”hadoop”。

2.設定IP

IP的分配與宿主機同一網段,系統默己自動獲取IP,可以通過ipconfig命令檢視IP地址。並通過宿主機ping 該虛擬機器地址,是否能ping通。

也可以手動修改IP地址方式如下:

(1)修改配置檔案“/etc/sysconfig/network-scripts/ifcfg-eth0”。

(2)執行命令“vi /etc/sysconfig/network-scripts/ifcfg-eth0

(3)修改ONBOOT=yes(啟動時是否啟用網絡卡);BOOTPROTO=static (靜態設定IP);新增ip地址,子網掩碼,閘道器。

(4)重啟服務(執行命令 service network restart”)

3.遠端連線虛擬機器(window 安裝ssh工具)

(1)在宿主機上ping 虛擬機器,檢視是事能正常ping通。(注意:Linux機和windows宿機主需關閉防火牆,linux關閉防火牆命令為:service iptabes stop)

(2)在宿主機上安裝SSH Secure。 安裝完後桌面兩個圖示,一個是遠端連線命令操作工具,另一個是檔案傳輸工具。

(3)單擊Quick Connect, 輸入Linux的ip地址,使用者名稱:root,埠號:22,密碼:hadoop 就可遠端登入。

4.虛擬機器線上安裝軟體

配置本地yum源主要步驟:

(1)執行命令“cd /etc/yum.repos.d”.

(2)檢視yum.repos.d目錄下的檔案:

CentOS-Base.repo,是網路源, CentOS-Medi.pro是本地源。

配置本地源,需要將除yum本地源以外的其它yum源禁用。

執行命令“mv CentOS-Base.repo CentOS-Base.rep.bak”

(3)執行命命令“vi CentOS-Media.repo”. 將baseurl的值改為file:///media/(光碟掛載點位位置),將gpgcheck的值改為0(表示對從這個源下載的rpm包不進行校驗),enable值改為1(表示啟用這個源)。,

(4)掛載

執行mount /dev/dvd /media

如果測掛載成功,檢查虛擬機器光碟是否己啟用。

(5)更新雲源

Yum cleal all

(6)使用yum從光碟安裝包安裝軟體。在此以安裝vim、zip、openssh-server、openssh-clent為例。

yum install –y vim zip openssh-server openssh-client

5.測試實現

使用vim編輯器在虛擬機器master的/opt目錄下編寫檔案a.txt。

(1)使用ssh工具開啟master會話。

(2)進入/opt目錄,命令為cd /opt

(3)使用vim建立一個空檔案,命令為: vim a.txt

(4)按“A”“I”,或”O”鍵,進入編輯狀態,在a.txt檔案裡編寫一段文字:”welcome hadoop!”

(5)按”Esc”鍵,退出編輯狀態,輸入“:wq”,按回車儲存退出。

另一件方式

用ssh檔案傳輸工具連線master,在window機器上編寫好a.txt上傳到mater的/opt資料夾下。

Part 2: 安裝java

1.在windows 下安裝java

(1)雙擊jdk檔案安裝

(2)更改jdk安裝目錄;

(3)更改jre安裝目錄;

(4)配置環境變數

系統變數→新建:JAVA_HOME 變數值:C:\Program Files\Java\jdk1.8.0_121

系統變數→Path→編輯:在變數值最後輸入 :%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

系統變數→新建:CLASSPATH 變數值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

2.在Linux下安裝Java

(1)上傳JDK安裝包到/opt目錄下

(2)進入/opt目錄,執行命令“rpm –ivh jdk-7u80-linux-x64.rpm”安裝JDK

3.配置SSH無密碼登入

(1)使用ssh-keygen產生公鑰與私鑰對。

輸入命令“ssh-keygen -t rsa”,接著按三次Enter鍵

3.測試實現

在Windows下檢視jdk 版本的步驟如下。

(1)開啟windwos執行視窗。

(2)執行命令“java –version”.

在Linux系統下檢視JDK版本的步驟如下。

(1)開啟終端會話。

(2)執行命令“java –version”。

Part 3 Hadoop安裝與配置

1. 上傳hadoop安裝包。

通過SSH Secure File Transfer Client上傳hadoop-2.6.4.tar.gz檔案到/opt目錄

2. 解壓縮hadoop-2.6.0.tar.gz 檔案

tar -zxf hadoop-2.6.0.tar.gz -C /usr/local

解壓後即可,看到/usr/local/hadoop-2.6.0資料夾

3. 配置Hadoop

進入目錄:

cd /usr/local/hadoop-2.6.4/etc/hadoop/

依次修改下面的檔案:

4.1 core-site.xml

<configuration>

<!-- 配置hdfs的namenode的地址-- >

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:8020</value>

</property>

<!-- 配置Hadoop執行時產生資料的儲存目錄,不是臨時的資料 -->

<property>

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

<value>/var/log/hadoop/tmp</value>

</property>

</configuration>

<!–修改JAVA_HOM如下:–>

export JAVA_HOME=/usr/java/jdk1.7.0_80

4.3 hdfs-site.xml

<configuration>

<property>

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

<value>file:///data/hadoop/hdfs/name</value>

</property>

<property>

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

<value>file:///data/hadoop/hdfs/data</value>

</property>

<!-- 指定HDFS的Web訪問埠 -->

<property>

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

<value>master:50090</value>

</property>

<!-- 指定HDFS儲存資料的副本資料量 -->

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

</configuration>

4.4 mapred-site.xml

<configuration>

<!-- 指定mapreduce程式設計模型執行在yarn上 -->

<property>

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

<value>yarn</value>

</property>

<!-- jobhistory properties -->

<property>

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

<value>master:10020</value>

</property>

<property>

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

<value>master:19888</value>

</property>

</configuration>

4.5 yarn-site.xml

<configuration>

<!-- 指定yarn的老大(ResourceManager的地址) -->

<property>

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

<value>master</value>

</property>

<!—對客戶端的暴露地址,客戶端通過該地址向RM提交應用程式–>

<!—對ApplicationMaster的暴露地址,ApplicationMaster端通過該地址向RM申請資源釋放資源–>

<property>

<name>yarn.resourcemanager.address</name>

<value>${yarn.resourcemanager.hostname}:8032</value>

</property>

<!—對nodeManager的暴露地址— >

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>${yarn.resourcemanager.hostname}:8030</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>${yarn.resourcemanager.hostname}:8088</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.https.address</name>

<value>${yarn.resourcemanager.hostname}:8090</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>${yarn.resourcemanager.hostname}:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>${yarn.resourcemanager.hostname}:8033</value>

</property>

<property>

<name>yarn.nodemanager.local-dirs</name>

<value>/data/hadoop/yarn/local</value>

</property>

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<property>

<name>yarn.nodemanager.remote-app-log-dir</name>

<value>/data/tmp/logs</value>

</property>

<property>

<name>yarn.log.server.url</name>

<description>URL for job history server</description>

</property>

<property>

<name>yarn.nodemanager.vmem-check-enabled</name>

<value>false</value>

</property>

<property>

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

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.nodemanager.resource.memory-mb</name>

<value>2048</value>

</property>

<property>

<name>yarn.scheduler.minimum-allocation-mb</name>

<value>512</value>

</property>

<property>

<name>yarn.scheduler.maximum-allocation-mb</name>

<value>4096</value>

</property>

<property>

<name>mapreduce.map.memory.mb</name>

<value>2048</value>

</property>

<property>

<name>mapreduce.reduce.memory.mb</name>

<value>2048</value>

</property>

<–nodeManager總可用的虛擬CPU個數–>

<property>

<name>yarn.nodemanager.resource.cpu-vcores</name>

<value>1</value>

</property>

export JAVA_HOME=/usr/java/jdk1.7.0_80

4.7 修改 slaves檔案

Slave1

Slave2

Slave3

4.8 設定IP對映

編輯/etc/hosts

5.搭建叢集網路環境

(1)在全域性設定裡設定NAT網路,叢集網段設為10.0.2.0

(2)將master主機新增網絡卡2,並設定為NAT方式。

網絡卡2 IP地址設為:10.0.2.4

6.克隆虛擬機器

克隆master到slave1、slave2、slave3;修改slave1~slave3的IP,改為固定IP;

開啟虛擬機器slave1。

開啟設定->網路,重新整理網絡卡地址。

(1)執行命令“rm –rf /etc/udev/rules.d/70-persistent-net.rules”刪除該檔案。

(2)執行命令ifconfig –a,檢視HWADDR.

(3)修改/etc/sysconfig/network-scripts/ifcfg-eth0檔案,修改ip地址及網絡卡地址

Slave1、slave2、slave3網絡卡IP地址分別設為:10.0.2.4;10.0.2.5, 10.0.2.6

(4)修改機器名,執行命令:“vim /etc/sysconfig/network.

7.配置SSH無密碼登入

(1)使用ssh-keygen產生公鑰與私鑰對。

輸入命令“ssh-keygen -t rsa”,接著按三次Enter鍵

[[email protected] ~]# ssh-keygen -t rsa

Generating pub/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Created directory ‘/root/.ssh’.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

a6:13:5a:7b:54:eb:77:58:bd:56:ef:d0:64:90:66:d4 [email protected]

The key’s randomart image is:

±-[ RSA 2048]----+

| … |

| . .E|

| . = |

| . . o o |

| o S . . =|

| o * . o ++|

| . + . . o ooo|

| o . …o |

| .|

±----------------+

生成私有金鑰id_rsa和公有金鑰id_rsa.pub兩個檔案。ssh-keygen用來生成RSA型別的金鑰以及管理該金鑰,引數“-t”用於指定要建立的SSH金鑰的型別為RSA。

(2)用ssh-copy-id將公鑰複製到遠端機器中

ssh-copy-id -i /root/.ssh/id_rsa.pub master//依次輸入yes,123456(root使用者的密碼)

ssh-copy-id -i /root/.ssh/id_rsa.pub slave1

ssh-copy-id -i /root/.ssh/id_rsa.pub slave2

ssh-copy-id -i /root/.ssh/id_rsa.pub slave3

(3)驗證時間是否同步

依次輸入

ssh slave1

ssh slave2yu

ssh slave3

8.配置時間同步服務

(1)安裝NTP服務。在各節點:

yum -y install ntp

(2)設定假設master節點為NTP服務主節點,那麼其配置如下。

使用命令“vim /etc/ntp.conf”開啟/etc/ntp.conf檔案,註釋掉以server開頭的行,並新增:

restrict 10.0.2.0 mask 255.255.255.0 nomodify notrap

server 127.127.1.0

fudge 127.127.1.0 stratum 10

(3)分別在slave1、slave2、slave3中配置NTP,同樣修改/etc/ntp.conf檔案,註釋掉server開頭的行,並新增:

server master

(4)執行命令“service iptables stop & chkconfig iptables off”永久性關閉防火牆,主節點和從節點都要關閉。

(5)啟動NTP服務。

① 在master節點執行命令“service ntpd start & chkconfig ntpd on”

② 在slave1、slave2、slave3上執行命令“ntpdate master”即可同步時間

③ 在slave1、slave2、slave3上分別執行“service ntpd start & chkconfig ntpd on”即可啟動並永久啟動NTP服務。

9.在/etc/profile新增JAVA_HOME和Hadoop路徑

export HADOOP_HOME=/usr/local/hadoop-2.6.4

export PATH=$HADOOP_HOME/bin:$PATH:/usr/java/jdk1.7.0_80/bin

source /etc/profile使修改生效

10. 格式化NameNode

進入目錄(usr/local)

cd /opt/hadoop-2.6.4/bin

執行格式化

./hdfs namenode -format

11.啟動叢集

進入目錄

cd /usr/local/hadoop-2.6.4/sbin

執行啟動:./

./start-dfs.sh

./start-yarn.sh

./mr-jobhistory-daemon.sh start historyserver

使用jps,檢視程序

[[email protected] sbin]# jps

3672 NodeManager

3301 DataNode

3038 NameNode

4000 JobHistoryServer

4058 Jps

3589 ResourceManager

3408 SecondaryNameNode

12. 關閉防火牆(在所有節點執行):

service iptables stop

chkconfig iptables off

13. 瀏覽器檢視: