天天看點

Hadoop學習筆記-入門

新學期開始了,在學校的日子開始倒計時~~~有點矯情了。

寒假在廣州呆了一個月,沒做什麼,出去轉了一圈,依然不知道找工作的事水有多深。期間看了一篇博文,感觸良多。此前雖然鑽研過不少技術,但是說白了就是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

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檔案夾

Hadoop學習筆記-入門

程式功能:在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

Hadoop學習筆記-入門
用指令ls -al檢視檔案清單,生成.ssh檔案,預設權限為700
Hadoop學習筆記-入門
進入.ssh檔案夾,已生成公鑰和私鑰
Hadoop學習筆記-入門

将公鑰複制一份到目前目錄,檔案名改為authorized_keys

$cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

Hadoop學習筆記-入門
authorized_keys檔案的權限為644
Hadoop學習筆記-入門

密鑰資訊存儲在known_hosts檔案中。

⑥安裝JDK

$./jdk-6u24-linux-i586.bin 

more /etc/profile 檢視Java和Hadoop的配置

Hadoop學習筆記-入門

source /etc/profile  使配置生效

在Windows中使用UltraEdit登入FTP伺服器修改配置檔案

Hadoop學習筆記-入門
在/opt/modules/hadoop-1.2.1/conf/core-site.xml檔案中做如下配置

<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

Hadoop學習筆記-入門

啟動dfs,指令 start-dfs.sh

Hadoop學習筆記-入門

使用jps指令檢視Java程序

Hadoop學習筆記-入門

NameNode  DataNode SecondaryNameNode 都已啟動

在浏覽器中測試http://192.168.110.130:50070/dfshealth.jsp

Hadoop學習筆記-入門

接下來啟動 start-mapred.sh

Hadoop學習筆記-入門

通過jps指令檢視Java程序

Hadoop學習筆記-入門

JobTracker  TaskTracker均已啟動。

通過http://hadoop-master.dragon.org:50030/jobtracker.jsp檢視

Hadoop學習筆記-入門

關閉

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檔案中配置。

Hadoop學習筆記-入門

.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

繼續閱讀