下面以 Linux 环境下 Hadoop 集群部署(Hadoop 3.x 为例) 给你一个从零到可用的完整流程,适合生产或学习环境。
假设部署 3 台机器:
| 主机名 | IP | 角色 |
|---|---|---|
| hadoop01 | 192.168.1.10 | NameNode + ResourceManager |
| hadoop02 | 192.168.1.11 | DataNode + NodeManager |
| hadoop03 | 192.168.1.12 | DataNode + NodeManager |
如果是学习环境,也可以 1 台机器伪分布式部署。
# CentOS
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# Ubuntu
apt install -y openjdk-8-jdk
验证:
java -version
hostnamectl set-hostname hadoop01
所有节点 /etc/hosts:
192.168.1.10 hadoop01
192.168.1.11 hadoop02
192.168.1.12 hadoop03
useradd hadoop
passwd hadoop
在 hadoop01 执行:
su - hadoop
ssh-keygen -t rsa
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
验证:
ssh hadoop02
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
mv /opt/hadoop-3.3.6 /opt/hadoop
chown -R hadoop:hadoop /opt/hadoop
~/.bashrc:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
生效:
source ~/.bashrc
进入:
cd $HADOOP_HOME/etc/hadoop
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/opt/hadoop
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
hadoop02
hadoop03
scp -r /opt/hadoop hadoop02:/opt/
scp -r /opt/hadoop hadoop03:/opt/
hdfs namenode -format
start-dfs.sh
start-yarn.sh
jps
NameNode、ResourceManagerDataNode、NodeManagerhttp://hadoop01:9870
http://hadoop01:8088
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
hdfs dfs -ls /test
| 问题 | 解决方法 |
|---|---|
| NameNode 起不来 | 检查 hadoop.tmp.dir 权限 |
| DataNode 起不来 | 删除 data 目录重新格式化 |
| SSH 失败 | 重新配置免密 |
| Java 找不到 | 检查 JAVA_HOME |
Linux + JDK + SSH
→ 安装 Hadoop
→ 配置 5 个核心文件
→ 分发配置
→ 格式化 NameNode
→ 启动集群
如果你需要:
可以直接告诉我你的 机器数量和使用场景,我可以给你定制方案。