ubuntu12.04下hadoop單機模式和僞分佈模式環境搭建

1.添加hadoop組(專門用來進行hadoop測試)到系統用戶:java

<!-- lang: java -->
  sudo addgroup hadoop

2.在hadoop中添加hadoop用戶:node

<!-- lang: java -->
sudo adduser --ingroup hadoop hadoop

3.賦予hadoop管理員權限apache

<!-- lang: java -->
sudo usermod -aG sudo hadoop

( 若是不想新建用戶,只在本身現有用戶下搭建,上面三步能夠省去直接進入第四步) 4切換用戶!! 5.安裝ssh遠程登陸協議:ssh

<!-- lang: java -->
sudo apt-get install openssh-server

6.啓動sshjvm

<!-- lang: java -->
sudo /etc/init.d/ssh start

7.免密碼登陸,並生成公鑰與私鑰:分佈式

<!-- lang: java -->
ssh-keygen -t rsa -P ""

第一次操做時會提示輸入密碼,按Enter直接過,這時會在~/home/hadoop/.ssh下生成兩個文件:id_rsa和id_rsa.pub,前者爲私鑰,後者爲公鑰. 8.如今咱們將公鑰追加到authorized_keys中(authorized_keys用於保存全部容許以當前用戶身份登陸到ssh客戶端用戶的公鑰內容)oop

<!-- lang: java -->
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

9登陸ssh測試

<!-- lang: java -->
 ssh localhost

10退出.net

<!-- lang: java -->
exit

11再登陸退出一次,以後登陸就不用輸入密碼了。 12安裝java 13安裝hadoop,hadoop官網下載這裏選擇的是hadoop-1.2.1.tar.gz ,解壓並放到你想放的地方code

<!-- lang: java -->
 sudo mv /Downloads/hadoop-1.2.1.tar.gz /usr/local/hadoop

14確保全部操做均在hadoop用戶下

<!-- lang: java -->
 sudo chown -R hadoop:hadoop /usr/local/hadoop

15配置hadoop-env.sh,所在目錄:/usr/local/hadoop/conf,添加以下代碼

<!-- lang: cpp -->
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 (視你機器的java安裝路徑而定)
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin
export HADOOP_HOME_WARN_SUPPRESS="TRUE"

16讓環境變量配置生效

<!-- lang: java -->
source /usr/local/hadoop/conf/hadoop-env.sh

17單機配置成功:

<!-- lang: java -->
hadoop version

僞分佈模式繼續: 18配置conf目錄下三個文件:core-site.xml,hdfs-site.xml,mapred-site.xml core-site.xml:

<!-- lang: java -->
<configuration>  
    <property>  
        <name>fs.default.name</name>  
        <value>hdfs://localhost:9000</value>  
    </property>  
    <property>  
        <name>hadoop.tmp.dir</name>  
        <value>/usr/local/hadoop/tmp</value>  
    </property>  
</configuration>

hdfs-site.xml:

<!-- lang: java -->
   <configuration>  
        <property>  
            <name>dfs.replication</name>  
            <value>1</value>  
        </property>  
        <property>  
            <name>dfs.name.dir</name>  
            <value>/usr/local/hadoop/hdfs/name</value>  
        </property>  
        <property>  
            <name>dfs.data.dir</name>  
            <value>/usr/local/hadoop/hdfs/data</value>  
        </property>  
    </configuration>

mapred-site.xml:

<!-- lang: java -->
<configuration>  
    <property>  
        <name>mapred.job.tracker</name>  
        <value>localhost:9001</value>  
    </property>  
</configuration>

19 在hadoop目錄下新建幾個目錄:

<!-- lang: java -->
 ~/hadoop$ mkdir tmp  
    ~/hadoop$ mkdir hdfs  
    ~/hadoop$ mkdir hdfs/name  
    ~/hadoop$ mkdir hdfs/data

20 修改data文件夾的權限:

<!-- lang: java -->
sudo chmod g-w /usr/local/hadoop/hdfs/data

21 讓配置文件生效:

<!-- lang: java -->
source /usr/local/hadoop/conf/hadoop-env.sh

22.確認hadoop沒有運行:

<!-- lang: java -->
usr/local/hadoop  bin/stop-all.sh

23 格式化namenode

<!-- lang: java -->
usr/local/hadoop bin/hadoop namenode -format

24運行

<!-- lang: java -->
/usr/local/hadoop bin/start-all.sh

25 jps 若是出現下圖表示成功 在此輸入圖片描述

26測試程序: 在僞分佈模式下運行一下hadoop自帶的例子WordCount來感覺如下MapReduce過程:

這時注意程序是在文件系統dfs運行的,建立的文件也都基於文件系統:

首先在dfs中建立input目錄

<!-- lang: java -->
hadoop@lcj:/usr/local/hadoop$ bin/hadoop dfs -mkdir input

將conf中的文件拷貝到dfs中的input

<!-- lang: java -->
 hadoop@lcj:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal conf/* input

在僞分佈式模式下運行WordCount

<!-- lang: java -->
 hadoop@lcj:/usr/local/hadoop$ bin/hadoop jar hadoop-examples-1.2.1.jar wordcount input output

顯示輸出結果

<!-- lang: java -->
hadoop@lcj:/usr/local/hadoop$ bin/hadoop dfs -cat output/*

在此輸入圖片描述

當Hadoop結束時,能夠經過stop-all.sh腳原本關閉Hadoop的守護進程

<!-- lang: java -->
hadoop@lcj:/usr/local/hadoop$ bin/stop-all.sh

本文主要參考的csdn狂奔的蝸牛,Ubuntu上搭建Hadoop環境(單機模式+僞分佈模式)連接,在此表示感謝,結合本身在安裝時候出現的問題給以解決方法,加以總結。

相關文章
相關標籤/搜索