本次安裝所使用軟件:
虛擬機: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
編輯/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]#
該步驟需保證虛擬機中的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
修改hosts文件:vi /etc/hosts文件,增長一行ssh
192.168.1.150 hadoop-master
關閉防火牆的自運行:分佈式
查看自運行狀態:chkconfig –list | grep ‘iptables’ide
[root@hadoop-master sysconfig]# chkconfig --list | grep 'iptables'iptables 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉
關閉防火牆:chkconfig iptables offoop
[root@hadoop-master sysconfig]# chkconfig iptables off
再次查看自運行狀態:chkconfig –list | grep ‘iptables’
[root@hadoop-master sysconfig]# chkconfig --list | grep 'iptables'iptables 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉
這樣下次開機的時候就會不開啓防火牆了
進入~/.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
JDK的安裝很簡單,解壓縮。而後配置環境變量便可。
安裝步驟以下:
[root@hadoop-master software]# chmod u+x jdk-6u24-linux-i586.bin
[root@hadoop-master software]# ./jdk-6u24-linux-i586.bin
編輯/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
[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]#
Hadoop僞分佈式的安裝也很簡單
解壓縮,配置環境變量。修改配置文件便可
[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的6個配置文件(${HADOOP_HOME}/conf),以下:
Hadoop腳本配置文件:hadoop-env.sh
核心配置文件:core-site.xml
HDFS的配置文件:hdfs-site.xml
MapReduces的配置文件:mapred-site.xml
管理節點配置文件:masters
工做節點配置文件:slaves
打開${HADOOP_HOME}/conf/hadoop-env.sh
修改JAVA_HOME變量爲本身安裝的JDK的位置
export JAVA_HOME=/opt/modules/jdk1.6.0_24
${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>
${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>
${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>
指定SecondaryNameNode的位置(主機名)。
打開${HADOOP_HOME}/conf/masters文件,增長以下內容:
hadoop-master
指定DataNode和TaskTracker的位置(主機名)。
打開${HADOOP_HOME}/conf/slaves文件,增長以下內容:
hadoop-master
配置完成後須要格式化NameNode,第一次使用時須要格式化,以後再次使用時就再也不須要。
在${HADOOP_HOME}/bin/目錄下執行
[root@hadoop-master bin]# hadoop namenode -format
Hadoop的執行命令都在${HADOOP_HOME}/bin目錄下,啓動和中止的2種方式
所有啓動或中止:
啓動:start-all.sh
啓動順序爲:
NameNode–>DataNode–>SecondaryNameNode–>JobTracker–>TaskTracker
中止:stop-all.sh
中止順序爲:
JobTracker–>TaskTracker–>NameNode–>DataNode–>SecondaryNameNode
單個啓動:
啓動: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結尾。
日誌文件名格式:
hadoop-root-datanode-hadoop-master.log
hadoop-用戶名-守護進程名稱-運行守護進程的節點名稱.log
若是啓動過程當中出現以下警告信息
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
ps表示查看Linux系統中的進程。jps表示查看系統中的Java進程
[root@hadoop-master bin]# jps6432 DataNode6639 JobTracker6915 Jps6316 NameNode6545 SecondaryNameNode6791 TaskTracker[root@hadoop-master bin]#
在Windwos系統的hosts文件中配置ip地址和hostname的映射
打開C:\Windows\System32\drivers\etc\hosts文件,增長以下內容。這樣在訪問192.168.1.150時,能夠直接輸入hadoop-master來訪問了。
## Hadoop1.1.2192.168.1.150 hadoop-master
各監控頁面顯示正常的話,表示Hadoop僞分佈式安裝成功!