Hadoop1.1.2僞分佈式安裝

1、安裝前準備

本次安裝所使用軟件:
虛擬機:VirtualBox-4.3.8-92456-Win.exe
JDK:jdk-6u24-linux-i586.bin
Hadoop:hadoop-1.1.2.tar.gz
Linux版本:CentOS-5.5-i386-bin-DVD.iso
Hadoop組件依賴關係

Linux系統的安裝就不介紹了,下面默認爲已經安裝好Linux系統了。html

設置Linux的靜態IP

編輯/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改成以下內容:java

 
 
 
 
 
 
DEVICE=eth0BOOTPROTO="static"HWADDR=08:00:27:22:13:54IPV6INIT="no"ONBOOT=yesDNS=192.168.1.1IPADDR=192.168.1.150NETMASK=255.255.255.0GATEWAY=192.168.1.1

而後執行網絡重啓命令:node

 
 
 
 
 
 
service network restart

最後執行ifconfig命令查看是否修改爲功linux

 
 
 
 
 
 
[root@hadoop-master software]# ifconfigeth0 Link encap:Ethernet HWaddr 08:00:27:22:13:54 inet addr:192.168.1.150 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe22:1354/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3078 errors:0 dropped:0 overruns:0 frame:0 TX packets:423 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:230636 (225.2 KiB) TX bytes:56128 (54.8 KiB)lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:76 errors:0 dropped:0 overruns:0 frame:0 TX packets:76 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6266 (6.1 KiB) TX bytes:6266 (6.1 KiB)[root@hadoop-master software]#

修改VirtualBox的虛擬網卡地址

該步驟需保證虛擬機中的Linux能與客戶機在同一網段而且ping通。
設置VirtualBox虛擬機的網絡鏈接方式爲Host-Only

再修改VirtualBox虛擬出那塊網卡的ip地址

修改成以下內容:

最後須要驗證宿主機和虛擬機是否可以互通
宿主機ping虛擬機:

虛擬機ping宿主機:bash

 
 
 
 
 
 
[root@hadoop-master software]# ping -c3 192.168.1.100PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.366 ms64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.357 ms64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=0.189 ms--- 192.168.1.100 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2000msrtt min/avg/max/mdev = 0.189/0.304/0.366/0.081 ms[root@hadoop-master software]#

修改主機名

修改當前會話主機名(當前會話生效):hostname 主機名
修改配置文件主機名(永久生效):vi /etc/sysconfig/network網絡

 
 
 
 
 
 
[root@hadoop-master software]# cat /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=noHOSTNAME=hadoop-master[root@hadoop-master software]# hostnamehadoop-master

把hostname和ip綁定

修改hosts文件:vi /etc/hosts文件,增長一行ssh

 
 
 
 
 
 
192.168.1.150 hadoop-master

關閉防火牆:service iptables stop

  1. 查看防火牆狀態:service iptables status
  2. 關閉防火牆:service iptables stop
  3. 關閉防火牆的自運行:分佈式

    1. 查看自運行狀態:chkconfig –list | grep ‘iptables’ide

           
           
           
           
           
           
      [root@hadoop-master sysconfig]# chkconfig --list | grep 'iptables'iptables 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉
    2. 關閉防火牆:chkconfig iptables offoop

           
           
           
           
           
           
      [root@hadoop-master sysconfig]# chkconfig iptables off
    3. 再次查看自運行狀態:chkconfig –list | grep ‘iptables’

           
           
           
           
           
           
      [root@hadoop-master sysconfig]# chkconfig --list | grep 'iptables'iptables 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉

這樣下次開機的時候就會不開啓防火牆了

2、SSH免密碼登錄

生成祕鑰文件

進入~/.ssh文件夾,使用ssh-keygen -t rsa命令
注意:
1.若是沒有.ssh文件夾,就使用ssh協議登陸一次試試
2.若是仍是沒有.ssh文件夾,就本身建立一個。修改文件夾權限爲700
3.authorized_keys文件的權限爲644

 
 
 
 
 
 
[root@hadoop-master software]# cd ~/.ssh/[root@hadoop-master .ssh]# ssh-keygen -t rsa

查看.ssh文件夾中已經多出了兩個文件id_rsa和 id_rsa.pub

 
 
 
 
 
 
[root@hadoop-master .ssh]# lsid_rsa id_rsa.pub[root@hadoop-master .ssh]#

將id_rsa.pub公鑰文件內容放入到authorized_keys中,變成私鑰

 
 
 
 
 
 
[root@hadoop-master .ssh]# cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

測試免密碼登錄是否成功

使用:ssh localhost命令鏈接本機,第一次鏈接時會讓輸入yes。之後就不用輸入了。

 
 
 
 
 
 
[root@hadoop-master .ssh]# ssh localhostThe authenticity of host 'localhost (127.0.0.1)' can't be established.RSA key fingerprint is 8c:f4:bf:b5:c4:95:30:7b:1c:d7:cc:f8:69:15:e1:ab.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'localhost' (RSA) to the list of known hosts.Last login: Sun Apr 5 17:45:25 2015

3、安裝JDK

JDK的安裝很簡單,解壓縮。而後配置環境變量便可。
安裝步驟以下:

1. 授予執行權限

 
 
 
 
 
 
[root@hadoop-master software]# chmod u+x jdk-6u24-linux-i586.bin

2. 解壓縮

 
 
 
 
 
 
[root@hadoop-master software]# ./jdk-6u24-linux-i586.bin

3. 配置環境變量

編輯/etc/profile文件,增長以下代碼

 
 
 
 
 
 
# JAVA_HOMEexport JAVA_HOME=/opt/modules/jdk1.6.0_24export PATH=$JAVA_HOME/bin:$PATHexport CLASS_PATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

而後使設置當即生效:

 
 
 
 
 
 
source /etc/profile

4. 測試安裝

 
 
 
 
 
 
[root@hadoop-master software]# java -versionjava version "1.6.0_24"Java(TM) SE Runtime Environment (build 1.6.0_24-b07)Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)[root@hadoop-master software]#

4、安裝Hadoop

Hadoop僞分佈式的安裝也很簡單
解壓縮,配置環境變量。修改配置文件便可

一、解壓縮hadoop-1.1.2.tar.gz

 
 
 
 
 
 
[root@hadoop-master software]# tar -zxvf hadoop-1.1.2.tar.gz

解壓完成後,能夠看下Hadoop1.x的目錄結構

二、添加到環境變量中

編輯/etc/profile文件,在文件最後增長以下內容

 
 
 
 
 
 
# HADOOP_HOMEexport HADOOP_HOME=/opt/modules/hadoop-1.1.2export PATH=$PATH:$HADOOP_HOME/bin

三、使設置當即生效

 
 
 
 
 
 
source /etc/profile

四、修改hadoop的配置文件

僞分佈式的安裝須要修改Hadoop的6個配置文件(${HADOOP_HOME}/conf),以下:
Hadoop腳本配置文件:hadoop-env.sh
核心配置文件:core-site.xml
HDFS的配置文件:hdfs-site.xml
MapReduces的配置文件:mapred-site.xml
管理節點配置文件:masters
工做節點配置文件:slaves

配置hadoop-env.sh

打開${HADOOP_HOME}/conf/hadoop-env.sh
修改JAVA_HOME變量爲本身安裝的JDK的位置

 
 
 
 
 
 
export JAVA_HOME=/opt/modules/jdk1.6.0_24
配置core-site.xml

${HADOOP_HOME}/conf/core-site.xml中須要配置HDFS的默認主機名、端口和hadoop在本地的文件系統目錄(目錄須要存在

爲何要設置HDFS的工做目錄呢?
由於不設置的話,Hadoop的HDFS默認的工做目錄是在Linux系統的/tmp目錄下,

這個目錄在Linux重啓後內容會被清空。因此你還須要從新再格式化。因此,這裏咱們指定HDFS的工做目錄爲咱們自定義的目錄。

 
 
 
 
 
 
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop-master:9000</value> <description>hadoop-master</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/data/tmp</value> </property></configuration>
配置hdfs-site.xml

${HADOOP_HOME}/conf/hdfs-site.xml中主要配置:
文件塊的副本數(dfs.replication):因爲是僞分佈式,主節點和從節點都在同一臺機器上,因此副本數爲1
是否進行權限檢查(dfs.permissions):false

 
 
 
 
 
 
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property></configuration>
配置mapred-site.xml

${HADOOP_HOME}/conf/mapred-site.xml中主要配置MapReduce的jobTracker的主機和端口

 
 
 
 
 
 
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration> <property> <name>mapred.job.tracker</name> <value>hadoop-master:9001</value> </property></configuration>
配置masters

指定SecondaryNameNode的位置(主機名)。
打開${HADOOP_HOME}/conf/masters文件,增長以下內容:

 
 
 
 
 
 
hadoop-master
配置slaves

指定DataNode和TaskTracker的位置(主機名)。
打開${HADOOP_HOME}/conf/slaves文件,增長以下內容:

 
 
 
 
 
 
hadoop-master

五、格式化NameNode

配置完成後須要格式化NameNode,第一次使用時須要格式化,以後再次使用時就再也不須要。
在${HADOOP_HOME}/bin/目錄下執行

 
 
 
 
 
 
[root@hadoop-master bin]# hadoop namenode -format

5、測試Hadoop安裝是否成功

啓動Hadoop

Hadoop的執行命令都在${HADOOP_HOME}/bin目錄下,啓動和中止的2種方式

  1. 所有啓動或中止:
    啓動:start-all.sh
    啓動順序爲
    NameNode–>DataNode–>SecondaryNameNode–>JobTracker–>TaskTracker

    中止:stop-all.sh
    中止順序爲
    JobTracker–>TaskTracker–>NameNode–>DataNode–>SecondaryNameNode

  2. 單個啓動:
    啓動:start-dfs.sh start-mapred.sh
    中止:stop-dfs.sh stop-mapred.sh

這裏咱們直接所有啓動:start-all.sh

 
 
 
 
 
 
[root@hadoop-master bin]# start-all.shstarting namenode, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-namenode-hadoop-master.outhadoop-master: starting datanode, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-datanode-hadoop-master.outhadoop-master: starting secondarynamenode, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-secondarynamenode-hadoop-master.outstarting jobtracker, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-jobtracker-hadoop-master.outhadoop-master: starting tasktracker, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-tasktracker-hadoop-master.out[root@hadoop-master bin]#

能夠從控制檯看到,啓動後的日誌信息都存在在了 HADOOPHOME/logs/ H A D O O P H O M E / l o g s / 目 錄 下 , 如 果 啓 動 報 錯 可 以 去 查 看 相 應 的 日 志 信 息 。 當 然 這 個 日 志 目 錄 可 以 自 定 義 。 默 認 是 在 {HADOOP_HOME}/logs/目錄下。打開${HADOOP_HOME}/conf/hadoop-env.sh文件,裏面有以下一行配置:

 
 
 
 
 
 
# Where log files are stored. $HADOOP_HOME/logs by default.# export HADOOP_LOG_DIR=${HADOOP_HOME}/logs

日誌類型有2種,分別以log和out結尾。

  1. 以log結尾的日誌
    經過log4j採用每日滾動的方式來記錄日誌,主要記錄了啓動和中止的日誌信息。
  2. 以out結尾的日誌
    記錄標準輸出和標準錯誤的日誌,內容比較少。

日誌文件名格式:
hadoop-root-datanode-hadoop-master.log
hadoop-用戶名-守護進程名稱-運行守護進程的節點名稱.log

消除start-all.sh時候的警告信息

若是啓動過程當中出現以下警告信息

 
 
 
 
 
 
Warning: $HADOOP_HOME is deprecated

出現該警告的緣由爲:${HADOOP_HOME}/bin/hadoop-config.sh文件中的以下代碼

主要是:$HADOOP_HOME_WARN_SUPPERSS變量內容爲空的緣由,
解決辦法是設置其不爲空便可!
修改vi /etc/profile文件,增長以下代碼

 
 
 
 
 
 
export HADOOP_HOME_WARN_SUPPRESS=1

而後使設置生效

 
 
 
 
 
 
source /etc/profile

經過jps命令查看Hadoop的5個守護進程

ps表示查看Linux系統中的進程。jps表示查看系統中的Java進程

 
 
 
 
 
 
[root@hadoop-master bin]# jps6432 DataNode6639 JobTracker6915 Jps6316 NameNode6545 SecondaryNameNode6791 TaskTracker[root@hadoop-master bin]#

登錄WEB管理頁面

在Windwos系統的hosts文件中配置ip地址和hostname的映射
打開C:\Windows\System32\drivers\etc\hosts文件,增長以下內容。這樣在訪問192.168.1.150時,能夠直接輸入hadoop-master來訪問了。

 
 
 
 
 
 
## Hadoop1.1.2192.168.1.150 hadoop-master
HDFS的管理頁面

http://hadoop-master:50070

MapReduce的管理頁面

http://hadoop-master:50030

各監控頁面顯示正常的話,表示Hadoop僞分佈式安裝成功!



相關文章
相關標籤/搜索