wly603

Hadoop伪分布式模式 配置

环境:ubuntu 8.04.4    Hadoop1.0.2
参考师兄的博客:http://www.cnblogs.com/guoyuanwei/archive/2011/10/17/2215769.html
    快速入门:http://hadoop.apache.org/common/docs/r0.19.2/cn/quickstart.html

1、安装软件
   sudo apt-get install ssh
   sudo apt-get install rsync

2、到hadoop-1.0.2文件夹下,找到conf文件夹,修改配置文件
a)修改conf/core-site.xml:
<configuration>  
<property>  
<name>fs.default.name</name>  
<value>hdfs://localhost:9000</value>  
</property>  
</configuration>


b)修改conf/mapred-site.xml:
<configuration>  
<property>  
<name>mapred.job.tracker</name>  
<value>localhost:9001</value>  
</property>  
</configuration>


c)修改conf/hdfs-site.xml:
<configuration>  
<property>  
<name>dfs.replication</name>  
<value>1</value>  
</property>  
</configuration>  

<property>
<name>hadoop.tmp.dir</name>
<value>/home/gqy/hadoop</value>
</property>

<property>
<name>dfs.data.dir</name>
<value>/home/gqy/hadoop/data</value>
</property>

<property>
<name>dfs.name.dir</name>
<value>/home/gqy/hadoop/name</value>
</property>

3、测试主机名
   命令:hostname
  查看主机名是否为localhost,如果不是请修改/etc/hostname文件内容为localhost。
hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是localhost,然后在/etc/hosts文件中进行映射,所以要看看/etc/hosts文件中的内容localhost对应的ip地址所否为本机

4、切换到root用户
    sudo -s -H

5、配置ssh,使得本机ssh登录本机无密码
  命令:ssh-keygen -t rsa   
        一直按enter,就会按默认的选项将生成的密钥对保存在.ssh/id_rsa文件中
 再执行以下命令
       cd /root/
      cp .ssh/id_rsa.pub authorized_keys
然后执行
     ssh localhost,可以实现用ssh连接并且不需要密码连接

如果不输入口令就无法用ssh登陆localhost,执行下面的命令:
 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

测试成功后,即连接无需输入密码。然后退出测试
 输入命令:  exit

6、执行
  格式化hadoop系统并启动
     root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format
  启动Hadoop守护进程:
     bin/start-all.sh
  终端显示信息:
starting namenode, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-namenode-localhost.out
localhost: starting datanode, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-datanode-localhost.out
localhost: starting secondarynamenode, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-secondarynamenode-localhost.out
starting jobtracker, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-jobtracker-localhost.out
localhost: starting tasktracker, logging to /usr/local/hadoop-1.0.2/libexec/../logs/hadoop-root-tasktracker-localhost.out
 

注:执行第6步之前,可另开1个终端,查看正在运行的进程
       ps -aux
    执行第6步之后,会新增加5个进程。同时在/home/gqy/hadoop目录下会增加dfs目录

为了使用的方便,可以把bin/hadoop加入环境变量
  sudo gedit /etc/profile
  export HADOOP_HOME = /usr/local/hadoop-1.0.2
  export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
 输入完成后,再终端输入
   source /etc/profile   让环境变量立即生效

 
  OK!配置成功!~

使用Hadoop:
 统计单词:
   #pwd
      /usr/local/hadoop-1.0.2

  a、首先将本地文件系统上的 test-in 目录拷到 HDFS上(/user/gqy/),目录名改为 input.
        上传命令: hadoop dfs -put test-in/ input
       

  由于input是在HDFS文件系统中,所以在linux中,我们看不到,但可通过命令查看:
              hadoop dfs -ls
     输出结果为:
         Found 1 items
           drwxr-xr-x   - gqy supergroup          0 2012-04-18 14:37 /user/gqy/input 

 

  b、执行统计运算
   hadoop jar hadoop-examples-1.0.2.jar wordcount input output
查看执行结果(将文件从 HDFS 拷到本地文件系统中再查看)
  hadoop dfs -get output output
  cat output/*
输出显示结果如下:
  cat: output/_logs: Is a directory
bye    1
goodbye    1
hadoop    2
hello    2
world    2

posted on 2012-04-10 21:30  wly603  阅读(1115)  评论(0编辑  收藏  举报

导航