Ubuntu下單機僞分佈式的hadoop-1.2.1穩定版的配置

環境:

               Ubuntu14.04

安裝步驟:

1,準備工作

            因爲Hadoop的namenode將使用SSH協議啓動namenode和datanode進程,但是僞分佈式的namenode和datanode都是本身,所以需要配置SSH localhost的無密碼驗證。

1.1安裝SSH Server

             sudo apt-get install openssh-server

            檢查是否安裝好:ps -e|grep ssh,如果出現ssh-agent和sshd說明server已經啓動。默認服務端口是22,也可以自己在/etc/ssh/ssh_config文件進行修改自己定義服務端口

            然後重啓sudo /etc/init.d/ssh restart

1.2安裝jdk

           1.2.1下載JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html按自己的需要選擇下載,例如我下的是jdk-8u20-linux-x64.tar.gz

           1.2.2 解壓jdk

            tar -zvfx jdk-8u20-linux-x64.tar.gz  /usr/local/java

           1.2.3 配置環境變量

           在/etc/profile後面添加:

export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

          1.2.4  使更改生效source /etc/profile        

          1.2.5 如果java,javac都有相應的輸出則表明安裝成功

           例如,輸入java-version:

           java version "1.7.0_67"
          Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
          Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

          安裝成功!!

1.3 增加一個hadoop用戶組,便於hadoop和運行和管理(可選)

            sudo addgroup hadoop

         sudo adduer -ingroup hadoop hadoop

1.4 配置SSH

            1.4.1 切換到hadoop用戶 su hadoop

            1.4.2 ssh -keygen -t rsa -P ""

                      cat $HOME/.ssh/id_rsa.pub>>$HOME/.ssh/authorized_keys

            1.4.3 配置完成測試一下ssh localhost

            hadoop@localhost's password:
            Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-36-generic x86_64)

            * Documentation:  https://help.ubuntu.com/

            79 packages can be updated.
            2 updates are security updates.

            Last login: Thu Oct  9 15:28:24 2014 from localhost

2,安裝hadoop

2.1 下載解壓縮

       下載地址: http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/    是hadoop-1.2.1的穩定版本。

      解壓tar -zvfx hadoop-1.2.1.tar.gz /opt/hadoop

      修改所有者爲hadoop用戶:chown -R hadoop hadoop                   

2.2 配置環境變量

     在/etc/profile後面添加

HADOOP_HOME=/opt/hadoop
PATH=$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/lib:$CLASSPATH
export HADOOP_HOME
export PATH
export CLASSPATH

2.3 xml文件配置

      vim /opt/hadoop/conf/core-site.xml

<configuration>

  <property>
    <name>hadoop.tmp.dir</name>
   <!hdfs臨時數據存放文件夾>
    <value>/home/hadoop/hadoop-tmpdata/</value>
    <description>A base for other temporary directories.</description>
  </property>
 
  <property>
   <!--fs.default.name指定NameNode的IP地址和端口號-->
    <name>fs.default.name</name>
    <value>hdfs://localhost:54310</value>
    <description>The name of the default file system.  A URI whose
  scheme and authority determine the FileSystem implementation.  The
  uri's scheme determines the config property (fs.SCHEME.impl) naming
  the FileSystem implementation class.  The uri's authority is used to
  determine the host, port, etc. </description>
  </property>

</configuration>
       vim /opt/hadoop/conf/mapred-site.xml

<configuration>

<property>
  <name>mapred.job.tracker</name>
  <value>localhost:54311</value>
  <description>The host and port that the MapReduce job tracker runs
  at.  If "local", then jobs are run in-process as a single map
  and reduce task.
  </description>
</property>

</configuration>
       vim /opt/hadoop/conf/hdfs-site.xml

<property>
<!--block的副本數,默認爲3;你可以設置爲1 這樣每個block只會存在一份。-->
  <name>dfs.replication</name>
  <value>1</value>
  <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  </description>
</property>

    配置完成。

2.4格式化HDFS

      /opt/hadoop/bin/hadoop namenode -format

2.5啓動hadoop

     /opt/hadoop/bin ./start-all.sh

    如果啓動後

1565 TaskTracker
1082 DataNode
1268 SecondaryNameNode
1680 Jps
1363 JobTracker
847 NameNode

    這幾個進程都在,則表明hadoop配置成功。

3,wordcount示例

3.1 在~/test下創建兩個示例文件

      echo ”hello hello cat“>file0

      echo "hello hello kitty">file1

3.2 將本地文件夾test上傳到hdfs作爲輸入

     hadoop fs -put test input

3.3 運行wordcount示例程序

    hadoop jar /opt/hadoop/hadoop-examples-1.2.1.jar wordcount input output

3.4 查看輸出

    hadoop fs -cat output/part-r-00000

    cat    1
    hello    4
    kitty    1

需要注意的地方:

1,每次在運行hdfs格式化命令之前要把之前的hdfs的臨時文件夾刪除先,不然會出現Incompatible namespaceIDs的錯誤,這是因爲每次格式化namenode都清除了自己的信息但是沒有清除datanode的信息,這就造成了兩個ID不一樣的情況,但是還是要重新創建一個文件夾給hdfs存放臨時數據。這個文件夾的地址也要在core-site.xml中配置。

發佈了47 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章