Hadoop入门--HDFS(单节点)配置和部署 (一)

一 配置SSH  

  1.  下载ssh服务端和客户端
    • sudo apt-get install openssh-server openssh-client
  2.   验证是否安装成功
    •  ssh username@192.168.30.128
    • 按照提示输入username的密码,回车后显示以下,则成功。(此处不建议修改端口号,hadoop默认的是22,修改后启动hadoop会报异常,除非在hadoop的配置文件中也修改ssh端口号)
    • Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-34-generic i686)

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

      New release '13.10' available.
      Run 'do-release-upgrade' to upgrade to it.

      Last login: Sun Dec  8 10:27:38 2013 from ubuntu.local
  3. 公钥-私钥登录配置(无密)
    •  ssh-keygen -t rsa -P ""(其中会出现输入提示,回车即可,之后home/username/.ssh/ 下生成id_rsa ,id_rsa.pub, known_hosts三个文件。
        /home/username/ 下生成 authorized_keys 文件)
  4. 将id_rsa.pub追加到authorized_keys授权文件中
    •  cat .ssh/id_rsa >> authorized_keys  (切换到/home/username/下)
  5. 公钥-私钥登录配置(有密)
    •  ssh-keygen -t rsa (在出现 Enter passphrase (empty for no passphrase):
      时,输入设置的密码。其它同上,此处未测试过)

二 安装JDK(采用OpenJDK,为啥不用JDK...百度or谷歌)

  1. 下载jdk
    •  sudo apt-get install openjdk-7-jdk(目前最新的是openjdk-7)
  2. 配置环境变量
    • sudo vim ~/.bashrc 
    • (在文件末尾添加)  export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386
         export JRE_HOME=${JAVA_HOME}/jre
         export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
         export PATH=${JAVA_HOME}/bin:$PATH
    • (修改环境变量生效)source ~/.bashrc
  3. 测试jdk是否安装成功
    • java -version(出现以下信息则成功)
    • java version "1.7.0_25"
      OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
      OpenJDK Client VM (build 23.7-b01, mixed mode, sharing)


三 安装Hadoop和HDFS配置

  1. 下载hadoop
    • tar -zxvf  hadoop-1.2.1.tar.gz(解压到 hadoop-1.2.1目录下)
    • mv hadoop-1.2.1 hadoop(hadoop-1.2.1目录改名为hadoop)
    • cp hadoop /usr/local(复制hadoop到 /usr/local 目录下)
  2. 配置hdfs文件(hadoop/conf/core-site.xmlhadoop/conf/hdfs-site.xmlhadoop/conf/mapred-site.xml
    • sudo vim /usr/local/hadoop/conf/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://192.168.30.128:9000</value>
          </property>
        </configuration>
    •  

    • sudo vim /usr/local/hadoop/conf/hdfs-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>hadoop.tmp.dir</name>
              <value>/home/username/hadoop_tmp</value><!--需要创建此目录-->
             <description>A base for other temporary directories.</description>
        </property>
        <property>
           <name>dfs.name.dir</name>
           <value>/tmp/hadoop/dfs/datalog1,/tmp/hadoop/dfs/datalog2</value>
        </property>
        <property>
           <name>dfs.data.dir</name>
           <value>/tmp/hadoop/dfs/data1,/tmp/hadoop/dfs/data2</value>
        </property>
        <property>
           <name>dfs.replication</name>
            <value>2</value>
        </property>
    •  

    • sudo vim /usr/local/hadoop/conf/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>192.168.30.128:9001</value>
         </property>
        </configuration>

    四  运行wordcount

    1.    在hdfs中创建一个统计目录,输出目录不用创建,否则运行wordcount的时候报错。
    2.   ./hadoop fs -mkdir /input
    3. ./hadoop fs -put myword.txt /input
    4. ./hadoop jar /usr/local/hadoop/hadoop-examples-1.2.1.jar wordcount /input /output
    5. ./hadoop fs -cat /output/part-r-00000