银河麒麟部署hadoop需分场景适配:一、x86_64桌面版可apt一键安装openjdk 11与hadoop组件;二、arm64(飞腾平台)须用aarch64构建版并禁用不支持gc;三、伪分布式模式需配置ssh免密、hosts映射及单节点核心参数;四、须适配kysec安全策略,设置selinux上下文与audit放行规则1。1 ↩

如果您在银河麒麟操作系统上部署Hadoop环境以支持大数据开发,但遇到Java环境缺失、SSH通信失败或HDFS无法启动等问题,则很可能是由于基础依赖未就绪或配置未适配麒麟系统特性。以下是多种可行的安装与配置方法:
一、基于APT包管理器的一键式JDK与Hadoop安装
该方法适用于银河麒麟V10桌面版(x86_64)且已接入官方软件源的场景,可快速拉取预编译适配包,避免手动编译兼容性问题。
1、更新系统软件源并升级内核及基础工具:
sudo apt-get update && sudo apt-get upgrade -y
2、安装OpenJDK 11(银河麒麟V10默认源中已验证兼容):
sudo apt-get install openjdk-11-jdk-headless -y
3、配置JAVA_HOME环境变量:
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' | sudo tee -a /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
4、安装Hadoop二进制包(若源中提供):
sudo apt-get install hadoop-hdfs-namenode hadoop-yarn-resourcemanager -y
5、验证Java与Hadoop版本:
java -version
hadoop version 命令应输出 3.3.x 或更高版本,且无 NoClassDefFoundError 报错
二、ARM架构麒麟系统手动部署Hadoop(适配飞腾CPU)
该方法专用于银河麒麟V10 ARM64版本(如Phytium FT-2000/4平台),需使用官方提供的aarch64构建版Hadoop,避免x86指令集不兼容导致的Segmentation Fault。
1、确认系统架构与内核版本:
uname -m && cat /etc/os-release | grep -E "(VERSION|NAME)"
2、下载适配ARM的Hadoop发行包:
wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1-aarch64.tar.gz -P /tmp/
3、解压至标准路径并建立软链接:
sudo tar -zxvf /tmp/hadoop-3.3.1-aarch64.tar.gz -C /opt/
sudo ln -sf /opt/hadoop-3.3.1 /opt/hadoop
4、配置hadoop-env.sh中的JVM参数(禁用不支持的GC选项):
sed -i 's/-XX:+UseG1GC//g' /opt/hadoop/etc/hadoop/hadoop-env.sh
echo 'export HADOOP_OPTS="-Djava.awt.headless=true"' >> /opt/hadoop/etc/hadoop/hadoop-env.sh
5、设置HADOOP_HOME与PATH:
echo 'export HADOOP_HOME=/opt/hadoop' | sudo tee -a /etc/profile
echo 'export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
6、执行 hadoop checknative -a 命令,输出中所有 native library 状态必须为 true,否则需重新编译对应aarch64 native库
三、单机伪分布式模式快速验证配置
该方法跳过集群规划与多节点同步,仅在单台银河麒麟主机上启用NameNode、DataNode、ResourceManager、NodeManager全部角色,用于开发调试与功能验证,避免网络配置错误干扰。
1、关闭防火墙并禁用SELinux(麒麟系统默认未启用SELinux,但需确认):
sudo systemctl stop ufw
sudo systemctl disable ufw
2、配置本地hosts映射(防止localhost解析异常):
echo '127.0.0.1 localhost' | sudo tee /etc/hosts
echo '127.0.0.1 node1' | sudo tee -a /etc/hosts
3、启用SSH免密登录(Hadoop脚本依赖ssh localhost):
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
4、编辑core-site.xml(/opt/hadoop/etc/hadoop/core-site.xml):
5、编辑hdfs-site.xml(副本数设为1以适配单磁盘):
6、格式化HDFS文件系统并启动服务:
/opt/hadoop/bin/hdfs namenode -format
/opt/hadoop/sbin/start-dfs.sh
/opt/hadoop/sbin/start-yarn.sh
7、访问 http://localhost:9870 查看NameNode WebUI,状态栏显示 “Safe mode is OFF” 且 Live Nodes ≥ 1 即表示伪分布式运行成功
四、麒麟系统专用安全加固适配配置
该方法针对银河麒麟国产操作系统特有的安全模块(如kysec、auditd)和默认权限策略,规避因强制访问控制(MAC)或审计日志拦截导致Hadoop进程被kill或端口绑定失败。
1、检查kysec安全策略状态:
sudo kysec status
2、若处于Enforcing模式,临时切换为Permissive(仅调试阶段):
sudo kysec setenforce 0
3、为Hadoop相关目录添加安全上下文标签(适配kysec):
sudo semanage fcontext -a -t usr_t "/opt/hadoop(/.*)?"
sudo restorecon -Rv /opt/hadoop
4、配置audit规则放行Hadoop关键系统调用:
echo '-a always,exit -F arch=b64 -S bind,connect,accept -F uid>=1000 -k hadoop_net' | sudo auditctl -I
5、修改hadoop-env.sh,显式指定用户身份(避免以root启动触发安全拦截):
echo 'export HDFS_NAMENODE_USER="hadoop"' >> /opt/hadoop/etc/hadoop/hadoop-env.sh
echo 'export HDFS_DATANODE_USER="hadoop"' >> /opt/hadoop/etc/hadoop/hadoop-env.sh
echo 'export YARN_RESOURCEMANAGER_USER="hadoop"' >> /opt/hadoop/etc/hadoop/hadoop-env.sh
echo 'export YARN_NODEMANAGER_USER="hadoop"' >> /opt/hadoop/etc/hadoop/hadoop-env.sh
6、执行 ps aux | grep -E "(NameNode|DataNode|ResourceManager)",所有进程UID必须为 hadoop 用户,且无 audit.log 中 "avc: denied" 相关拒绝记录











