Hadoop快速搭建指南

Hadoop快速搭建指南

前言

作为一个处理大数据的工具,Hadoop已经成为许多企业进行数据处理和分析的首选。但如果你第一次接触它,设置和配置可能看起来有点棘手。因此,我将为你提供一个详细的指南,让你可以快速搭建并运行Hadoop集群。

环境

  • 操作系统:Ubuntu 22.04 LTS
  • Hadoop版本:3.3.6
  • Java版本:OpenJDK 11

准备工作

在开始之前,你需要确保系统上已经安装了Java 11。你可以使用以下命令进行安装:

bash 复制代码
sudo apt update
sudo apt install -y openjdk-11-jdk

安装完成后,确认Java版本:

bash 复制代码
java -version

输出应该类似于:

bash 复制代码
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode)

下载并安装Hadoop

接下来,让我们下载并安装Hadoop。

步骤1:下载Hadoop

你可以直接从Apache Hadoop官网下载最新版:

bash 复制代码
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

步骤2:解压缩并移动Hadoop

解压缩下载的文件并将其移动到/usr/local目录:

bash 复制代码
tar -xzvf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop

步骤3:配置环境变量

为了方便使用Hadoop命令行工具,编辑~/.bashrc并添加以下行:

bash 复制代码
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

然后运行以下命令使更改生效:

bash 复制代码
source ~/.bashrc

步骤4:配置Hadoop

为了让Hadoop正常工作,需要进行一些配置。

编辑hadoop-env.sh

/usr/local/hadoop/etc/hadoop目录中找到hadoop-env.sh文件,并确保以下行指向正确的Java安装路径:

bash 复制代码
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
配置core-site.xml

创建和编辑/usr/local/hadoop/etc/hadoop/core-site.xml文件,添加以下内容:

xml 复制代码
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>
配置hdfs-site.xml

编辑/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件,添加以下内容:

xml 复制代码
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>
配置mapred-site.xml

复制mapred-site.xml.templatemapred-site.xml并编辑:

bash 复制代码
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

添加以下内容:

xml 复制代码
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>
配置yarn-site.xml

编辑/usr/local/hadoop/etc/hadoop/yarn-site.xml文件,添加以下内容:

xml 复制代码
<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>

格式化NameNode

在启动Hadoop之前,需要格式化Hadoop文件系统。运行以下命令:

bash 复制代码
hdfs namenode -format

启动Hadoop

Hadoop配置完成后,可以启动相关服务。

启动HDFS

bash 复制代码
start-dfs.sh

启动YARN

bash 复制代码
start-yarn.sh

验证Hadoop是否运行

可以通过访问以下URL来验证Hadoop是否成功运行:

  • HDFS NameNodehttp://localhost:9870/
  • YARN ResourceManagerhttp://localhost:8088/

如果看到相关的仪表盘,则说明Hadoop成功启动。

简单的WordCount示例

为了验证Hadoop集群是否可以正常工作,可以使用一个简单的WordCount示例。

创建输入文件夹并添加示例数据

bash 复制代码
hdfs dfs -mkdir -p /user/hadoop/input
echo "Hello Hadoop Hello World" > input.txt
hdfs dfs -put input.txt /user/hadoop/input

运行WordCount示例

bash 复制代码
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /user/hadoop/input /user/hadoop/output

查看输出结果

bash 复制代码
hdfs dfs -cat /user/hadoop/output/part-r-00000

输出结果应类似于:

plaintext 复制代码
Hello 2
Hadoop 1
World 1

常见问题及注意事项

  • 无法连接到HDFS NameNode :确保core-site.xmlfs.defaultFS的地址正确。
  • Java版本兼容问题 :确保JAVA_HOME路径和hadoop-env.sh中的Java路径一致。
  • 端口冲突问题:如果出现端口被占用的情况,请检查是否有其他服务占用了Hadoop的默认端口。
复制代码
相关推荐
计艺回忆路4 小时前
从Podman开始一步步构建Hadoop开发集群
hadoop
计算机源码社1 天前
分享一个基于Hadoop的二手房销售签约数据分析与可视化系统,基于Python可视化的二手房销售数据分析平台
大数据·hadoop·python·数据分析·毕业设计项目·毕业设计源码·计算机毕设选题
计算机毕设残哥1 天前
完整技术栈分享:基于Hadoop+Spark的在线教育投融资大数据可视化分析系统
大数据·hadoop·python·信息可视化·spark·计算机毕设·计算机毕业设计
计算机源码社2 天前
分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
大数据·hadoop·数据分析·spark·计算机毕业设计源码·计算机毕设选题·大数据选题推荐
beijingliushao2 天前
33-Hive SQL DML语法之查询数据-2
hive·hadoop·sql
Lx3522 天前
如何正确选择Hadoop数据压缩格式:Gzip vs LZO vs Snappy
大数据·hadoop
让头发掉下来2 天前
Hive 创建事务表的方法
大数据·hive·hadoop
Q_Q19632884753 天前
python基于Hadoop的超市数据分析系统
开发语言·hadoop·spring boot·python·django·flask·node.js
计算机毕业设计木哥3 天前
计算机毕设大数据选题推荐 基于spark+Hadoop+python的贵州茅台股票数据分析系统【源码+文档+调试】
大数据·hadoop·python·计算机网络·spark·课程设计
W.A委员会3 天前
SpringMVC
数据仓库·hive·hadoop·spring