温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Hadoop怎么实现伪分布模式

发布时间:2021-12-09 14:18:01 来源:亿速云 阅读:160 作者:iii 栏目:大数据

Hadoop怎么实现伪分布模式

1. 引言

Hadoop是一个开源的分布式计算框架,广泛应用于大数据处理。它由Apache基金会开发,旨在通过分布式存储和计算来处理海量数据。Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS负责数据的存储,而MapReduce负责数据的处理。

在实际应用中,Hadoop通常运行在分布式集群上,但在开发和测试阶段,伪分布模式(Pseudo-Distributed Mode)是一个非常有用的配置。伪分布模式允许用户在单台机器上模拟一个完整的Hadoop集群,从而简化开发和调试过程。

本文将详细介绍如何在单台机器上配置和运行Hadoop的伪分布模式。我们将从环境准备、Hadoop安装、配置文件修改、启动Hadoop集群、验证集群状态等方面进行详细讲解。

2. 环境准备

在开始配置Hadoop伪分布模式之前,我们需要确保系统环境满足以下要求:

2.1 操作系统

Hadoop可以在多种操作系统上运行,包括Linux、Windows和macOS。本文以Linux(Ubuntu 20.04)为例进行讲解。

2.2 Java环境

Hadoop是用Java编写的,因此需要安装Java Development Kit (JDK)。建议使用JDK 8或更高版本。

sudo apt update sudo apt install openjdk-8-jdk 

安装完成后,可以通过以下命令验证Java版本:

java -version 

2.3 SSH无密码登录

Hadoop的伪分布模式需要SSH无密码登录到本地主机。首先,确保SSH服务已安装并启动:

sudo apt install openssh-server sudo systemctl start ssh 

然后,生成SSH密钥对并配置无密码登录:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys 

最后,验证SSH无密码登录是否成功:

ssh localhost 

如果不需要输入密码即可登录,说明配置成功。

3. Hadoop安装

3.1 下载Hadoop

从Apache Hadoop官网下载最新版本的Hadoop。本文以Hadoop 3.3.1为例:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz 

3.2 解压Hadoop

将下载的Hadoop压缩包解压到指定目录:

tar -xzvf hadoop-3.3.1.tar.gz -C /opt/ 

3.3 配置环境变量

为了方便使用Hadoop命令,我们需要将Hadoop的bin目录添加到系统的PATH环境变量中。编辑~/.bashrc文件,添加以下内容:

export HADOOP_HOME=/opt/hadoop-3.3.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 

然后,使配置生效:

source ~/.bashrc 

4. 配置文件修改

Hadoop的伪分布模式需要修改以下几个配置文件:

4.1 hadoop-env.sh

编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件,设置JAVA_HOME环境变量:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 

4.2 core-site.xml

编辑$HADOOP_HOME/etc/hadoop/core-site.xml文件,配置HDFS的默认文件系统:

<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> 

4.3 hdfs-site.xml

编辑$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件,配置HDFS的副本因子和NameNode、DataNode的存储目录:

<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop-3.3.1/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop-3.3.1/data/datanode</value> </property> </configuration> 

4.4 mapred-site.xml

编辑$HADOOP_HOME/etc/hadoop/mapred-site.xml文件,配置MapReduce框架:

<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 

4.5 yarn-site.xml

编辑$HADOOP_HOME/etc/hadoop/yarn-site.xml文件,配置YARN资源管理器:

<configuration> <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> </configuration> 

5. 启动Hadoop集群

5.1 格式化HDFS

在启动Hadoop集群之前,需要格式化HDFS的NameNode:

hdfs namenode -format 

5.2 启动HDFS

使用以下命令启动HDFS:

start-dfs.sh 

5.3 启动YARN

使用以下命令启动YARN:

start-yarn.sh 

5.4 启动MapReduce JobHistory Server

如果需要查看历史作业信息,可以启动MapReduce JobHistory Server:

mr-jobhistory-daemon.sh start historyserver 

6. 验证集群状态

6.1 检查HDFS状态

使用以下命令检查HDFS的状态:

hdfs dfsadmin -report 

6.2 检查YARN状态

使用以下命令检查YARN的状态:

yarn node -list 

6.3 访问Web界面

Hadoop提供了Web界面,可以通过浏览器访问以下URL来查看集群状态:

  • NameNode: http://localhost:9870
  • ResourceManager: http://localhost:8088
  • JobHistory Server: http://localhost:19888

7. 运行示例程序

为了验证Hadoop伪分布模式的配置是否正确,我们可以运行一个简单的MapReduce示例程序。

7.1 创建输入目录

首先,在HDFS上创建一个输入目录:

hdfs dfs -mkdir /input 

7.2 上传输入文件

将本地文件上传到HDFS的输入目录中:

hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input 

7.3 运行MapReduce作业

运行Hadoop自带的wordcount示例程序:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output 

7.4 查看输出结果

作业完成后,查看输出结果:

hdfs dfs -cat /output/* 

8. 停止Hadoop集群

在完成测试后,可以使用以下命令停止Hadoop集群:

stop-yarn.sh stop-dfs.sh mr-jobhistory-daemon.sh stop historyserver 

9. 总结

通过本文的详细步骤,我们成功地在单台机器上配置并运行了Hadoop的伪分布模式。伪分布模式为开发和测试提供了一个便捷的环境,使得开发者可以在本地机器上模拟一个完整的Hadoop集群,从而加快开发和调试过程。

在实际生产环境中,Hadoop通常运行在分布式集群上,但伪分布模式为我们提供了一个良好的起点,帮助我们更好地理解Hadoop的工作原理和配置方法。希望本文能够帮助读者顺利配置和使用Hadoop的伪分布模式。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI