上一篇文章文章写到了单机版的配置,现在开始搭建我们的集群,开启我们的六台机器,准备搞事情!!!
声明:1,这篇文章只能搭建一个普通的hadoop集群,没有涉及到高可用。
======================================
现在可以准备搭建集群了,记得我们的六个节点(centos虚拟机)吗?先搭建一个普通的HDFS集群,说实话,和搭建单机版没什么区别,只要改变几个参数就可以了。
现在,我们先去规划一下我们的节点,我们的各个节点负责什么呢?
为了保证以后高可用的实现,本集群只设置了三台主机。
规划
规划如下(一号机就是hadoop01,以此类推):
| 机器编号 | 规划节点 | 机器名称 |
| hadoop01 | namenode、datanode | namenode01 |
| hadoop02 | datanode | datanode01 |
| hadoop03 | datanode、resourcemanager | yarn01 |
现在我们有了我们的规划,现在就可以配置我们的程序了。
在linux下,任何程序的运行都需要配置,这跟我们在windows下找软件的设置是一样的。
配置之前的准备
1.安装Oracle的java环境(推荐jdk,不推荐jre),或者使用openjdk也是可以的(如果你后期要性能调优,建议使用openjdk,原因:开源,能够阅读源代码)
2.下载hadoop的安装包(我们已经下载过了),上传到我们的服务器上(先传到namenode一台上,不要全部传)
3.解压我们的压缩包
tar -zvxf hadoop.tar.gz
4.配置主机名和主机的dns映射文件
hostnamectl set-hostname hostname
vi /etc/hosts
5.配置我们的环境
vi /etc/profile
添加 JAVA_HOME和HADOOP_HOME
配置hadoop
5.配置hadoop的配置文件
修改hadoop目录下的etc/hadoop/core-site.xml
<!–指定namenode的通讯地址–>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!–指定读写文件的缓存空间–>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
修改hadoop目录下的etc/hadoop/hdfs-site.xml
<!–指定hdfs的副本数–>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!–指定单个block块大小–>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<!–namenode的元数据存储目录–>
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/hadoop/dfs/name</value>
</property>
<!–数据块的存储目录–>
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/hadoop/dfs/data</value>
</property>
<!–文件系统检测点的目录–>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/var/hadoop/checkpoint/dfs/fsimagename</value>
</property>
<!–edits的检测目录–>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>/var/hadoop/checkpoint/dfs/editname</value>
</property>
<!–是否开启文件系统权限–>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<!–是否启用web api访问hdfs–>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!–指定namenode的web ui的地址–>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value>
</property>
修改hadoop目录下的etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!–是否启用acl权限控制列表(默认false)–>
<property>
<name>yarn.acl.enable</name>
<value>false</value>
</property>
<!–是否开启聚合日志(默认不开启)–>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!–RM所在的节点–>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>yarn01</value>
</property>
<!–RM内部通信地址–>
<property>
<name>yarn.resourcemanager.address</name>
<value>yarn01:8032</value>
</property>
<!–RM中资源调度器(scheduler)的内部通信地址–>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>yarn01:8030</value>
</property>
<!–RM中资源跟踪器(resource-tracker)的内部通信地址–>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>yarn01:8031</value>
</property>
<!–RM中主控(admin)的内部通信地址–>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>yarn01:8033</value>
</property>
<!–RM中web ui的地址–>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>yarn01:8088</value>
</property>
修改hadoop目录下的etc/hadoop/mapred-site.xml
<!–指定mapreduce运行框架名称为yarn–>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!–指定map端最大内存–>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1024</value>
</property>
<!–指定reduce端最大内存–>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
</property><!–指定历史服务的内部通信地址–>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<!–指定历史服务的web ui的地址–>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
配置datanode的主机名单:slaves
在里面添加
namenode01
datanode01
yarn01
分发文件到服务器
scp <hadoopfiles> datanode01:/usr/local/
scp <hadoopfiles> yarn01:/usr/local/
=====================================
文章评论