Hadoop集群配置

130 阅读1分钟

Hadoop 集群配置步骤

Hadoop 集群配置需要在多个节点上进行协调设置,主要包括以下步骤:

  1. 环境准备

    • 所有节点间 SSH 无密码登录
    • 统一的 JDK 安装路径
    • 同步的时间服务
  2. 核心配置文件

    • core-site.xml - Hadoop 核心配置
    • hdfs-site.xml - HDFS 配置
    • mapred-site.xml - MapReduce 配置
    • yarn-site.xml - YARN 资源管理器配置
  3. 节点角色分配

    • NameNode (主节点)
    • DataNode (数据节点)
    • ResourceManager (资源管理)
    • NodeManager (节点管理)

使用 SCP 扩展配置的方法

在配置 Hadoop 集群时,使用scp命令可以高效地同步配置文件到所有节点:

bash

# 示例:将主节点的配置文件同步到所有从节点
for node in slave1 slave2 slave3; do
  scp /etc/hadoop/core-site.xml $node:/etc/hadoop/
  scp /etc/hadoop/hdfs-site.xml $node:/etc/hadoop/
  scp /etc/hadoop/mapred-site.xml $node:/etc/hadoop/
  scp /etc/hadoop/yarn-site.xml $node:/etc/hadoop/
done

# 或者使用函数简化操作
function scp_to_all {
  for node in slave1 slave2 slave3; do
    scp $1 $node:$2
  done
}

# 使用函数同步配置
scp_to_all /etc/hadoop/core-site.xml /etc/hadoop/
scp_to_all /etc/hadoop/hdfs-site.xml /etc/hadoop/

高级扩展:使用并行 SCP 工具

对于大规模集群,推荐使用pssh(Parallel SSH)工具提高效率:

bash

# 安装pssh
yum install pssh -y  # CentOS/RHEL
apt-get install pssh -y  # Ubuntu/Debian

# 创建节点列表文件
echo "slave1" > nodes.txt
echo "slave2" >> nodes.txt
echo "slave3" >> nodes.txt

# 并行复制配置文件
pscp -h nodes.txt /etc/hadoop/core-site.xml /etc/hadoop/
pscp -h nodes.txt /etc/hadoop/hdfs-site.xml /etc/hadoop/

配置文件示例

以下是 Hadoop 核心配置文件的基本示例:

core-site.xml

xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://namenode:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/data/hadoop/tmp</value>
  </property>
</configuration>

hdfs-site.xml

xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/hadoop/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/hadoop/datanode</value>
  </property>
</configuration>

配置验证方法

配置完成后,可以通过以下命令验证集群状态:

bash

# 格式化NameNode(首次启动)
hdfs namenode -format

# 启动HDFS服务
start-dfs.sh

# 启动YARN服务
start-yarn.sh

# 查看集群状态
hdfs dfsadmin -report
yarn node -list