Ubuntu Hadoop应用如何部署
导读:Ubuntu 上部署 Hadoop 的可执行指南 一 环境准备与规划 准备至少一台 Ubuntu 20.04/22.04 主机(虚拟机或物理机),建议内存 ≥4GB、磁盘 ≥50GB,并配置 静态 IP 或可解析的主机名。 安装 Java...
Ubuntu 上部署 Hadoop 的可执行指南
一 环境准备与规划
- 准备至少一台 Ubuntu 20.04/22.04 主机(虚拟机或物理机),建议内存 ≥4GB、磁盘 ≥50GB,并配置 静态 IP 或可解析的主机名。
- 安装 Java 8(OpenJDK 8),Hadoop 3.x 系列对 Java 8 兼容性最好。
- 创建专用用户(如 hadoop),并为后续 SSH 免密登录做准备。
- 规划部署模式:
- 单机模式(Local):仅用于学习 API,不启动 HDFS/YARN。
- 伪分布式(Pseudo-Distributed):单机上运行所有守护进程,适合功能验证。
- 完全分布式(Multi-Node):多台主机组成集群,适合生产或性能测试。
二 单机与伪分布式部署步骤
- 安装 Java 与基础工具
- 安装 JDK:sudo apt update & & sudo apt install -y openjdk-8-jdk
- 验证:java -version、javac -version
- 创建 Hadoop 用户与目录
- sudo adduser hadoop & & sudo usermod -aG sudo hadoop
- 建议将 Hadoop 安装至 /opt/hadoop(或 /usr/local/hadoop),并 chown -R hadoop:hadoop
- 配置 SSH 免密登录(本机回环)
- sudo apt install -y openssh-server
- su - hadoop & & ssh-keygen -t rsa -P ‘’
- cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys & & chmod 600 ~/.ssh/authorized_keys
- ssh localhost 测试无密码登录
- 下载并解压 Hadoop(示例版本 3.3.6)
- wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
- sudo tar -xzf hadoop-3.3.6.tar.gz -C /opt & & sudo mv /opt/hadoop-3.3.6 /opt/hadoop
- 配置环境变量(~/.bashrc 或 /etc/profile.d/hadoop.sh)
- export HADOOP_HOME=/opt/hadoop
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使生效:source ~/.bashrc
- 配置 Hadoop 关键文件($HADOOP_HOME/etc/hadoop/)
- hadoop-env.sh:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- core-site.xml:
- fs.defaultFShdfs://localhost:9000
- hdfs-site.xml:
- dfs.replication1
- dfs.namenode.name.dir/opt/hadoop/hdfs/namenode
- dfs.datanode.data.dir/opt/hadoop/hdfs/datanode
- mapred-site.xml(若不存在先 cp mapred-site.xml.template mapred-site.xml):
- mapreduce.framework.nameyarn
- yarn-site.xml:
- yarn.nodemanager.aux-servicesmapreduce_shuffle
- yarn.nodemanager.env-whitelistJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
- 创建数据目录并赋权
- sudo mkdir -p /opt/hadoop/hdfs/{ namenode,datanode}
- sudo chown -R hadoop:hadoop /opt/hadoop/hdfs
- 格式化 HDFS(仅首次)
- hdfs namenode -format
- 启动与验证
- 启动:start-dfs.sh & & start-yarn.sh
- 进程:jps 应看到 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager
- Web UI:HDFS NameNode http://localhost:9870;YARN http://localhost:8088
- 运行示例 WordCount
- hdfs dfs -mkdir -p /user/hadoop/input
- hdfs dfs -put $HADOOP_HOME/README.txt /user/hadoop/input
- hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /user/hadoop/input /user/hadoop/output
- hdfs dfs -cat /user/hadoop/output/part-r-00000
三 完全分布式部署要点
- 节点规划(示例三台):
- master:NameNode、ResourceManager
- slave1/slave2:DataNode、NodeManager
- 基础网络与主机名
- 每台机器设置唯一 /etc/hostname(如 master、slave1、slave2)
- 统一 /etc/hosts(示例):
- 192.168.1.10 master
- 192.168.1.11 slave1
- 192.168.1.12 slave2
- 在所有节点创建 hadoop 用户,配置 SSH 免密登录(master 能免密登录各 slave,slave 之间可按需配置)
- 安装与目录:各节点相同版本的 Java 8 与 Hadoop 3.3.x,目录一致(如 /opt/hadoop)
- 配置文件($HADOOP_HOME/etc/hadoop/)
- core-site.xml:
- fs.defaultFShdfs://master:9000
- hdfs-site.xml:
- dfs.replication2
- dfs.namenode.name.dir/opt/hadoop/hdfs/namenode
- dfs.datanode.data.dir/opt/hadoop/hdfs/datanode
- yarn-site.xml:
- yarn.resourcemanager.hostnamemaster
- yarn.nodemanager.aux-servicesmapreduce_shuffle
- workers(或 slaves):每行一个 slave 主机名(slave1、slave2)
- core-site.xml:
- 仅在 master 上格式化 NameNode:hdfs namenode -format
- 启动与验证
- master 执行:start-dfs.sh、start-yarn.sh
- jps 在各节点核对进程;访问 http://master:9870(HDFS)、http://master:8088(YARN)
- 常见问题
- 主机名解析失败:检查 /etc/hosts 与 DNS
- SSH 无法免密:权限 600/700、authorized_keys 内容一致
- 多次格式化 NameNode:会导致 ClusterID 不一致,需清理数据目录或手动对齐 ClusterID 后再格式化
四 运维与常见问题
- 常用命令
- 启停:start-dfs.sh、start-yarn.sh;stop-dfs.sh、stop-yarn.sh
- 单进程:hadoop-daemon.sh start namenode/datanode/secondarynamenode;yarn-daemon.sh start resourcemanager/nodemanager
- 查看日志:$HADOOP_HOME/logs/(按组件名定位)
- 端口与访问
- HDFS NameNode:9870;YARN:8088;历史服务器(可选)19888
- 权限与目录
- 建议以 hadoop 用户运行;HDFS 目录权限与本地目录权限保持一致
- 数据目录提前创建并赋权,避免启动失败
- 性能与资源
- 伪分布式副本数保持 1;完全分布式根据节点数设置 dfs.replication(通常 2~3)
- 根据内存调整 yarn.nodemanager.resource.memory-mb 与容器内存参数,避免 OOM
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Hadoop应用如何部署
本文地址: https://pptw.com/jishu/760183.html
