Ubuntu Hadoop 怎样进行部署
小樊
36
2025-12-12 21:14:17
Ubuntu 上部署 Hadoop 的实用步骤
一 环境准备
- 更新系统并安装基础软件:sudo apt update && sudo apt install -y openjdk-11-jdk openssh-server。
- 配置 Java 环境变量(示例为 OpenJDK 11):编辑 ~/.bashrc,加入
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
执行 source ~/.bashrc 生效。
- 配置 SSH 免密登录本机:ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa;cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;chmod 0600 ~/.ssh/authorized_keys;可 ssh localhost 验证无需密码。
二 安装与目录规划
- 下载并解压 Hadoop(示例版本为 3.3.4):
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
sudo tar -xzf hadoop-3.3.4.tar.gz -C /opt
sudo mv /opt/hadoop-3.3.4 /opt/hadoop
- 创建数据与临时目录(示例):
sudo mkdir -p /opt/hadoop/data/hdfs/{namenode,datanode}
sudo chown -R $USER:$USER /opt/hadoop
- 配置环境变量(~/.bashrc 或 /etc/profile.d/hadoop.sh):
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source 使其生效。
三 核心配置
- 编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- 配置 core-site.xml:
fs.defaultFS
hdfs://localhost:9000
- 配置 hdfs-site.xml(单机/伪分布建议副本为 1):
dfs.replication
1
dfs.namenode.name.dir
/opt/hadoop/data/hdfs/namenode
dfs.datanode.data.dir
/opt/hadoop/data/hdfs/datanode
- 配置 mapred-site.xml(如文件不存在先 cp mapred-site.xml.template mapred-site.xml):
mapreduce.framework.name
yarn
- 配置 yarn-site.xml:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
四 启动与验证
- 首次启动前格式化 HDFS:hdfs namenode -format
- 启动服务:start-dfs.sh 与 start-yarn.sh(或使用 start-all.sh)
- 进程检查:jps 应看到 NameNode、DataNode、ResourceManager、NodeManager
- Web 界面:
- HDFS NameNode:http://localhost:50070
- YARN ResourceManager:http://localhost:8088
- 运行示例(确保已创建输入目录并放入文件):
hdfs dfs -mkdir -p /user/$USER/input
hdfs dfs -put $HADOOP_HOME/README.txt /user/$USER/input
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /user/$USER/input /user/$USER/output
hdfs dfs -cat /user/$USER/output/part-r-00000
- 停止服务:stop-dfs.sh 与 stop-yarn.sh
五 常见问题与扩展
- 端口被占用:修改相应配置中的端口(如 fs.defaultFS 端口、ResourceManager 端口),或释放占用进程后重启。
- 权限问题:确保 /opt/hadoop 与数据目录归属当前用户,必要时使用 chown/chmod 修正。
- 内存不足:在 hadoop-env.sh 中调小 HADOOP_HEAPSIZE_MAX 等参数以适配单机资源。
- 集群扩展思路:准备多台 Ubuntu 主机,统一 SSH 免密、统一 JAVA_HOME/HADOOP_HOME,在 workers(或旧版 slaves)中列出所有节点主机名,配置 core-site.xml/hdfs-site.xml 的 fs.defaultFS 与副本数,使用 start-dfs.sh/start-yarn.sh 启动集群,通过 http://<主节点IP>:50070 与 http://<主节点IP>:8088 访问。