Ubuntu 单机安装 Hadoop 3.2.4教程

系统:Ubuntu 20.04 / 22.04 / 24.04(服务器或桌面均可)

所有操作直接用 root 执行(最简单粗暴)

一、准备工作(只需执行一次)

bash 复制代码
# 更新系统 + 安装必备工具
apt update && apt install -y openjdk-8-jdk wget tar ssh rsync net-tools

# 确认 Java 8
java -version   # 必须显示 openjdk version "1.8.0_xxx"

二、一键下载并解压 Hadoop 3.2.4

bash 复制代码
cd /opt
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
tar -xzvf hadoop-3.2.4.tar.gz
mv hadoop-3.2.4 hadoop-3.2.4
chown -R root:root hadoop-3.2.4

三、一键写死所有环境变量(永久生效)

bash 复制代码
cat > /etc/profile.d/hadoop.sh << 'EOF'
export HADOOP_HOME=/opt/hadoop-3.2.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
EOF

source /etc/profile.d/hadoop.sh

四、解决所有"xxx_USER not defined"报错(必须加这5行)

bash 复制代码
cat >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh << 'EOF'

# 解决 root 启动报错
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
EOF

五、配置 core-site.xml 和 hdfs-site.xml(单机最小配置)

bash 复制代码
# core-site.xml
cat > $HADOOP_HOME/etc/hadoop/core-site.xml << 'EOF'
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
EOF

# hdfs-site.xml
cat > $HADOOP_HOME/etc/hadoop/hdfs-site.xml << 'EOF'
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///opt/hadoop-3.2.4/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///opt/hadoop-3.2.4/hdfs/datanode</value>
    </property>
</configuration>
EOF

六、解决 SSH 无密码登录(单机必须)

bash 复制代码
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh localhost exit   # 第一次会提示 yes,之后就免密了

七、格式化 NameNode + 启动 Hadoop

bash 复制代码
# 只需执行一次
hdfs namenode -format

# 启动(以后每天就跑这三条)
start-dfs.sh
start-yarn.sh

# 检查是否全部起来
jps
# 正确输出:
# NameNode
# DataNode
# SecondaryNameNode
# ResourceManager
# NodeManager

八、验证 HDFS 是否正常

bash 复制代码
hdfs dfs -mkdir /test
hdfs dfs -put /etc/profile /test/
hdfs dfs -ls /test
# 能看到 profile 文件就成功了

至此,Hadoop 3.2.4 单机版已 100% 安装完成

九、可选:顺手把 Hive 3.1.3 也装好(接上文继续执行即可)

bash 复制代码
cd /opt
wget https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
tar -xzvf apache-hive-3.1.3-bin.tar.gz
mv apache-hive-3.1.3-bin hive-3.1.3

# 加入环境变量
echo 'export HIVE_HOME=/opt/hive-3.1.3' >> /etc/profile.d/hadoop.sh
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile.d/hadoop.sh
source /etc/profile.d/hadoop.sh

# 解决 Guava 冲突(关键!)
cd $HIVE_HOME/lib
mv guava-19.0.jar guava-19.0.jar.bak 2>/dev/null || true
cp $HADOOP_HOME/share/hadoop/hdfs/lib/guava-27.0-jre.jar ./

# 创建最干净的 hive-site.xml
cat > $HIVE_HOME/conf/hive-site.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:derby:;databaseName=metastore_db;create=true</value></property>
  <property><name>javax.jdo.option.ConnectionDriverName</name><value>org.apache.derby.jdbc.EmbeddedDriver</value></property>
  <property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property>
</configuration>
EOF

# 创建 HDFS 目录
hdfs dfs -mkdir -p /user/hive/warehouse /tmp
hdfs dfs -chmod g+w /user/hive/warehouse /tmp

# 初始化 + 启动
schematool -dbType derby -initSchema
hive   # 成功进入 hive> 提示符
相关推荐
有谁看见我的剑了?4 小时前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
yc_12246 小时前
用 Visual Studio 远程调试 Linux:从零到流畅的完整指南
linux·ide·visual studio
计算机安禾6 小时前
【Linux从入门到精通】第31篇:防火墙漫谈——iptables与firewalld防护指南
linux·运维·php
下一页盛夏花开6 小时前
ubuntu 20中安装QT以后出现红色空心断点
linux·运维·ubuntu
sanshanjianke7 小时前
Thunderobot 911ME 笔记本 Linux 风扇控制研究
linux
fengyehongWorld10 小时前
TeraTerm ttl脚本登录wsl
linux·teraterm
乌托邦的逃亡者10 小时前
Linux中如何检测IP冲突
linux·运维·tcp/ip
一曦的后花园11 小时前
linux搭建promethes并对接node-exporter指标
linux·运维·服务器
乌托邦的逃亡者11 小时前
CentOS/Openeuler主机中,为一个网卡设置多个IP地址
linux·运维·网络·tcp/ip·centos
拾贰_C12 小时前
【OpenClaw | openai | QQ】 配置QQ qot机器人
运维·人工智能·ubuntu·面试·prompt