1. 程式人生 > >Hadoop學習記錄-01安裝Hadoop0.20.2

Hadoop學習記錄-01安裝Hadoop0.20.2

安裝jdk

如圖jdk路徑

這裡寫圖片描述

配置環境變數

編輯/etc/profile檔案,在結尾加上如下程式碼

# jdk
export JAVA_HOME=/usr/local/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

重新整理環境變數

source /etc/profile

測試-檢視版本

java version

安裝Hadoop

如圖hadoop路徑

這裡寫圖片描述

配置環境變數

編輯/etc/profile檔案,在結尾加上如下程式碼

#hadoop
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin

重新整理環境變數

source /etc/profile

測試-檢視版本

[root@localhost etc]# hadoop version

輸出內容

Hadoop 0.20.2
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707
Compiled by
chrisdo on Fri Feb 19 08:07:34 UTC 2010

配置檔案

Hadoop的各個元件都可用用xml檔案進行配置。core-site.xml檔案用於配置通用屬性,hdfs-site.xml檔案用於配置hdfs屬性,mapred-site.xml檔案用於配置Mapreduce屬性。這些配置檔案都在conf目錄中(在早期的版本中是通過hadoop-site.xml檔案來進行配置上面三個配置檔案的內容,後面的版本把這個檔案拆開了,拆成了上面三個檔案來分別進行配置)

在docs目錄中分別有core-defualt.html,hdfs-defualt.html和mapred.default.html三個html檔案,分別描述了上面三個部分的配置說明。

執行模式

Hadoop有三種執行模式,分別是獨立模式,偽分佈模式,全分佈模式。
不同的模式有不同的配置屬性。如圖common表示在core-site.xml檔案中配置的屬性和值,hdfs表示在hdfs-site.xml檔案中配置的屬性和值,mapred表示在mapred-site.xml中配置的屬性和值
這裡寫圖片描述

獨立模式

預設的配置就是獨立模式,所以不需要修改任何配置直接可以使用獨立模式。

使用Hadoop自帶的wordcount例項統計一批文字檔案中各單詞出現的次數。
1 在Hadoop目錄下建立資料夾input,並且新建兩個檔案test1.txt和test2.txt。

[root@localhost hadoop]# mkdir input
[root@localhost hadoop]# cd input
[root@localhost input]# echo "hello world">test1.txt
[root@localhost input]# echo "hello hadoop">test2.txt

2 將hadoop目錄下的input資料夾上傳到HDFS上並重命名為in:

[root@localhost hadoop]# bin/hadoop dfs -put input in

3 通過Hadoop執行hadoop-0.20.2-examples.jar 這個jar包,傳入三個引數wordcount(單詞統計),in(輸入資料夾),out輸出資料夾

[root@localhost hadoop]# bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out

4 檢視單詞統計結果

[root@localhost hadoop]# bin/hadoop dfs -cat out/*
hadoop  1
hello   2
world   1

5 從Hadoop分散式檔案系統複製結果到本地檔案系統,並顯示內容

[root@localhost hadoop]# cat output/*
hadoop  1
hello   2
world   1

偽分散式模式

  • 免密碼SSH設定
    基於一個空口令建立新的SSH金鑰,實現無密碼登入
[root@localhost hadoop]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
[root@localhost hadoop]# cat ~/.ssh//id_rsa.pub >> ~/.ssh/authorized_keys
  • 配置檔案編輯

編輯core-site.xml

<?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://localhost:9000</value>
 </property>
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/no1/hadoop-0.20.2/tmp/</value>
    </property>
</configuration>

編輯replication檔案

<?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>
</configuration>

編輯mapred-site.xml檔案

<?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>localhost:9001</value>
    </property>  
</configuration>  
  • 格式化Hadoop
[root@localhost hadoop]# bin/hadoop namenode -format
  • 啟動(如果出現錯誤會在日誌檔案中,日誌檔案預設在Hadooplogs資料夾)
[root@localhost hadoop]# bin/start-all.sh 

訪問結果
這裡寫圖片描述

  • 停止
[root@localhost hadoop]# bin/stop-all.sh 

完全分散式模式