在统信uos系统中搭建hadoop开发环境需先安装openjdk 11、ssh服务端等基础依赖,再创建专用hadoop用户并配置ssh免密登录,接着下载解压hadoop 3.3.6,设置hadoop_home等环境变量,修改hadoop-env.sh指定java_home,配置core-site.xml和hdfs-site.xml实现伪分布式模式,最后格式化namenode并启动hdfs服务,通过jps和http://localhost:9870验证运行成功。

在统信UOS系统中搭建Hadoop开发环境,需绕过桌面版默认不带SSH服务端、无预装Java、缺少必要编译工具链等限制,直接从底层依赖补全开始配置。
安装基础依赖与Java运行环境
统信UOS桌面版默认未安装OpenJDK和SSH服务端,而Hadoop 3.x必须依赖Java 8或11及以上版本,且伪分布式模式强制要求sshd可运行。执行以下命令一次性安装全部基础组件:
sudo apt update && sudo apt install -y openjdk-11-jdk openssh-server vim net-tools curl wget
安装完成后验证Java路径是否可用:执行【java -version】应输出openjdk 11.x信息;若提示“Command 'java' not found”,说明系统未自动注册JAVA_HOME,需手动配置。
编辑/etc/environment文件,在末尾新增一行:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
重启终端或执行source /etc/environment使变量生效。这一步不可跳过,否则后续所有Hadoop配置都会因找不到Java而失败。
创建专用用户并配置SSH无密码登录
为避免权限混乱和安全风险,Hadoop官方明确要求使用非root用户运行。创建名为hadoop的专用账户:
sudo useradd -m -s /bin/bash hadoop && sudo passwd hadoop
将该用户加入sudo组以便临时提权:
sudo usermod -aG sudo hadoop
切换至hadoop用户:
su - hadoop
生成SSH密钥对(使用默认参数即可):
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
将公钥写入授权列表:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置authorized_keys权限为600,否则sshd会拒绝读取:
chmod 600 ~/.ssh/authorized_keys
启动SSH服务(UOS桌面版默认未启用):
sudo systemctl enable ssh && sudo systemctl start ssh
测试本地免密登录:
ssh localhost
若首次连接提示输入yes/no,输入yes后成功进入shell即表示配置完成。如果卡在密码提示,说明authorized_keys权限错误或sshd未运行。
下载并解压Hadoop安装包
访问Apache归档站下载稳定版Hadoop 3.3.6(兼容UOS内核及glibc 2.31+):
cd ~ && wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
解压到/home/hadoop目录下:
tar -xzf hadoop-3.3.6.tar.gz
建立软链接便于后续路径引用:
ln -s hadoop-3.3.6 hadoop
这一步操作起来很简单,直接把文件拖进去就行。但注意不要解压到/tmp或/root路径下,否则hadoop用户无权访问。
配置Hadoop核心环境变量
编辑~/.bashrc,在末尾追加以下三行:
export HADOOP_HOME=$HOME/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
立即加载新配置:
source ~/.bashrc
验证是否生效:
echo $HADOOP_HOME
输出应为/home/hadoop/hadoop。若为空,请检查.bashrc是否保存成功、是否漏掉$符号、是否执行了source命令。
修改Hadoop配置文件
方法一:配置Java路径(必需)
编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh,找到# export JAVA_HOME=...这一行,取消注释并修改为:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
方法二:配置HDFS默认地址(伪分布式关键)
编辑$HADOOP_HOME/etc/hadoop/core-site.xml,在
方法三:设置HDFS副本数与存储路径(适配UOS单机特性)
编辑$HADOOP_HOME/etc/hadoop/hdfs-site.xml,填入:
创建对应目录:
mkdir -p ~/hadoop_data/hdfs/{namenode,datanode}
格式化NameNode并启动服务
第一步:格式化分布式文件系统元数据
hdfs namenode -format
第二步:启动HDFS服务(仅NameNode和DataNode)
start-dfs.sh
第三步:验证进程是否正常运行
jps
正确输出应包含NameNode、DataNode、SecondaryNameNode三个Java进程。若只看到Jps自身,说明start-dfs.sh执行失败,常见原因是JAVA_HOME未生效或SSH未配置成功。
第四步:通过Web界面确认服务状态
打开UOS自带浏览器,访问http://localhost:9870
页面显示“Welcome to Hadoop!”即表示HDFS已就绪。此端口是Hadoop 3.x默认UI端口,无需额外开启防火墙——UOS桌面版默认未启用ufw或iptables。











