因为伪分布式环境搭建没啥意义,所以我们直接来搭建hadoop的集群环境,
链接:https://pan.baidu.com/s/1OXiW1i3gD6fVvrFX7NXsJg 提取码:nyzk 下载内容包括源文件和编译的文件。
文件上传在/root/apps/目录下.解压缩并重命名
进入hadoop目录中
目录结构介绍
目录 | 说明 |
---|---|
bin | 自身的一些操作命令 |
etc | 配置文件在该目录下 |
include | c语言本地库的一些东邪 |
lib | 本地库 |
libexec | 目录下存放的是hadoop的配置脚本 |
sbin | 系统管理启动的命令 |
share | 文档和相关jar包 |
hadoop配置文件存放在etc/hadoop文件夹下,
设置具体的jdk路径,路径需要写死,因为在集群环境中通过$JDK_HOME获取不到系统环境变量中的信息。
指定NameNode的地址和hadoop运行时产生文件的存储目录。
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-node01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/apps/hadoop/hdfsdata</value>
</property>
指定副本的存储个数,及secondaryNameNode的存储地址
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--指定secondaryNameNode的地址 -->
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop-node01:50090</value>
</property>
首先需要将文件名称修改了。原文件名称为mapred-site.xml.template。指定MapReduce的资源调度方式为yarn。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
指定ResourceManager(yarn的老大)的地址和reduce获取数据的方式shuffle。
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-node01</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
指定DataNode的地址。
在hadoop-node01节点配置完成后,我们可以一次性将hadoop文件夹分发给其他几个节点。
scp -r hadoop hadoop-node02:/root/apps/
scp -r hadoop hadoop-node03:/root/apps/
scp -r hadoop hadoop-node04:/root/apps/
配置hadoop的环境变量,便于操作。
export HADOOP_HOME=/root/apps/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
其他几个节点分发或者配置下
source /etc/profile
只需要在NameNode的节点上面格式化一次就可以了
hadoop namenode -format
注意只需要格式一次,在nameNode上格式化。
在hadoop-node01上执行
start-dfs.sh
其他节点jps查看启动情况
启动成功~