hadoop 0.20.2集群配置入门

一、准备工作

在动手准备实践hadoop之前,最好把Google File System和Map/Reduce的原理搞清楚,否则可能要走很多弯路。

准备机器:一台master,若干台slave,配置每台机器的/etc/hosts保证各台机器之间通过机器名可以互访,例如:

 

10.0.0.10 master

10.0.0.11 slave1

10.0.0.12 slave2

 

保存后,重启网络服务,命令:service network restart

 

Linux所需软件包括:

  1. JavaTM1.5.x以上,必须安装,建议选择Sun公司发行的Java版本。
  2. ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。

ssh的安装以Ubuntu Linux为例:

$ sudo apt-get install ssh 
$ sudo apt-get install rsync

 

免密码ssh设置,保证至少从master可以不用口令登陆所有的slaves:

登陆master,执行命令

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

将生成的id_dsa.pub拷贝到所有slaves机器上相同路径下,例如:

$ scp ~/.ssh/id_dsa.pub root@slave1:/root/.ssh/master_dsa.pub

注意,此处重命名了一下。

登陆到slaves的机器上执行命令:

$ cat /root/.ssh/master_rsa.pub >>/root/.ssh/authorized_keys

现在再尝试通过ssh从master登录到slaves,应该不需要密码了

$ ssh slave1

如果还有问题,可以参考“理解 RSA/DSA 认证”:

http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html

 

 

 

二、hadoop配置

1.安装

下载hadoop发行版,地址:http://apache.freelamp.com/hadoop/core/stable/


安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。并且安装路径要一致,如果我们用HADOOP_HOME指代安装的根路径,通常,集群里的所有机器的HADOOP_HOME路径相
同。

通常,集群里的一台机器被指定为NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。

 

下载安装包后,直接解压安装即可:

$ tar -zxvf hadoop-0.20.2.tar.gz
$ cd hadoop-0.20.2

 

注:如果集群内机器的环境完全一样,可以在一台机器上配置好,然后把配置好的软件即hadoop-0.20.2整个文件夹拷贝到其他机器的相同位置即可。

2.配置

编辑conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径。

配置conf/core-site.xml: 

    <configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master:9100</value>
        </property>
    </configuration>

fs.default.name是NameNode的URI。hdfs://主机名:端口/

 配置conf/hdfs-site.xml 

    <configuration>
        <property>
                <name>dfs.name.dir</name>
                <value>/opt/hadoop/hadoopfs/name1,/opt/hadoop/hadoopfs/name2</value>
                 <description>  </description>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/opt/hadoop/hadoopfs/data1,/opt/hadoop/hadoopfs/data2</value>
                <description> </description>
        </property>

        <property>
                  <name>dfs.replication</name>
                  <value>1</value>
        </property>
    </configuration>
 

dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。

dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。

注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。

配置conf/mapred-site.xml 
     <configuration>
         <property>
                <name>mapred.job.tracker</name>
                <value>master:9200</value>
        </property>
    </configuration>

mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。

 

配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。

masters:

master

slaves:

slave1

slave2

 

配置结束,把配置好的hadoop-0.20.2文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh 

$ scp -r /opt/hadoop/hadoop-0.20.2 root@slave1:/opt/hadoop

三、hadoop启动

先格式化一个新的分布式文件系统

 

$ cd hadoop-0.20.2
$ bin/hadoop namenode -format

 

查看输出保证分布式文件系统格式化成功 

 

在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。

 

$ bin/start-all.sh

 

从主节点master关闭hadoop,主节点会关闭所有从节点的hadoop。

 

$ bin/stop-all.sh 

 

Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).

 

浏览NameNode和JobTracker的网络接口,它们的地址默认为:

NameNode - http://master:50070/
JobTracker - http://master:50030/


将输入文件拷贝到分布式文件系统:
$ bin/hadoop fs -put conf input

运行发行版提供的示例程序:
$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'

查看输出文件:

将输出文件从分布式文件系统拷贝到本地文件系统查看:
$ bin/hadoop fs -get output output
$ cat output/*

或者

在分布式文件系统上查看输出文件:
$ bin/hadoop fs -cat output/* 


启动运行成功后,可以多熟悉熟悉hadoop dfs命令,例如:

hadoop dfs –ls   查看/usr/root目录下的内容,默认如果不填路径这就是当前用户路径;
hadoop dfs –rmr xxx    xxx就是删除目录;
hadoop dfsadmin -report  这个命令可以全局的查看DataNode的情况;
hadoop job  -list    后面增加参数是对于当前运行的Job的操作,例如list,kill等;
hadoop balancer          均衡磁盘负载的命令。

 

ps:用JavaEye编辑器调整格式差点把我搞死。。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值