Linux下Hadoop集群的搭建(3)—集群模式

上一篇我们介绍了单机模式搭建Hadoop的环境,很简单,这一篇我们来介绍集群模式的Hadoop的搭建,有很多部分是和部署单机是一样的,在这一篇就会省略带过。

搭建环境:

在这里我们使用的是本地局域网内的服务器,分别是2G内存、50G硬盘、CentOS6.0的环境

172.16.139.128 Master

172.16.139.132 Slave1

172.16.139.130 Slave2

部署环境:

这一步我们只需要安装单机模式,把上面每台服务器都部署一下,可以参考上一篇Linux下Hadoop集群的搭建(2)—单机模式,我们在这里不再讲述。

SSH免登陆:

这里也和上一篇介绍的原理差不多,但是需要建立的是服务器之间的免登陆协议

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa_salve1 //在Slave1中执行,生成ssh秘钥
scp ~/.ssh/id_dsa_slave1.pub root@172.16.139.128:/root/.ssh/ //把Slave1中生成的ssh秘钥,复制到Master的/root/.ssh/
cat id_dsa_slave1.pub >> authorized_keys  //在Master中把复制的Slave1的秘钥加入到authorized_keys中
验证下免登陆是否配置成功

配置成功,这是配置的Slave1->Master之间免登陆,但是Master->Slave1依旧需要密码,因此也需要配置反向的免登陆,因为Hadoop集群之间的通讯是双向的。

同理,配置Master->Slave1、Slave2->Master、Master->Slave2之间的免登陆协议。

修改/etc/hosts文件

添加一下内容,注意不能有关于localhost的内容,否则会报错,这里三台服务器都需要修改

172.16.139.128 Master
172.16.139.132 Slave1
172.16.139.130 Slave2
这一步配置完成以后我们可以使用以下命令把在Master服务器中已经部署好的软件复制到Slave1、Slave2中
 scp -r hadoop-2.2.0 jdk1.7.0_71 root@Slave2:/usr/local/soft/
 scp -r hadoop-2.2.0 jdk1.7.0_71 root@Slave2:/usr/local/soft/

配置Slave1和Slave2的环境变量

在/etc/profile.d/下新建文件cutom.sh,并写入下面内容,并使之生效

#/etc/profile.d/custom.sh
JAVA_HOME=/usr/local/soft/jdk1.7.0_71
export JAVA_HOME

HADOOP_PREFIX=/usr/local/soft/hadoop-2.2.0
export HADOOP_PREFIX

export PATH=$JAVA_HOME/bin:$PATH
export PATH=$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH

修改hadoop目录下的etc/hadoop/slaves文件

Master
Slave1
Slave2

修改Hadoop的相关配置文件

修改core_site.xml

<configuration>
  <property>  
     <name>hadoop.tmp.dir</name>  
     <value>/mnt/tmp</value>  
     <description>Abase for other temporary directories.</description>  
  </property> 
  <property>
     <name>fs.defaultFS</name>
     <value>hdfs://Master:9000</value>
  </property>
  <property>  
     <name>io.file.buffer.size</name>  
     <value>4096</value>  
  </property> 
</configuration>

修改hdfs-size.xml

<configuration>
   <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>Master:9001</value>
   </property>
   <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/mnt/dfs/name</value>
   </property>
   <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/mnt/dfs/data</value>
   </property>
   <property>
      <name>dfs.replication</name>
      <value>3</value>
   </property>
   <property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value>
   </property>
</configuration>

修改mapred-site.xml

<configuration>
  <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
  </property>
  <property>
       <name>mapreduce.jobhistory.address</name>
       <value>Master:10020</value>
  </property>
  <property>
       <name>mapreduce.jobhistory.webapp.address</name>
       <value>Master:19888</value>
  </property>
</configuration>

修改yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
   <property>
      <name>yarn.resourcemanager.address</name>
      <value>Master:8032</value>
   </property>
   <property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>Master:8030</value>
   </property>
   <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
      <value>Master:8031</value>
   </property>
   <property>
      <name>yarn.resourcemanager.admin.address</name>
      <value>Master:8033</value>
   </property>
   <property>
      <name>yarn.resourcemanager.webapp.address</name>
      <value>Master:8088</value>
    </property>
</configuration>

启动运行Hadoop

hdfs namenode -format //格式化Hadoop
start-all.sh  //启动Hadoop集群
jps //查看状态
hdfs dfsadmin -report //查看Hadoop集群工作状态
hdfs dfs -mkdir /user 
hdfs dfs -mkdir /user/root
hdfs dfs -mkdir input
hadoop jar /usr/local/soft/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar grep input output 'dfs[a-z.]+'
查看运行结果
hdfs dfs -cat output/*


OK,配置完成!

加群:397706991,共同学习


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值