如何在……上安装Hadoop Ubuntu下载和安装步骤

在本教程中,我们将逐步指导您如何在 Linux 系统上安装 Apache Hadoop(Ubuntu这是一个两步过程:首先下载并安装该版本,然后进行配置。
有两个前提条件:
此配置的 Hadoop 3.x 版本说明
本教程中的屏幕截图是在 Hadoop 2.2.0 版本上截取的。虽然当前版本中的步骤顺序没有改变,但部分名称和默认值有所更改。在直接复制任何命令之前,请务必查看下表。
| 设置或步骤 | 本教程(Hadoop 2.x) | 当前 Hadoop 3.x |
|---|---|---|
| 发布存档 | hadoop-2.2.0.tar.gz |
hadoop-3.5.0.tar.gz首个稳定的 3.5 版本于 2026 年 4 月 2 日发布。 |
| 默认文件系统属性 | fs.default.name 散文中, fs.defaultFS 在 XML 中 |
fs.defaultFS 只要; fs.default.name 已弃用 |
| MapReduce属性 | mapreduce.jobtracker.address |
mapreduce.framework.name 设置 yarn工作Trac一旦 YARN 调度了工作,ker 就不再存在了。 |
| mapred-站点.xml | 复制自 mapred-site.xml.template |
船舶在 etc/hadoop 已经如此,所以复制步骤是不必要的。 |
| NameNode Web UI 端口 | 50070 | 9870 |
| Java | Java 6或 Java 7 | Java 8或 Java 11 |
本指南中的其他所有内容在 Hadoop 3 上的行为方式都相同:专用帐户、SSH 密钥、四个配置文件以及启动和停止脚本。
第 1 部分)下载并安装 Hadoop
步骤 1)添加 Hadoop 系统用户
使用以下命令添加 Hadoop 系统用户。
sudo addgroup hadoop_
sudo adduser --ingroup hadoop_ hduser_
输入您的密码、姓名和其他详细信息。
注意: 此设置和安装过程中可能出现以下错误。
“hduser 不在 sudoers 文件中。此事件将被报告。”
以root用户身份登录即可解决此错误。
执行命令
sudo adduser hduser_ sudo
Re-login as hduser_
步骤2)配置SSH
为了管理集群中的节点,Hadoop 需要 SSH 访问权限。
首先切换用户,输入以下命令
su - hduser_
此命令将创建一个新密钥。
ssh-keygen -t rsa -P ""
使用此密钥启用对本地计算机的 SSH 访问。
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
现在以“hduser_”用户身份连接到本地主机,测试 SSH 设置。
ssh localhost
注意: 如果您在执行“ssh localhost”命令时看到以下错误,则说明此系统上可能没有 SSH 服务。
为了解决这个问题
使用以下方法清除 SSH:
sudo apt-get purge openssh-server
安装前最好先进行清除操作。
使用以下命令安装 SSH:
sudo apt-get install openssh-server
步骤3)下载Hadoop
下一步是从……下载Hadoop。 Apache Hadoop 发布页面.
选择稳定
选择 tar.gz 文件(而不是以 src 结尾的文件)。
下载完成后,导航到包含 tar 文件的目录。
回车,
sudo tar xzf hadoop-2.2.0.tar.gz
现在,将 hadoop-2.2.0 重命名为 hadoop。
sudo mv hadoop-2.2.0 hadoop
最后,将文件夹交给新账户。
sudo chown -R hduser_:hadoop_ hadoop
替换为您实际下载的版本 hadoop-2.2.0 以上三个命令。
第 2 部分)配置 Hadoop
步骤 1)修改 ~/.bashrc 文件
将以下几行添加到文件 ~/.bashrc 的末尾。
#Set HADOOP_HOME export HADOOP_HOME=<Installation Directory of Hadoop> #Set JAVA_HOME export JAVA_HOME=<Installation Directory of Java> # Add bin/ directory of Hadoop to PATH export PATH=$PATH:$HADOOP_HOME/bin
现在,使用以下命令加载此环境配置。
. ~/.bashrc
步骤 2)与 HDFS 相关的配置
在文件 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中设置 JAVA_HOME,如下所示。
与
$HADOOP_HOME/etc/hadoop/core-site.xml 文件中有两个参数需要设置:
1. 'hadoop.tmp.dir' – 用于指定 Hadoop 将用于存储其数据文件的目录。
2. 'fs.defaultFS' – 此属性指定默认文件系统。同一属性的旧名称 'fs.default.name' 已弃用。
要设置这些参数,请打开 core-site.xml
sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml
将以下几行复制到标签。
<property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> <description>Parent directory for other temporary directories.</description> </property> <property> <name>fs.defaultFS </name> <value>hdfs://localhost:54310</value> <description>The name of the default file system. </description> </property>
导航到目录 $HADOOP_HOME/etc/hadoop。
现在,创建 core-site.xml 中提到的目录。
sudo mkdir -p <Path of Directory used in above setting>
授予目录权限。
sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>
sudo chmod 750 <Path of Directory created in above step>
步骤 3)MapReduce 配置
在开始这些配置之前,让我们先设置 HADOOP_HOME 路径。
sudo gedit /etc/profile.d/hadoop.sh
然后输入
export HADOOP_HOME=/home/guru99/Downloads/Hadoop
下一步进入
sudo chmod +x /etc/profile.d/hadoop.sh
退出终端并重新启动。
输入 echo $HADOOP_HOME 以验证路径。
现在复制文件
sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
打开 mapred-site.xml 文件
sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml
在以下设置之间添加以下内容:和标签。
<property> <name>mapreduce.jobtracker.address</name> <value>localhost:54311</value> <description>MapReduce job tracker runs at this host and port. </description> </property>
打开 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 文件,如下所示:
sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml
在以下位置添加设置和标签。
<property> <name>dfs.replication</name> <value>1</value> <description>Default block replication.</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hduser_/hdfs</value> </property>
创建上述设置中指定的目录。
sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs
然后授予所有权和权限。
sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs
sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs
步骤 4)格式化 HDFS
在首次启动 Hadoop 之前,请使用以下命令格式化 HDFS。
$HADOOP_HOME/bin/hdfs namenode -format
步骤 5)启动 Hadoop 单节点集群
使用以下命令启动Hadoop单节点集群。
$HADOOP_HOME/sbin/start-dfs.sh
上述命令的输出结果如下所示。
然后启动 YARN 守护进程。
$HADOOP_HOME/sbin/start-yarn.sh
使用“jps”工具,验证所有与Hadoop相关的进程是否都在运行。
如果 Hadoop 已成功启动,jps 输出应列出 NameNode、NodeManager、ResourceManager、SecondaryNameNode 和 DataNode。
步骤 6)停止ping Hadoop的
按相反顺序关闭集群。
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/stop-yarn.sh
如何验证Hadoop是否正在运行并修复常见错误
jps 输出确认进程已启动,但无法确认集群是否可用。还需要进行四项额外的检查来解决这个问题。
- 打开 NameNode Web 界面
http://localhost:9870(Hadoop 2.x 上的 50070 端口)并确认摘要报告显示有一个活动节点。 - 打开 ResourceManager 界面
http://localhost:8088确认 YARN 已接受 NodeManager。 - 运行
hdfs dfsadmin -report容量、实时数据节点和任何副本不足的数据块。 - 写点什么:
hdfs dfs -mkdir /test其次是hdfs dfs -ls /证明命名空间接受更改。
大多数初次失败都可归为以下五类之一。
| 症状 | 原因 | 固定 |
|---|---|---|
| 未设置 JAVA_HOME,也找不到 JAVA_HOME。 | 该变量已在 .bashrc 文件中导出,但未在 hadoop-env.sh 文件中导出。 | 同时在 hadoop-env.sh 中设置 JDK 的绝对路径 |
| SSH 本地主机连接请求被拒绝(公钥、密码)。 | authorized_keys 缺失或权限过大 | 重新添加 id_rsa.pub 文件,然后对 ~/.ssh/authorized_keys 文件运行 chmod 600 命令。 |
| 端口 22 的连接被拒绝 | openssh-server 未安装或未运行 | 安装 openssh-server 并启动 ssh 服务 |
| 重新格式化后,jps 中缺少 DataNode。 | Cluster 格式化后的 NameNode 与旧 DataNode 目录之间的 ID 不匹配 | 清空 dfs.datanode.data.dir 文件夹,然后再次格式化 |
| start-dfs.sh:命令未找到 | 当前 shell 中从未加载过 HADOOP_HOME 和 PATH。 | 运行 `.~/.bashrc` 或打开一个新的终端。 |





























