1. 系统初始化与环境准备
在Debian系统上部署Hadoop前,需完成基础环境配置:
sudo apt update && sudo apt upgrade -y
确保系统软件包为最新版本。sudo ufw disable
,避免防火墙阻止节点间通信。hostnamectl set-hostname <主节点名>
(如master
)设置主机名;编辑/etc/hosts
文件,添加所有节点的IP与主机名映射(如192.168.1.100 master
、192.168.1.101 node1
),确保节点间可通过主机名互相访问。2. 安装Java环境(JDK)
Hadoop依赖Java运行环境,推荐安装OpenJDK 8或11(兼容性更好):
sudo apt install openjdk-11-jdk -y
(或openjdk-8-jdk
)。java -version
,确认输出显示Java版本信息。/etc/profile
文件,添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
(路径根据实际JDK版本调整),然后运行source /etc/profile
使变量生效。3. 下载并解压Hadoop
wget
命令下载:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
。/usr/local
目录:sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
。sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
,简化后续命令。4. 配置Hadoop环境变量
编辑~/.bashrc
(当前用户)或/etc/profile
(全局)文件,添加以下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
运行source ~/.bashrc
(或source /etc/profile
)使变量立即生效。
5. 配置Hadoop核心文件
进入Hadoop配置目录($HADOOP_HOME/etc/hadoop
),修改以下关键文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value> <!-- 主节点主机名 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> <!-- 临时目录,需提前创建 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</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/data</value> <!-- DataNode数据目录 -->
</property>
</configuration>
mapred-site.xml.template
的副本):设置MapReduce运行框架为YARN:cp mapred-site.xml.template mapred-site.xml
编辑内容:<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<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>
slaves
文件):列出所有DataNode的主机名(每行一个),如:node1
node2
(主节点无需列入)6. 设置SSH无密码登录
Hadoop节点间需通过SSH无密码通信,步骤如下:
ssh-keygen -t rsa -b 4096 -C "hadoop@example.com"
,按回车键接受默认路径和空密码。ssh-copy-id hadoop@master
(主节点自身)、ssh-copy-id hadoop@node1
、ssh-copy-id hadoop@node2
(替换为实际节点主机名)。ssh master
、ssh node1
,确认无需输入密码即可登录。7. 格式化NameNode
NameNode是HDFS的核心,首次启动前需格式化其存储目录:
hdfs namenode -format
,等待格式化完成(会提示“NameNode formatted successfully”)。8. 启动Hadoop集群
start-dfs.sh
,启动NameNode和所有DataNode服务。start-yarn.sh
,启动ResourceManager和NodeManager服务。hdfs dfsadmin -report
,确认NameNode和DataNode已启动。yarn node -list
,确认ResourceManager和NodeManager已启动。http://master:9870
)、YARN ResourceManager界面(http://master:8088
),通过浏览器查看集群状态。9. 部署Hadoop生态系统组件(可选)
Hadoop生态包含多个工具,可根据需求部署:
/usr/local
,配置环境变量(HIVE_HOME
),修改hive-site.xml
(设置Hive Metastore地址为HDFS路径,如hdfs://master:9000/user/hive/warehouse
),启动Hive:hive
。PIG_HOME
),启动Pig:pig
。hbase-site.xml
(设置HBase根目录为HDFS路径,如hdfs://master:9000/hbase
),启动HBase:start-hbase.sh
。注意事项
/opt/hadoop/tmp
、/opt/hadoop/hdfs/namenode
)具有正确的读写权限(chown -R hadoop:hadoop /opt/hadoop
)。dfs.replication=1
),生产环境需调整副本数(≥3)、启用 Kerberos认证、配置机架感知等。