Chinaunix首页 | 论坛 | 博客
  • 博客访问: 641655
  • 博文数量: 227
  • 博客积分: 8017
  • 博客等级: 中将
  • 技术积分: 2069
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-08 22:50
文章分类

全部博文(227)

文章存档

2011年(10)

2010年(55)

2009年(28)

2008年(134)

我的朋友

分类: 服务器与存储

2011-01-11 17:51:38

这里用的是Hadoop-0.20.2的版本,不过加上了Hypertable-0.9.4.3的patch.

1.  部署节点分布:
    10.250.8.19        dev1
    10.250.8.21        dev3
    10.20.137.11    dev4

    将以上这些信息放入到 /etc/hosts中,并在各个机器上可以相互ping通主机名
    我们将在dev3上部署(NameNode, DataNode),而dev1, dev4分别作为slave的DataNode

2. ssh免登录的配置
    在hdfs运行时,需要从master控制slave. 所以需要控制master免密码ssh登录slave, 这里即从dev3面密码登录dev1和dev4
    1) dev3上   
    ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
    scp ~/.ssh/id_rsa.pub itlanger@dev1:/tmp; 
    scp ~/.ssh/id_rsa.pub itlanger@dev2:/tmp; 
   
    2) dev1, dev4, dev3上
    cat /tmp/id_rsa.pub >> /home/itlanger/.ssh/authorized_keys (追加方式添加)
    cat /tmp/id_rsa.pub >> /home/itlanger/.ssh/authorized_keys

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  (比较重要,这样就不用在启动dev3的NameNode和DataNode时输入密码了,哈哈!)

    3) 确保无密码登录: ssh dev1; ssh dev4; ssh dev3

3. 确保统一的java环境
    JAVA_HOME=/usr/java/jdk1.6.0_23

4. Hadoop配置:(三台机器一样做)
  下载源代码和解压,这个就不说了。

    修改文件 $HADOOP_HOME/conf/hadoop-env.sh
    export JAVA_HOME=/usr/java/jdk1.6.0_23

    修改文件 $HADOOP_HOME/conf/core-site.xml
    设置文件系统为HDFS文件系统,并指定访问host和port

   <configuration>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://dev3:9000</value>
        </property>
    </configuration>


     修改文件 $HADOOP_HOME/conf/hdfs-site.xml
    设置HDFS文件系统NameNode和DataNode的本地存储位置,并指定复制份数

   <configuration>
        <property>
            <name>dfs.name.dir</name>
            <value>/home/itlanger/project/hadoop/hadoop_filesystem/name</value>
        </property>
        <property>
            <name>dfs.data.dir</name>
            <value>/home/itlanger/project/hadoop/hadoop_filesystem/data</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
    </configuration>


5. 修改文件 $HADOOP_HOME/conf/slaves (仅在dev3上配置)
     localhost #这里也可以写为dev3
     dev1
     dev4
    同理conf/master文件也可以写为: dev3, 效果和localhost没有区别
   
6. 格式化NameNode文件系统: (dev3, dev1, dev4)
      $HADOOP_HOME/bin/hadoop namenode -format

7. 启动Hadoop: (dev3)
    $HADOOP_HOME/bin/start-dfs.sh  #如果要启动mapreduce则可以用start-all.sh
   
    使用浏览器通过“HDFS Web UI”查看HDFS状态:
    http://dev3:50070/ #(需要在本机中的/etc/hosts中也配置dev3, dev1, dev4的解析)
    注:在Cluster Summary中,可以看到Live Nodes数目为2,HDFS成功启动;浏览HDFS文件系统,可以看到当前根目录下只存在/tmp文件夹。
   
    在http://dev3:50030/ 中可以看到MapReduce的相关信息(如果是以start-all.sh启动)
   

8. Hadoop测试    
    在HDFS文件系统中创建一个目录及新文件夹 /usr/itlanger/input1:
    $HADOOP_HOME/bin/hadoop fs -mkdir /user/itlanger/input1
   
    将$HADOOP_HOME下的README.txt文件放入HDFS刚刚创建的文件夹中:
    $HADOOP_HOME/bin/hadoop fs -put README.txt /user/itlanger/input1

    再多放几个文件:
    ./bin/hadoop fs -put docs/*.html /user/itlanger/input1/
   

    运行wordcount示例
    ./bin/hadoop jar hadoop-examples-0.20.2+320.jar wordcount input1 output1
    (统计hdfs中/user/itlanger/input1目录中所有文件中的word,结果输出到/user/itlanger/output1目录下)
    结果可以在 http://dev3:50030/ 中查看

9. 清理hdfs文件、临时文件和日志文件:
    rm $HADOOP_HOME/filesystem_hadoop/* -rf
    rm $HADOOP_HOME/logs/* -rf
    rm /tmp/hadoop-$USER/* -rf


阅读(1375) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~