如何完全分布式安装Hadoop

发布时间:2021-11-12 14:01:37 作者:小新
来源:亿速云 阅读:176
# 如何完全分布式安装Hadoop

## 目录
1. [前言](#前言)
2. [环境准备](#环境准备)
   - [硬件需求](#硬件需求)
   - [软件需求](#软件需求)
   - [网络配置](#网络配置)
3. [系统配置](#系统配置)
   - [创建Hadoop用户](#创建hadoop用户)
   - [SSH无密码登录配置](#ssh无密码登录配置)
   - [Java环境安装](#java环境安装)
4. [Hadoop安装与配置](#hadoop安装与配置)
   - [下载与解压](#下载与解压)
   - [核心配置文件](#核心配置文件)
   - [HDFS配置](#hdfs配置)
   - [YARN配置](#yarn配置)
5. [集群部署](#集群部署)
   - [节点角色分配](#节点角色分配)
   - [文件分发](#文件分发)
6. [启动与验证](#启动与验证)
   - [格式化HDFS](#格式化hdfs)
   - [启动集群](#启动集群)
   - [验证服务](#验证服务)
7. [基准测试](#基准测试)
   - [Teragen/Terasort测试](#teragen/terasort测试)
   - [TestDFSIO测试](#testdfsio测试)
8. [常见问题解决](#常见问题解决)
9. [安全配置建议](#安全配置建议)
10. [总结](#总结)

---

## 前言
在大数据时代,Hadoop作为分布式计算的基石,其完全分布式部署模式能够充分发挥集群的计算和存储能力。本文将详细指导您完成从零开始的完全分布式Hadoop 3.x集群部署,涵盖硬件规划、系统配置、安全优化等全流程。

---

## 环境准备

### 硬件需求
| 节点类型       | 数量 | 推荐配置              |
|----------------|------|-----------------------|
| NameNode       | 2    | 16核CPU, 64GB内存     |
| DataNode       | ≥3   | 8核CPU, 32GB内存/节点 |
| JournalNode    | 3    | 4核CPU, 8GB内存       |
| Zookeeper节点  | 3    | 4核CPU, 8GB内存       |

**存储建议**:
- NameNode: 1TB SSD (用于元数据存储)
- DataNode: 10TB HDD/节点 (建议JBOD配置)

### 软件需求
- 操作系统: CentOS 7+/Ubuntu 18.04 LTS
- Java: OpenJDK 8/11 (需验证兼容性)
- Hadoop版本: 3.3.4 (稳定版)
- SSH服务: 确保所有节点互通

### 网络配置
1. 配置静态IP(示例):
   ```bash
   # /etc/sysconfig/network-scripts/ifcfg-eth0
   BOOTPROTO=static
   IPADDR=192.168.1.101
   NETMASK=255.255.255.0
   GATEWAY=192.168.1.1
   DNS1=8.8.8.8
  1. 修改主机名:

    hostnamectl set-hostname nn1
    
  2. 更新/etc/hosts:

    192.168.1.101 nn1
    192.168.1.102 nn2
    192.168.1.103 dn1
    ...
    

系统配置

创建Hadoop用户

groupadd hadoop
useradd -g hadoop hduser
passwd hduser

SSH无密码登录配置

  1. 生成密钥对:

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    
  2. 分发公钥:

    ssh-copy-id hduser@nn1
    ssh-copy-id hduser@dn1
    ...
    
  3. 测试免密登录:

    ssh nn2 "hostname"
    

Java环境安装

tar -xzf jdk-11.0.15_linux-x64_bin.tar.gz -C /opt/
echo 'export JAVA_HOME=/opt/jdk-11.0.15
export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile.d/java.sh

Hadoop安装与配置

下载与解压

wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzf hadoop-3.3.4.tar.gz -C /opt/
ln -s /opt/hadoop-3.3.4 /opt/hadoop

核心配置文件

hadoop-env.sh

export JAVA_HOME=/opt/jdk-11.0.15
export HADOOP_HOME=/opt/hadoop
export HADOOP_LOG_DIR=/var/log/hadoop

core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://mycluster</value>
  </property>
  <property>
    <name>ha.zookeeper.quorum</name>
    <value>zk1:2181,zk2:2181,zk3:2181</value>
  </property>
</configuration>

hdfs-site.xml (NameNode)

<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>

集群部署

节点角色分配

主机名 角色
nn1 NameNode, ZKFC, JournalNode
nn2 NameNode, ZKFC, JournalNode
dn1-5 DataNode, NodeManager
zk1-3 Zookeeper, JournalNode

文件分发脚本

#!/bin/bash
CLUSTER_NODES=(nn1 nn2 dn1 dn2 dn3)
for node in ${CLUSTER_NODES[@]}; do
  rsync -avz /opt/hadoop $node:/opt/
  rsync -avz /etc/profile.d/java.sh $node:/etc/profile.d/
done

启动与验证

格式化HDFS

hdfs namenode -format -clusterId CID-123456

启动顺序

  1. Zookeeper集群
  2. JournalNodes
  3. HDFS HA
  4. YARN

验证服务

hdfs dfsadmin -report
yarn node -list

基准测试

Terasort测试

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar teragen 100000000 /tera/in
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar terasort /tera/in /tera/out

常见问题解决

1. DataNode无法启动


安全配置建议

  1. 启用Kerberos认证
  2. 配置HDFS透明加密
  3. 设置YARN ACLs

总结

通过本文的详细步骤,您已成功部署了一个高可用的Hadoop完全分布式集群。建议定期进行: - 集群健康检查(hdfs fsck /) - 资源使用监控(Ambari/Prometheus) - 数据均衡(hdfs balancer) “`

注:此为精简版框架,完整11250字版本需要扩展以下内容: 1. 每个配置参数的详细解释 2. 故障转移测试步骤 3. 性能调优指南(JVM/线程数配置) 4. 备份恢复方案 5. 版本升级流程 6. 监控集成方案(如Grafana看板配置) 7. 多租户资源隔离配置 需要补充完整内容可告知具体扩展方向。

推荐阅读:
  1. Hadoop完全分布式配置
  2. Hadoop完全分布式部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

hadoop

上一篇:VM9+Debian6+hadoop0.23.9如何实现单点安装

下一篇:Django中的unittest应用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》