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

来源:互联网 发布:redis和mysql结合使用 编辑:程序博客网 时间:2024/04/30 11:25

上一篇我们介绍了单机模式搭建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 Master172.16.139.132 Slave1172.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.shJAVA_HOME=/usr/local/soft/jdk1.7.0_71export JAVA_HOMEHADOOP_PREFIX=/usr/local/soft/hadoop-2.2.0export HADOOP_PREFIXexport PATH=$JAVA_HOME/bin:$PATHexport PATH=$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH

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

MasterSlave1Slave2

修改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 //格式化Hadoopstart-all.sh  //启动Hadoop集群jps //查看状态hdfs dfsadmin -report //查看Hadoop集群工作状态hdfs dfs -mkdir /user hdfs dfs -mkdir /user/roothdfs dfs -mkdir inputhadoop 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
原创粉丝点击