ITPub博客

首页 > 大数据 > Hadoop > 4.2配置hadoop

4.2配置hadoop

Hadoop 作者:wjyxq 时间:2013-05-29 16:31:27 0 删除 编辑

1)配置hadoop-env.sh

  该"hadoop-env.sh"文件位于"/usr/hadoop/conf"目录下。

 

 

  在文件的末尾添加下面内容。

 

# set java environment

export JAVA_HOME=/usr/java/jdk1.6.0_31

 

 

  Hadoop配置文件在conf目录下,之前的版本的配置文件主要是Hadoop-default.xml和Hadoop-site.xml。由于Hadoop发展迅速,代码量急剧增加,代码开发分为了core,hdfs和map/reduce三部分,配置文件也被分成了三个core-site.xml、hdfs-site.xml、mapred-site.xml。core-site.xml和hdfs-site.xml是站在HDFS角度上配置文件;core-site.xml和mapred-site.xml是站在MapReduce角度上配置文件。

 

  2)配置core-site.xml文件

  修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。

 

 

   

        hadoop.tmp.dir

        /usr/hadoop/tmp

       备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹)

        A base for other temporary directories.

   

   

        fs.default.name

        hdfs://192.168.1.2:9000

   

 

 

  备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。

    用下面命令进行编辑:

 

 

    编辑结果显示如下:

 

 

  3)配置hdfs-site.xml文件

  修改Hadoop中HDFS的配置,配置的备份方式默认为3。

 

 

   

        dfs.replication

        1

        (备注:replication 是数据副本数量,默认为3,salve少于3台就会报错)

   

 

 

  用下面命令进行编辑:

 

 

  编辑结果显示如下:

 

 

  4)配置mapred-site.xml文件

  修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。

 

 

   

        mapred.job.tracker

        http://192.168.1.2:9001

   

 

 

  用下面命令进行编辑:

 

 

  编辑结果显示如下:

 

 

  5)配置masters文件

  有两种方案:

    (1)第一种

        修改localhost为Master.Hadoop

    (2)第二种

        去掉"localhost",加入Master机器的IP:192.168.1.2

  为保险起见,启用第二种,因为万一忘记配置"/etc/hosts"局域网的DNS失效,这样就会出现意想不到的错误,但是一旦IP配对,网络畅通,就能通过IP找到相应主机。

  用下面命令进行修改:

 

 

  编辑结果显示如下:

 

 

    6)配置slaves文件(Master主机特有

    有两种方案:

    (1)第一种

去掉"localhost",每行只添加一个主机名,把剩余的Slave主机名都填上。

        例如:添加形式如下

 

Slave1.Hadoop

Slave2.Hadoop

Slave3.Hadoop

 

    (2)第二种

        去掉"localhost",加入集群中所有Slave机器的IP,也是每行一个。

        例如:添加形式如下

 

192.168.1.3

192.168.1.4

192.168.1.5

 

  原因和添加"masters"文件一样,选择第二种方式。

  用下面命令进行修改:

 

 

  编辑结果如下:

 

 

  现在在Master机器上的Hadoop配置就结束了,剩下的就是配置Slave机器上的Hadoop。

 

  一种方式是按照上面的步骤,把Hadoop的安装包在用普通用户hadoop通过"scp"复制到其他机器的"/home/hadoop"目录下,然后根据实际情况进行安装配置,除了第6步,那是Master特有的。用下面命令格式进行。(备注:此时切换到普通用户hadoop)

 

scp ~/hadoop-1.0.0.tar.gz hadoop@服务器IP:~/

 

    例如:从"Master.Hadoop"到"Slave1.Hadoop"复制Hadoop的安装包。

 

 

    另一种方式是将 Master上配置好的hadoop所在文件夹"/usr/hadoop"复制到所有的Slave的"/usr"目录下(实际上Slave机器上的slavers文件是不必要的, 复制了也没问题)。用下面命令格式进行。(备注:此时用户可以为hadoop也可以为root)

    

scp -r /usr/hadoop root@服务器IP:/usr/

 

    例如:从"Master.Hadoop"到"Slave1.Hadoop"复制配置Hadoop的文件。

 

 

    上图中以root用户进行复制,当然不管是用户root还是hadoop,虽然Master机器上的"/usr/hadoop"文件夹用户hadoop有权限,但是Slave1上的hadoop用户却没有"/usr"权限,所以没有创建文件夹的权限。所以无论是哪个用户进行拷贝,右面都是"root@机器IP"格式。因为我们只是建立起了hadoop用户的SSH无密码连接,所以用root进行"scp"时,扔提示让你输入"Slave1.Hadoop"服务器用户root的密码。

    查看"Slave1.Hadoop"服务器的"/usr"目录下是否已经存在"hadoop"文件夹,确认已经复制成功。查看结果如下:

 

 

  从上图中知道,hadoop文件夹确实已经复制了,但是我们发现hadoop权限是root,所以我们现在要给"Slave1.Hadoop"服务器上的用户hadoop添加对"/usr/hadoop"读权限。

  以root用户登录"Slave1.Hadoop",执行下面命令。

 

chown -R hadoop:hadoop(用户名:用户组) hadoop(文件夹

 

  

  接着在"Slave1 .Hadoop"上修改"/etc/profile"文件(配置 java 环境变量的文件),将以下语句添加到末尾,并使其有效(source /etc/profile):

 

# set hadoop environment

export HADOOP_HOME=/usr/hadoop

export PATH=$PATH :$HADOOP_HOME/bin

 

  如果不知道怎么设置,可以查看前面"Master.Hadoop"机器的"/etc/profile"文件的配置,到此为此在一台Slave机器上的Hadoop配置就结束了。剩下的事儿就是照葫芦画瓢把剩余的几台Slave机器按照《从"Master.Hadoop"到"Slave1.Hadoop"复制Hadoop的安装包。》这个例子进行部署Hadoop。

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11150851/viewspace-1120285/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论