Debian Hadoop如何安装与配置
导读:Debian 上安装与配置 Hadoop 实战指南 一 环境准备 规划节点与主机名:建议至少 1 台 NameNode + 1 台 ResourceManager(可与 NameNode 同机)+ 多台 DataNode/NodeMana...
Debian 上安装与配置 Hadoop 实战指南
一 环境准备
- 规划节点与主机名:建议至少 1 台 NameNode + 1 台 ResourceManager(可与 NameNode 同机)+ 多台 DataNode/NodeManager。在每台机器的 /etc/hosts 中写入所有节点的 IP 与主机名(如 master、slave1…),确保节点间可互相解析。安装 OpenSSH 服务器 并配置 SSH 免密登录(各节点生成密钥,将公钥分发到所有节点 authorized_keys)。如使用虚拟机或云主机,建议配置 静态 IP 与 主机名,避免 DHCP 导致节点漂移。为安全与运维方便,建议创建 hadoop 用户 并在该用户下部署与启动服务。
二 安装 Java 与 Hadoop
- 安装 Java(推荐 OpenJDK 8,亦可选择 OpenJDK 11):
- 安装命令:sudo apt update & & sudo apt install -y openjdk-8-jdk(或 openjdk-11-jdk)
- 验证:java -version
- 下载并解压 Hadoop(示例版本 3.3.6,可按需替换为最新稳定版):
- 下载:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
- 解压:sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local
- 软链:sudo ln -sfn /usr/local/hadoop-3.3.6 /usr/local/hadoop
- 创建数据与日志目录(示例):
- sudo mkdir -p /usr/local/hadoop/logs
- sudo mkdir -p /usr/local/hadoop/hdfs/name
- sudo mkdir -p /usr/local/hadoop/hdfs/data
- 配置环境变量(系统级推荐写入 /etc/profile.d/hadoop.sh,便于统一生效):
- 文件内容:
- export HADOOP_HOME=/usr/local/hadoop
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使生效:source /etc/profile(或 source ~/.bashrc)
- 文件内容:
三 核心配置
- 编辑 Hadoop 环境脚本(所有节点):
- $HADOOP_HOME/etc/hadoop/hadoop-env.sh:设置 JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64(路径以本机实际为准)
- 配置 workers(所有节点,旧版为 slaves):
- $HADOOP_HOME/etc/hadoop/workers:逐行写入 DataNode/NodeManager 主机名(如 slave1、slave2…)
- 配置 core-site.xml(所有节点一致):
- 示例:
- - fs.defaultFShdfs://**master:9000** - hadoop.tmp.dir**/usr/local/hadoop/tmp** -
- 示例:
- 配置 hdfs-site.xml(所有节点一致):
- 示例:
- - dfs.replication**3** - dfs.namenode.name.dir**file:///usr/local/hadoop/hdfs/name** - dfs.datanode.data.dir**file:///usr/local/hadoop/hdfs/data** -
- 示例:
- 配置 mapred-site.xml(所有节点一致):
- 示例:
- - mapreduce.framework.name**yarn** - mapreduce.jobhistory.webapp.address**master:19888** -
- 示例:
- 配置 yarn-site.xml(所有节点一致):
- 示例:
- - yarn.resourcemanager.hostname**master** - yarn.nodemanager.aux-services**mapreduce_shuffle** - yarn.nodemanager.aux-services.mapreduce.shuffle.class**org.apache.hadoop.mapred.ShuffleHandler** -
- 示例:
- 目录权限(如使用 hadoop 用户部署):
- sudo chown -R hadoop:hadoop /usr/local/hadoop
四 启动与验证
- 在 NameNode 上格式化 HDFS(首次启动前执行一次):
- hdfs namenode -format
- 启动服务:
- 启动 HDFS:start-dfs.sh
- 启动 YARN:start-yarn.sh
- 启动历史服务(可选):mr-jobhistory-daemon.sh start historyserver
- 验证进程(任一节点执行 jps,应看到对应角色进程):
- NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager、(可选)JobHistoryServer
- 访问 Web UI(将 master 替换为实际 IP/域名):
- NameNode:http://master:9870
- ResourceManager:http://master:8088
- JobHistory:http://master:19888
- 运行示例(验证计算框架):
- 创建目录:hdfs dfs -mkdir -p /user/hadoop
- 上传文件:hdfs dfs -put $HADOOP_HOME/README.txt /user/hadoop
- 运行 WordCount:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /user/hadoop/README.txt /user/hadoop/output
- 查看结果:hdfs dfs -cat /user/hadoop/output/part-r-00000
五 常见问题与优化
- 端口与防火墙:确保 9870/8088/19888 等端口开放;如使用 ufw,可临时放行:sudo ufw allow 9870,8088,19888/tcp;生产环境建议精细放行与访问控制。
- SSH 免密:若启动脚本报 SSH 相关错误,检查 ~/.ssh/authorized_keys 是否包含所有节点公钥,且 ~/.ssh 权限为 700、authorized_keys 为 600。
- Java 路径:hadoop-env.sh 中的 JAVA_HOME 必须为本机实际路径(可用 readlink -f $(which java) 辅助定位)。
- 目录与权限:HDFS 数据与日志目录需对 hadoop 用户 可写;首次格式化后若更改目录,需清理旧元数据后再格式化。
- 资源与副本:单机或测试环境可将 dfs.replication 设为 1;生产环境建议 3 并结合磁盘与节点数规划。
- 版本选择:Hadoop 3.x 默认 NameNode HTTP 端口为 9870(2.x 为 50070),访问时请注意版本差异。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Hadoop如何安装与配置
本文地址: https://pptw.com/jishu/762732.html
