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