CentOS的Hadoop集群配置(一)

参考网站:http://blog.csdn.net/inte_sleeper/article/details/6569985


参考资料:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/

http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/

http://hadoop.apache.org/common/docs/current/cluster_setup.html

 

以下集群配置内容,以两台机器为例。其中一台是master,另一台是slave1。

master上运行name node, datanode, task tracker, job tracker,secondary name node;

slave1上运行data node, tasktracker。

 

前面加* 表示对两台机器采取相同的操作

1.      安装JDK*

yum installjava-1.6.0-openjdk-devel

 

2.      设置环境变量*

编辑/etc/profile文件,设置JAVA_HOME环境变量以及类路径:

#exportJAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64"

exportJAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0"

exportPATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

 

3.      添加hosts的映射*

编辑/etc/hosts文件,注意host name不要有下划线,见下步骤9

192.168.225.16 master

192.168.225.66 slave1

 

4.      配置SSH*

cd /root& mkdir .ssh

chmod 700.ssh & cd .ssh

 

创建密码为空的RSA密钥对:

ssh-keygen-t rsa -P ""

在提示的对称密钥名称中输入 id_rsa

将公钥添加至authorized_keys中:

catid_rsa.pub >> authorized_keys

chmod 644authorized_keys #重要

 

编辑sshd配置文件/etc/ssh/sshd_config,把#AuthorizedKeysFile  .ssh/authorized_keys前面的注释取消掉。

重启sshd服务:

servicesshd restart

 

测试SSH连接。连接时会提示是否连接,按回车后会将此公钥加入至knows_hosts中:

sshlocalhost

 

5.      配置masterslave1ssh互通

在slave1中重复步骤4,然后把slave1中的.ssh/authorized_keys复制至master的.ssh/authorized_keys中。注意复制过去之后,要看最后的类似root@localhost的字符串,修改成root@slave1。同样将master的key也复制至slave1,并将最后的串修改成root@master。

 

或者使用如下命令:

ssh-copy-id -i ~/.ssh/id_rsa.pubroot@slave1

 

测试SSH连接:

在master上运行:

ssh slave1

在slave1上运行:

ssh master

 

6.     安装Hadoop

下载hadoop安装包:

wgethttp://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-0.20.203.0/hadoop-0.20.203.0rc1.tar.gz

        mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-1.1.2/hadoop-1.1.2.tar.gz (新)

复制安装包至slave1:

scphadoop-0.20.203.0rc1.tar.gz root@slave1:/root/

 

解压:

tar xzvfhadoop-0.20.203.0rc1.tar.gz

mkdir /usr/local/hadoop

mv hadoop-0.20.203.0/* /usr/local/hadoop

 

         修改.bashrc文件(位于用户目录下,即~/.bashrc,对于root,即为/root/.bashrc)

         添加环境变量:

         exportHADOOP_HOME=/usr/local/hadoop

    export PATH=$PATH:$HADOOP_HOME/bin

        

 

7.     配置Hadoop环境变量*

以下所有hadoop目录下的文件,均以相对路径hadoop开始

修改hadoop/conf/hadoop-env.sh文件,将里面的JAVA_HOME改成步骤2中设置的值。

 

8.      创建Hadoop本地临时文件夹*

mkdir /root/hadoop_tmp(注意这一步,千万不要放在/tmp目录下面!!因为/tmp默认分配的空间是很小的,往hdfs里放几个大文件就会导致空间满了,就会报错)

修改权限:

chown -Rhadoop:hadoop /root/hadoop_tmp

更松地,也可以这样:

chmod –R 777/root/hadoop_tmp

 

 

9.     配置Hadoop

修改master的hadoop/conf/core-site.xml,在<configuration>节中添加如下内容:

注意:fs.default.name的值不能带下划线

<property>

    <name>hadoop.tmp.dir</name>

    <value>/root/hadoop_tmp/hadoop_${user.name}</value>

</property>

<property>

    <name>fs.default.name</name>

   <value>hdfs://localhost:54310</value> 

</property>

<property>

    <name>io.sort.mb</name>

    <value>1024</value> 

</property>

         其中io.sort.mb值,指定了排序使用的内存,大的内存可以加快job的处理速度。

 

         修改hadoop/conf/mapred-site.xml,在<configuration>节中添加如下内容:

<property>

    <name>mapred.job.tracker</name>

    <value>localhost:54311</value>

</property>

<property>

   <name>mapred.map.child.java.opts</name>

    <value>-Xmx4096m</value>

</property>

<property>

   <name>mapred.reduce.child.java.opts</name>

    <value>-Xmx4096m</value>

</property>

         其中mapred.map.child.java.opts,mapred.reduce.child.java.opts分别指定map/reduce任务使用的最大堆内存。较小的内存可能导致程序抛出OutOfMemoryException。

 

修改conf/hdfs -site.xml,在<configuration>节中添加如下内容:

<property>

    <name>dfs.replication</name>

    <value>2</value>

</property>

 

同样,修改slave1的/usr/local/hadoop/conf/core-site.xml,在<configuration>节中添加如下内容:

<property>

    <name>hadoop.tmp.dir</name>

    <value>/root/hadoop_tmp/hadoop_${user.name}</value>

</property>

<property>

    <name>fs.default.name</name>

    <value>hdfs://localhost:54310</value> 

</property>

<property>

    <name>io.sort.mb</name>

    <value>1024</value> 

</property>

 

         修改conf/mapred-site.xml,在<configuration>节中添加如下内容:

<property>

    <name>mapred.job.tracker</name>

    <value>localhost:54311</value>

</property>

<property>

   <name>mapred.map.child.java.opts</name>

    <value>-Xmx4096m</value>

</property>

<property>

   <name>mapred.reduce.child.java.opts</name>

    <value>-Xmx4096m</value>

</property>

 

         修改conf/hdfs-site.xml,在<configuration> 节中添加如下内容:

<property>

    <name>dfs.replication</name>

    <value>2</value>

    </property>

 

10.  修改hadoop/bin/hadoop文件

把221行修改成如下。因为对于root用户,-jvm参数是有问题的,所以需要加一个判断(或者以非root用户运行这个脚本也没问题)

HADOOP_OPTS="$HADOOP_OPTS-jvm server $HADOOP_DATANODE_OPTS"  à

    #for root, -jvm option is invalid.

    CUR_USER=`whoami`

    if [ "$CUR_USER" ="root" ]; then

        HADOOP_OPTS="$HADOOP_OPTS -server$HADOOP_DATANODE_OPTS"

    else

        HADOOP_OPTS="$HADOOP_OPTS -jvmserver $HADOOP_DATANODE_OPTS"

    fi 

unset $CUR_USER

 

至此, master和slave1都已经完成了single_node的搭建,可以分别在两台机器上测试单节点。

启动节点:

hadoop/bin/start-all.sh

运行jps命令,应能看到类似如下的输出:

937 DataNode

9232 Jps

8811 NameNode

12033 JobTracker

12041TaskTracker


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值