Hadoop2.x完全分布式环境搭建及测试验证

本文详细介绍了如何在三台虚拟机上搭建Hadoop2.x的完全分布式环境,包括操作系统配置、Hadoop安装、配置文件设置、SSH无密登录配置、HDFS和YARN的启动与验证,以及WordCount示例的运行,最后还提供了常见问题的解决方案。

                                                       Hadoop2.x完全分布式环境搭建及测试验证

前置条件:

[1] 已制作好CentOS虚拟机模板。

[2] 该模板安装好Oracle JDK,且JAVA_HOME值为/usr/java/jdk1.8.0_171-amd64/jre。

准备三台虚拟机

[1] 搭建完全Hadoop分布式最少需要三台服务器,假设三台服务器的IP地址如下:

192.168.159.194 hadoop01

192.168.159.195 hadoop02

192.168.159.196 hadoop03

[2] 配置要求:建议每台虚拟机的配置最低为2核4G,如果内存确实有限,可以将hadoop02和hadoop03的内存降为2G,但hadoop01的内存不能低于4G,因为根据后面的安排,hadoop01作为主节点,上面部署的服务较多。

概述

完全分布式包含多个节点,按功能可划分为:

[1] 主节点(master):如NameNode和ResourceManager

[2] 备节点(slave):如DataNode和NodeManager

[3] 辅助服务:如Web App Proxy Server和MapReduce Job History server

 

部署架构

 

配置文件

可分为三类:

[1] 只读的默认配置文件,包括

hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xml

hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

hadoop-2.7.3/share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

hadoop-2.7.3/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

[2] site相关的配置,包括:

hadoop-2.7.3/etc/hadoop/core-site.xml

hadoop-2.7.3/etc/hadoop/hdfs-site.xml

hadoop-2.7.3/etc/hadoop/yarn-site.xml

hadoop-2.7.3/etc/hadoop/mapred-site.xml

[3] 控制脚本文件,在hadoop-2.7.3/etc/hadoop/*-env.sh

 

说明:以下操作在hadoop01上进行。

第一步操作系统配置

[1] 修改/etc/hostname的内容为hadoop01

[2] 修改/etc/hosts的内容为

127.0.0.1   localhost

 

192.168.159.194 hadoop01

192.168.159.195 hadoop02

192.168.159.196 hadoop03

[3] 重启操作系统

[root@centos7 ~]# init 6

 

第二步:Hadoop安装包下载

可以在官网https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz 

 

第三步:解压hadoop包

[1] 将hadoop-2.7.3.tar.gz上传到/root目录下。

[root@hadoop01 ~]# cd /opt/

[root@hadoop01 opt]# tar zxf ~/hadoop-2.7.3.tar.gz

[root@hadoop01 opt]# cd hadoop-2.7.3/

 

[2] 创建hadoop需要的目录

[root@hadoop01 ~]# mkdir -p /opt/hadoop-2.7.3/data/namenode

[root@hadoop01 ~]# mkdir -p /opt/hadoop-2.7.3/data/datanode

 

第四步:配置Hadoop

[1] 配置hadoop-env.sh

编辑etc/hadoop/hadoop-env.sh,修改JAVA_HOME的值如下:

# The java implementation to use.

export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64/jre

 

[2] 配置core-site.xml

编辑etc/hadoop/core-site.xml,修改如下:

<configuration>

<property>

    <!-- The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. default value: file:/// -->

        <name>fs.defaultFS</name>

        <value>hdfs://hadoop01:9000</value>

    </property>

### Hadoop 3.x 完全分布式部署在 CentOS 7 上的搭建教程 以下是关于在 CentOS 7 系统上搭建 Hadoop 3.x 完全分布式环境的详细指南,涵盖了从安装到配置以及启动集群的全过程。 #### 1. 环境准备 确保所有节点的操作系统为 CentOS 7,并且已经关闭防火墙和 SELinux。 ```bash # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭 SELinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 ``` 此外,需要确保各节点之间可以通过 SSH 免密登录[^1]。 #### 2. 安装 Java 环境 Hadoop 需要 Java 环境支持。可以使用以下命令安装 OpenJDK: ```bash yum install -y java-1.8.0-openjdk-devel ``` 验证 Java 版本: ```bash java -version ``` #### 3. 解压 Hadoop 安装包 将 Hadoop 安装包解压到指定目录。例如,假设 Hadoop 版本为 3.1.3: ```bash tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/servers/ ``` 设置环境变量以便全局访问 Hadoop 命令: 编辑 `~/.bashrc` 文件,添加以下内容: ```bash export HADOOP_HOME=/opt/servers/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 使配置生效: ```bash source ~/.bashrc ``` #### 4. 配置 Hadoop 进入 Hadoop 配置文件目录 `/opt/servers/hadoop-3.1.3/etc/hadoop`,修改以下文件: ##### (1) `core-site.xml` 定义 HDFS 的默认文件系统路径: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> ``` ##### (2) `hdfs-site.xml` 配置 HDFS 的副本数和存储路径: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/data/datanode</value> </property> </configuration> ``` ##### (3) `mapred-site.xml` 启用 YARN 作为资源管理器: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` ##### (4) `yarn-site.xml` 配置 ResourceManager 和 NodeManager: ```xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` ##### (5) `workers` 列出所有 DataNode 节点的主机名或 IP 地址: ``` hadoop101 hadoop102 ``` #### 5. 同步配置到其他节点 将 Hadoop 目录同步到其他节点: ```bash cd /opt/servers/ scp -r hadoop-3.1.3 hadoop101:/opt/servers/ scp -r hadoop-3.1.3 hadoop102:/opt/servers/ ``` #### 6. 格式化 NameNode 在主节点(NameNode)上执行以下命令格式化 HDFS 文件系统: ```bash hdfs namenode -format ``` #### 7. 启动 Hadoop 集群 使用脚本启动 Hadoop 集群: ```bash sh hadoop.sh start ``` 同样,关闭集群时可以运行: ```bash sh hadoop.sh stop ``` #### 8. 测试 MapReduce 程序 上传测试数据到 HDFS 并运行 WordCount 示例程序: ```bash hadoop fs -mkdir -p /wordcount/input hadoop fs -put wcdata.txt /wordcount/input hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wordcount/input /wordcount/output ``` ### 注意事项 - 确保所有节点的时间同步,避免因时间差异导致的问题[^3]。 - 如果遇到权限问题,请检查相关目录的权限设置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值