简介:本文详细介绍Hadoop单机部署的全流程,涵盖环境准备、安装配置、验证测试及常见问题解决,助力开发者快速上手。
Hadoop作为分布式计算的标杆框架,广泛应用于大数据处理场景。对于开发者而言,单机部署是理解其架构原理、验证功能特性的最佳起点。本文将从环境准备、安装配置、验证测试三个维度,系统性阐述Hadoop单机部署的全流程,并提供可复用的实践方案。
Hadoop单机部署对系统资源的需求相对较低,但需满足以下条件:
java -version
验证)。
ssh-keygen -t rsa # 生成密钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥到授权列表
chmod 600 ~/.ssh/authorized_keys # 修改权限
gzip
、bzip2
等压缩库,支持数据压缩传输。
sudo ufw disable # Ubuntu关闭防火墙
# 或通过iptables开放端口
/etc/hosts
文件添加本地映射:
127.0.0.1 localhost
127.0.1.1 your-hostname
从Apache官网下载稳定版(如3.3.4),解压至指定目录:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /opt/
cd /opt/hadoop-3.3.4
编辑~/.bashrc
或/etc/profile
,添加Hadoop路径:
export HADOOP_HOME=/opt/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
source ~/.bashrc # 使配置生效
设置Java路径和内存参数:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_HEAPSIZE=2048 # 设置堆内存大小
配置HDFS默认地址和临时目录:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop</value>
</property>
</configuration>
定义HDFS副本数和NameNode数据目录:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> # 单机模式副本数为1
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/tmp/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/tmp/hadoop/dfs/data</value>
</property>
</configuration>
指定MapReduce框架为YARN:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置YARN资源管理器地址:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
首次启动前需格式化NameNode:
hdfs namenode -format
输出中看到Storage directory ... has been successfully formatted
即表示成功。
依次启动HDFS和YARN:
start-dfs.sh # 启动HDFS(NameNode + DataNode)
start-yarn.sh # 启动YARN(ResourceManager + NodeManager)
jps # 查看进程,应包含NameNode、DataNode、ResourceManager等
hdfs dfs -mkdir /test # 创建目录
hdfs dfs -put localfile.txt /test # 上传文件
hdfs dfs -ls /test # 列出目录内容
hdfs dfs -cat /test/localfile.txt # 查看文件内容
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 2 5
输出中应显示计算出的π值近似值。
http://localhost:9870
(查看文件系统状态)http://localhost:8088
(监控作业执行)若端口被占用,修改配置文件中的端口号(如fs.defaultFS
改为9001),或终止占用进程:
netstat -tulnp | grep 9000 # 查找占用进程
kill -9 <PID> # 终止进程
确保/tmp/hadoop
目录可写,或通过chmod
修改权限:
sudo chmod -R 777 /tmp/hadoop
调整hadoop-env.sh
中的HADOOP_HEAPSIZE
值,或优化MapReduce任务的内存分配:
<property>
<name>mapreduce.map.memory.mb</name>
<value>1024</value>
</property>
$HADOOP_HOME/logs/
下的日志文件排查问题。dfs.blocksize
(默认128MB)和mapreduce.task.io.sort.mb
(排序缓冲区大小)。Hadoop单机部署是掌握分布式计算原理的起点,通过本文的详细步骤,开发者可快速完成环境搭建与功能验证。后续可结合实际业务场景,探索HDFS高可用、YARN资源调度等高级特性,为大数据处理奠定坚实基础。