目录
前言
在大数据时代,Hadoop 作为分布式计算的基石,是每个开发者必须掌握的技术之一。本文将手把手教你如何快速搭建Hadoop环境、操作HDFS文件系统,并运行经典的WordCount词频统计程序。无论你是大数据新手还是需要温故知新,这篇指南都能让你30分钟内上手Hadoop!
一、Hadoop简介与核心组件
1.1 Hadoop是什么?
Hadoop是由Apache基金会开发的开源分布式计算框架,核心解决 海量数据存储(HDFS) 和 分布式计算(MapReduce) 问题。
1.2 核心组件
组件 | 作用 |
---|---|
HDFS | 分布式文件系统,数据分块存储在多台机器 |
MapReduce | 分布式计算模型,分Map和Reduce两阶段处理 |
YARN | 资源调度管理器,负责集群资源分配 |
二、环境搭建(单机版)
2.1 准备工作
-
系统要求:Linux/MacOS(Windows需使用WSL)
-
安装Java:JDK 8+
sudo apt install openjdk-11-jdk # Ubuntu示例
2.2 安装Hadoop
-
下载解压:
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz tar -zxvf hadoop-3.3.6.tar.gz mv hadoop-3.3.6 /opt/hadoop # 移动到指定目录
-
配置环境变量:
编辑~/.bashrc
文件,添加:export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际路径修改
执行
source ~/.bashrc
生效。 -
修改配置文件:
-
core-site.xml(配置HDFS地址):
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
-
hdfs-site.xml(配置副本数,单机设为1):
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
-
三、HDFS基础操作
3.1 启动HDFS
# 首次使用需格式化NameNode(仅一次!)
hdfs namenode -format
# 启动HDFS服务
start-dfs.sh
3.2 常用命令
命令 | 说明 |
---|---|
hdfs dfs -mkdir /test | 创建目录 |
hdfs dfs -put local.txt /test | 上传本地文件到HDFS |
hdfs dfs -ls /test | 查看目录内容 |
hdfs dfs -cat /test/local.txt | 查看文件内容 |
hdfs dfs -rm -r /test | 递归删除目录 |
四、运行第一个MapReduce程序:WordCount
4.1 示例代码与数据准备
-
创建测试文件:
echo "hello hadoop hello world" > input.txt
-
上传数据到HDFS:
hdfs dfs -mkdir /input hdfs dfs -put input.txt /input
4.2 执行WordCount任务
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
wordcount /input /output
4.3 查看结果
hdfs dfs -cat /output/part-r-00000
输出示例:
hadoop 1
hello 2
world 1
五、YARN资源管理
5.1 启动YARN
start-yarn.sh
5.2 常用命令
-
查看运行中的任务:
yarn application -list
-
终止任务:
yarn application -kill <Application_ID>
六、Web监控界面
-
HDFS状态:
http://localhost:9870
-
YARN任务监控:
http://localhost:8088
七、常见问题解决
7.1 权限错误
报错:Permission denied
解决:在 hdfs-site.xml
中添加:
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
7.2 端口冲突
检查 9000
、9870
、8088
端口是否被占用:
netstat -tuln | grep <端口号>
7.3 查看日志
日志路径:$HADOOP_HOME/logs/
推荐使用 tail -f
实时追踪日志:
tail -f $HADOOP_HOME/logs/hadoop-*-namenode-*.log
结语
通过本文,你已经学会了Hadoop的安装、HDFS操作和MapReduce任务的运行。接下来可以尝试:
-
使用 Hive 进行SQL化数据处理
-
学习 HBase 实现实时数据存储
-
探索 Spark 更高效的内存计算
动手实践是学习的最佳途径!如果在操作中遇到问题,欢迎在评论区留言讨论。
相关资源: