本文目录导读:
《Hadoop伪分布式搭建失败后的重新搭建全攻略》
失败后重新搭建的准备工作
(一)清理之前的残留文件
1、删除旧的Hadoop安装目录
- 如果之前的Hadoop安装在/usr/local/hadoop
(这是常见的安装路径,实际根据自己的安装情况而定),可以使用命令rm -rf /usr/local/hadoop
来彻底删除该目录及其所有内容,这样做是为了确保新的安装不会受到旧文件的干扰。
图片来源于网络,如有侵权联系删除
2、清理相关的环境变量配置
- 检查/etc/profile
或者~/.bashrc
文件中的Hadoop相关环境变量配置,如果有旧的配置内容,需要将其删除或者注释掉,如果之前配置了export HADOOP_HOME=/usr/local/hadoop
和export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
,需要将这两行删除或者在前面加上#
进行注释。
3、清理Hadoop数据目录
- Hadoop默认的数据存储目录(如/tmp/hadoop - username
,其中username
是当前系统用户名)也需要清理,可以使用命令rm -rf /tmp/hadoop
来删除这些临时数据目录,这一步很重要,因为旧的数据可能会导致新的搭建过程中出现数据冲突等问题。
(二)重新安装依赖包
1、Java环境检查与重新安装(如果必要)
- Hadoop运行依赖于Java环境,首先检查系统中是否已经安装了Java,可以使用命令java -version
来查看,如果没有安装或者安装的版本不符合要求(Hadoop 3.x通常要求Java 8或更高版本),需要重新安装。
- 在Ubuntu系统中,可以使用命令sudo apt - get update
和sudo apt - get install openjdk - 8 - jdk
来安装Java 8,安装完成后,再次检查Java版本以确保安装成功。
2、其他依赖包安装
- Hadoop可能还依赖于一些其他的系统包,如SSH相关的包(用于节点间的通信),在Ubuntu系统中,可以使用命令sudo apt - get install ssh
和sudo apt - get install rsync
来安装SSH和Rsync相关的包,对于CentOS系统,可以使用yum
命令来进行类似的安装操作,如yum install openssh - server
和yum install rsync
。
重新搭建Hadoop伪分布式的步骤
(一)下载与解压Hadoop安装包
1、下载合适版本的Hadoop
- 访问Hadoop官方网站(https://hadoop.apache.org/releases.html),根据自己的需求选择合适的Hadoop版本进行下载,选择Hadoop 3.3.0版本,对于Ubuntu系统,可以使用命令wget https://dlcdn.apache.org/hadoop/common/hadoop - 3.3.0/hadoop - 3.3.0.tar.gz
在终端中进行下载。
2、解压安装包
- 下载完成后,使用命令tar -zxvf hadoop - 3.3.0.tar.gz
将安装包解压到指定的目录,如/usr/local
目录下,解压后,可以将目录名修改为更简洁的名称,如hadoop
,可以使用命令mv hadoop - 3.3.0 hadoop
。
(二)配置Hadoop环境变量
1、编辑环境变量配置文件
- 打开/etc/profile
文件(使用命令sudo vi /etc/profile
),在文件末尾添加以下内容:
```
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
```
- 保存并退出文件后,在终端中执行命令source /etc/profile
使环境变量配置生效。
(三)配置Hadoop核心文件
1、编辑hadoop - env.sh文件
- 在$HADOOP_HOME/etc/hadoop
目录下找到hadoop - env.sh
文件,打开该文件(使用命令vi hadoop - env.sh
),找到export JAVA_HOME
这一行,将其修改为系统中Java安装的实际路径,如果Java安装在/usr/lib/jvm/java - 8 - openjdk - amd64
,则修改为export JAVA_HOME=/usr/lib/jvm/java - 8 - openjdk - amd64
。
图片来源于网络,如有侵权联系删除
2、编辑core - site.xml文件
- 在同一目录下找到core - site.xml
文件,打开并编辑,添加以下配置内容:
```xml
<?xml version="1.0" encoding="UTF - 8"?>
<?xml - stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop - username</value>
</property>
</configuration>
```
- 这里将Hadoop的默认文件系统设置为本地的HDFS,端口为9000,同时指定了临时文件的存储目录。
3、编辑hdfs - site.xml文件
- 同样在该目录下编辑hdfs - site.xml
文件,添加以下配置:
```xml
<?xml version="1.0" encoding="UTF - 8"?>
<?xml - stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/tmp/hadoop - username/dfs/name</value>
图片来源于网络,如有侵权联系删除
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/tmp/hadoop - username/dfs/data</value>
</property>
</configuration>
```
- 设置数据块的副本数为1(因为是伪分布式环境),并指定了NameNode和DataNode的数据存储目录。
(四)格式化NameNode
1、执行格式化命令
- 在终端中执行命令hdfs namenode - format
,这个命令会初始化HDFS的文件系统,创建相关的目录结构等,如果格式化成功,会看到类似 “INFO common.Storage: Storage directory /tmp/hadoop - username/dfs/name has been successfully formatted.” 的提示信息。
(五)启动Hadoop服务
1、启动HDFS服务
- 使用命令start - dfs.sh
来启动HDFS相关的服务,包括NameNode和DataNode,启动成功后,可以通过命令jps
查看进程是否正常启动,如果看到NameNode
和DataNode
进程,表示HDFS服务启动成功。
2、启动YARN服务(如果需要)
- 如果要使用YARN(用于资源管理和任务调度),可以使用命令start - yarn.sh
来启动YARN相关的服务,包括ResourceManager和NodeManager,启动后同样使用jps
命令查看进程,应该能看到ResourceManager
和NodeManager
进程。
测试重新搭建的Hadoop伪分布式环境
(一)创建HDFS目录并上传文件
1、创建目录
- 使用命令hdfs dfs - mkdir /test
在HDFS中创建一个名为/test
的目录。
2、上传文件
- 可以使用命令hdfs dfs - put local_file_path /test
将本地文件上传到HDFS的/test
目录中,如果本地有一个名为test.txt
的文件,可以使用命令hdfs dfs - put test.txt /test
。
(二)运行MapReduce示例程序
1、运行示例程序
- Hadoop自带了一些MapReduce的示例程序,可以用来测试环境是否正常工作,可以运行hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop - mapreduce - examples - 3.3.0.jar wordcount /test/input /test/output
,这个命令会对/test/input
目录下的文件(如果没有则需要先创建并上传文件)进行单词计数,并将结果输出到/test/output
目录。
2、查看结果
- 可以使用命令hdfs dfs - cat /test/output/part - r - 00000
来查看单词计数的结果,以验证MapReduce程序是否正确运行,如果能够看到正确的单词计数结果,说明重新搭建的Hadoop伪分布式环境工作正常。
通过以上步骤,即使之前的Hadoop伪分布式搭建失败,也能够重新成功搭建并测试环境,在整个过程中,要注意每一步的配置细节,确保各个组件之间的协调工作。
评论列表