跳转到内容

Apache Hadoop集群部署

来自代码酷

Hadoop集群部署[编辑 | 编辑源代码]

介绍[编辑 | 编辑源代码]

Hadoop集群部署是指将Hadoop分布式计算框架的各个组件(如HDFS、YARN、MapReduce等)安装并配置在多台服务器上,形成一个协同工作的分布式系统。集群部署是Hadoop运维管理的核心任务之一,直接影响系统的性能、可靠性和扩展性。

Hadoop集群通常由以下角色组成:

  • 主节点(Master Node):运行NameNode、ResourceManager等核心服务。
  • 从节点(Worker Node):运行DataNode、NodeManager等数据处理服务。
  • 客户端节点(Client Node):提交作业和访问集群。

部署前准备[编辑 | 编辑源代码]

硬件要求[编辑 | 编辑源代码]

  • 主节点:建议至少16GB内存、4核CPU、100GB存储。
  • 从节点:建议至少8GB内存、2核CPU、500GB存储(根据数据量调整)。
  • 网络:千兆以太网或更高,低延迟。

软件要求[编辑 | 编辑源代码]

  • 操作系统:Linux(推荐CentOS或Ubuntu)。
  • Java:OpenJDK 8或11(Hadoop 3.x支持Java 11)。
  • SSH:无密码登录配置。

配置示例[编辑 | 编辑源代码]

以下是一个3节点集群的配置示例:

graph TD Master[Master Node: NameNode, ResourceManager] Worker1[Worker Node 1: DataNode, NodeManager] Worker2[Worker Node 2: DataNode, NodeManager] Master -->|SSH| Worker1 Master -->|SSH| Worker2

部署步骤[编辑 | 编辑源代码]

1. 安装Java[编辑 | 编辑源代码]

在所有节点上安装Java:

  
# Ubuntu/Debian  
sudo apt update  
sudo apt install openjdk-11-jdk  

# 验证安装  
java -version

输出示例:

  
openjdk version "11.0.12" 2021-07-20  
OpenJDK Runtime Environment (build 11.0.12+7-post-Ubuntu-0ubuntu1)  
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Ubuntu-0ubuntu1, mixed mode)  

2. 配置SSH免密登录[编辑 | 编辑源代码]

在主节点生成密钥并分发到从节点:

  
ssh-keygen -t rsa  
ssh-copy-id user@worker1  
ssh-copy-id user@worker2

3. 下载并解压Hadoop[编辑 | 编辑源代码]

从Apache官网下载Hadoop(以3.3.6为例):

  
wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.6/hadoop-3.3.6.tar.gz  
tar -xzvf hadoop-3.3.6.tar.gz  
mv hadoop-3.3.6 /opt/hadoop

4. 配置环境变量[编辑 | 编辑源代码]

编辑/etc/profile

  
export HADOOP_HOME=/opt/hadoop  
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

5. 核心配置文件[编辑 | 编辑源代码]

修改以下文件(路径:$HADOOP_HOME/etc/hadoop/):

core-site.xml[编辑 | 编辑源代码]

  
<configuration>  
    <property>  
        <name>fs.defaultFS</name>  
        <value>hdfs://master:9000</value>  
    </property>  
</configuration>

hdfs-site.xml[编辑 | 编辑源代码]

  
<configuration>  
    <property>  
        <name>dfs.replication</name>  
        <value>2</value>  
    </property>  
</configuration>

mapred-site.xml[编辑 | 编辑源代码]

  
<configuration>  
    <property>  
        <name>mapreduce.framework.name</name>  
        <value>yarn</value>  
    </property>  
</configuration>

6. 启动集群[编辑 | 编辑源代码]

  
# 格式化HDFS(仅在首次部署时执行)  
hdfs namenode -format  

# 启动HDFS  
start-dfs.sh  

# 启动YARN  
start-yarn.sh

验证服务状态:

  
jps

主节点应显示NameNodeResourceManager,从节点应显示DataNodeNodeManager

实际案例[编辑 | 编辑源代码]

电商日志分析集群[编辑 | 编辑源代码]

某电商公司部署了一个5节点Hadoop集群:

  • 1个主节点(NameNode + ResourceManager)
  • 4个从节点(每个节点配置:32GB内存、12核CPU、10TB存储)

用途

  • 存储和分析用户行为日志(每日增量约1TB)。
  • 运行MapReduce作业生成销售报表。

常见问题[编辑 | 编辑源代码]

1. DataNode未启动[编辑 | 编辑源代码]

可能原因

  • 防火墙阻止通信。
  • dfs.datanode.data.dir权限错误。

解决方案

  
sudo systemctl stop firewalld  
chmod 755 /path/to/data/dir

2. 磁盘空间不足[编辑 | 编辑源代码]

通过以下命令监控HDFS使用情况:

  
hdfs dfsadmin -report

数学公式[编辑 | 编辑源代码]

Hadoop的副本放置策略遵循机架感知(Rack Awareness),其副本分布概率可表示为: P(副本在本地机架)=1机架数

总结[编辑 | 编辑源代码]

Hadoop集群部署需要严谨的规划和配置,确保硬件资源、网络和软件环境满足要求。通过本文的步骤,读者可以完成一个基础的集群部署,并进一步探索性能调优和高可用配置。