新學期開始了,在學校的日子開始倒計時~~~有點矯情了。
寒假在廣州呆了一個月,沒做什麼,出去轉了一圈,依然不知道找工作的事水有多深。期間看了一篇博文,感觸良多。此前雖然鑽研過不少技術,但是說白了就是CURD,沒意思,沒技術含量。早就打算坐下來看看Hadoop,但是一直沒有找到合适的資料,昨天終于搜集到一份比較完整的,就此開始Hadoop的學習~~共勉!!
學習視訊下載下傳位址 http://pan.baidu.com/share/link?shareid=1338450930&uk=3574016443
PS:學習Hadoop之前需要對Linux有基本的了解,參考之前的一篇文章 Linux學習筆記
使用到的軟體 VMWare9.0 centOS6.4 X64 Hadoop1.2.1 JDK1.7 X64
虛拟機的安裝不再贅述,JDK的安裝請參考《Linux學習筆記》一文。
軟體安裝規則
/opt 父目錄
/opt/modules 存放軟體的安裝目錄
/opt/softwares 存放軟體包(tar、bin、zip)
/opt/tools 存放工具目錄(eclipse)
/opt/data 存放一些測試資料
/home/hadoop 存放工具盒測試資料目錄
安裝Hadoop
1.解壓 tar -zxvf hadoop-1.2.1.tar.gz
2.移動軟體到安裝目錄 mv hadoop-1.2.1 /opt/modules/
3.配置環境變量,編輯/etc/profile檔案,添加如下内容
##HADOOP
export HADOOP_HOME=/opt/modules/hadoop-1.2.1
export PATH=$PATH:/opt/modules/hadoop-1.2.1/bin
以root使用者登入,執行 source /etc/profile 使配置生效
4.測試 hadoop

出現警告,參考博文 http://chenzhou123520.iteye.com/blog/1826002
5.配置Hadoop中JDK的安裝目錄
在/opt/modules/hadoop-1.2.1/conf/hadoop-env.sh中設定
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_25
6.測試MapReduce程式
①在/opt/data目錄下建立input目錄
②複制hadoop目錄下conf目錄下的xml檔案到/opt/data/input
cp /opt/modules/hadoop-1.2.1/conf/*.xml /opt/data/input/
③在hadoop目錄下執行以下指令
hadoop jar hadoop-examples-1.2.1.jar grep /opt/data/input/ /opt/data/output 'dfs[a-z.]+'
執行完成之後會在data目錄下生成output檔案夾
程式功能:在xml檔案中找出所有以dfs開頭的單詞
Apache Hadoop 僞分布模式安裝
①關閉防火牆和禁用SELnux
#service iptables status 檢視防火牆狀态
#service iptables stop 關閉防火牆
#vim /etc/sysconfig/selinux 設定SELINUX=disabled
②設定靜态IP位址
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 (也可以手動設定)
測試中的配置為IP:192.168.110.130 網關:192.168.110.2 子網路遮罩:255.255.255.0
③修改Hostname
#hostname hadoop-master
#vi /etc/sysconfig/network 修改配置檔案,永久生效
④IP與Hostname綁定
#vi /etc/hosts
在hosts檔案中加入192.168.110.130 hadoop-master.dragon.org hadoop-master
⑤設定SSH自動登入--所有守護程序彼此通過SSH協定進行通信
$ssh-keygen -t rsa
将公鑰複制一份到目前目錄,檔案名改為authorized_keys
$cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
密鑰資訊存儲在known_hosts檔案中。
⑥安裝JDK
$./jdk-6u24-linux-i586.bin
more /etc/profile 檢視Java和Hadoop的配置
source /etc/profile 使配置生效
在Windows中使用UltraEdit登入FTP伺服器修改配置檔案
<configuration>
<property> <!-- 指定NameNode主機名與端口号 -->
<name>fs.default.name</name>
<value>hdfs://hadoop-master.dragon.org:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>
</configuration>
需要手動建立/opt/data/tmp目錄
在/opt/modules/hadoop-1.2.1/conf/hdfs-site.xml檔案中做如下配置
<configuration>
<property> <!--設定HDFS的副本數,預設是3份,僞分布式在一台機器上隻配置1份-->
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
在/opt/modules/hadoop-1.2.1/conf/mapred-site.xml檔案中做如下配置
<configuration><!--指定JobTracker的主機與端口号-->
<property>
<name>mapred.job.tracker</name>
<value>hadoop-master.dragon.org:9001</value>
</property>
</configuration>
在/opt/modules/hadoop-1.2.1/conf/slaves檔案中做如下配置。将localhost改為如下。
DataNodes(塊存儲) TaskTrackers(任務執行)通常在同一台機器上,用slaves檔案配置。
hadoop-master.dragon.org
指定Secondary NameNode(輔助中繼資料伺服器)在masters檔案中配置
hadoop-master.dradon.org
-------------------------------------------------------------------
進入到/opt/modules/hadoop-1.2.1/bin目錄下,使用 ./hadoop檢視指令選項。
運作格式化指令 ./hadoop namenode -format
啟動dfs,指令 start-dfs.sh
使用jps指令檢視Java程序
NameNode DataNode SecondaryNameNode 都已啟動
在浏覽器中測試http://192.168.110.130:50070/dfshealth.jsp
接下來啟動 start-mapred.sh
通過jps指令檢視Java程序
JobTracker TaskTracker均已啟動。
通過http://hadoop-master.dragon.org:50030/jobtracker.jsp檢視
關閉
stop-mapred.sh
stop-dfs.sh
通過jps檢視關閉情況。
還可以通過start-all.sh來啟動,通過stop-all.sh來關閉。
啟動順序:NameNode DataNode SecondaryNameNode JobTracker TaskTracker
停止順序:JobTracker TaskTrackerNameNode DataNode SecondaryNameNode
還可以按照以上順序分别啟動或者停止每個程序。
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
hadoop-daemon.sh start jobtracker
hadoop-daemon.sh start tasktracker
至此,Hadoop安裝成功~~
日志檔案,兩種格式: .log .out 日志檔案存儲目錄可在conf/hadoop-enc.sh檔案中配置。
.log 日志檔案,在conf/log4j.properties檔案中配置,采用日常滾動檔案字尾政策來命名日志檔案,内容比較全。
.out 日志檔案,記錄标準輸出和标準錯誤,内容比較少。預設情況,系統保留最新的5個日志檔案。
hadoop-root-datanode-hadoop-master.log
① ② ③ ④ ⑤
①架構的名稱
②啟動守護程序的使用者名
③守護程序的名稱
④運作守護程序的名稱
⑤日志的格式,log和out
三大基礎配置檔案:
①core-site.xml 配置Hadoop Common Project 相關的屬性配置,Hadoop1.x架構基礎屬性的配置
②hdfs-site.xml 配置HDFS Project 檔案系統相關的屬性
③mapred-site.xml 配置MapReduce 架構相關的屬性
配置檔案
①masters 主節點,并不是配置Hadoop中的主節點的相關資訊,配置HDFS輔助接點的資訊
②slaves從節點,配置Hadoop1.x中的HDFS和MapReduce架構的從節點資訊
Hadoop1.x 五大服務(守護程序)
NameNode DataNode SecondaryNameNode JobTracker TaskTracker