Debian系统与Hadoop的集成主要围绕环境准备、Hadoop安装、配置文件调整、服务启动及验证展开,以下是详细步骤:
集成前需确保Debian系统为最新版本,并安装必要的依赖软件:
sudo apt update && sudo apt upgrade -ysudo apt install openjdk-11-jdk -y # 或openjdk-8-jdk(兼容旧版本Hadoop)
java -version # 验证安装(需显示Java版本信息)
sudo apt install openssh-server -y
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 生成密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥到授权文件
chmod 600 ~/.ssh/authorized_keys # 设置权限
sudo adduser hadoop # 创建用户
sudo usermod -aG sudo hadoop # 加入sudo组
从Apache官网下载稳定版本的Hadoop(如3.3.6),解压至指定目录:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/ # 解压至/usr/local
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop # 重命名为hadoop(简化命令)
编辑用户或全局环境变量文件(如~/.bashrc或/etc/profile),添加Hadoop相关路径:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:source ~/.bashrc(或source /etc/profile)。
Hadoop的主要配置文件位于$HADOOP_HOME/etc/hadoop/目录下,需调整以下文件:
配置HDFS的默认文件系统地址(NameNode的URI)和临时目录:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- NameNode的主机名或IP -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> <!-- 临时文件存储路径 -->
</property>
</configuration>
配置HDFS的副本数(生产环境建议3)、NameNode和DataNode的数据目录:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 数据副本数(单节点可设为1) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hdfs/namenode</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hdfs/datanode</value> <!-- DataNode数据存储路径 -->
</property>
</configuration>
配置MapReduce框架为YARN(Hadoop的资源管理系统):
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置YARN的Shuffle服务(MapReduce作业的必要组件):
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
/etc/network/interfaces(Debian 9及以下)或/etc/netplan/*.yaml(Debian 10及以上),配置固定IP、子网掩码、网关和DNS。/etc/hosts,避免DNS解析延迟:127.0.0.1 localhost
192.168.1.100 namenode # NameNode节点
192.168.1.101 datanode1 # DataNode节点1
192.168.1.102 datanode2 # DataNode节点2
仅在首次启动Hadoop集群时执行,用于初始化NameNode的元数据存储:
hdfs namenode -format # 执行格式化(会清除原有数据)
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
jps命令查看Hadoop相关进程(NameNode、DataNode、ResourceManager、NodeManager等)是否存在。hdfs dfs -ls / # 列出HDFS根目录内容
http://namenode:9000(需替换为实际IP)http://namenode:8088sudo ufw disable)或开放相关端口(如9000、50070、8088)。