centos

CentOS HDFS配置与高可用性实现

小樊
36
2025-06-26 20:08:48
栏目: 智能运维

在CentOS系统上配置Hadoop分布式文件系统(HDFS)并实现高可用性涉及多个步骤。以下是一个详细的指南,帮助你完成这一过程。

1. 环境准备

安装Java环境

首先,确保你的CentOS系统上安装了Java运行环境。你可以从Oracle官网下载并安装JDK。

wget https://download.oracle.com/otn/java/jdk/8u212-b09/d7fc27d8d8f94d369ac70d8d89f8a2f29d/jdk-8u212-linux-x64.tar.gz
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /usr/local/
export JAVA_HOME=/usr/local/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH

配置SSH免密登录

为了在节点之间进行无密码登录,需要配置SSH密钥。

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

2. 安装Hadoop

下载所需版本的Hadoop安装包,并解压到指定目录。

wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.16.2.tar.gz
tar -zxvf hadoop-2.6.0-cdh5.16.2.tar.gz -C /usr/local/
export HADOOP_HOME=/usr/local/hadoop-2.6.0-cdh5.16.2
export PATH=$HADOOP_HOME/bin:$PATH

3. 配置Hadoop环境变量

编辑 /etc/profile 文件,添加Hadoop环境变量。

vi /etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.6.0-cdh5.16.2
export PATH=$HADOOP_HOME/bin:$PATH
source /etc/profile

4. 修改Hadoop配置文件

core-site.xml

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

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/path/to/namenode/data</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/path/to/datanode/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1</name>
        <value>node1:8020</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn2</name>
        <value>node2:8020</value>
    </property>
</configuration>

slaves

在所有DataNode节点上编辑 /etc/hosts 文件,添加NameNode的主机名。

namenode 192.168.1.100
node2 192.168.1.101
node3 192.168.1.102

5. 初始化NameNode

在NameNode节点上执行以下命令初始化NameNode的元数据存储目录。

hadoop namenode -format

6. 启动HDFS集群

在NameNode节点上启动HDFS:

start-dfs.sh

在所有DataNode节点上启动DataNode:

start-dfs.sh datanode

7. 验证集群

在浏览器中访问NameNode的Web界面:http://namenode:50070,查看集群状态。

8. 高可用性配置(可选)

配置Secondary NameNode

Secondary NameNode用于定期合并NameNode的编辑日志。

hadoop-daemon.sh start secondarynamenode

配置ZooKeeper和ZKFC

为了实现自动故障转移,需要配置ZooKeeper和ZKFC。

# 在所有节点上安装ZooKeeper
yum install zookeeper -y

# 配置ZooKeeper
vi /etc/zookeeper/conf/zoo.cfg
# 添加以下内容
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=node1:2888
server.2=node2:2888
server.3=node3:2888

# 启动ZooKeeper
systemctl start zookeeper
systemctl enable zookeeper

# 在NameNode节点上配置ZKFC
hadoop-daemon.sh start zkfc

9. 故障转移验证

模拟NameNode故障并验证自动切换。

# 停止NameNode
systemctl stop hadoop-namenode

# 检查Standby NameNode是否接管
hdfs dfsadmin -report

通过以上步骤,你可以在CentOS系统上配置一个高可用的HDFS集群。确保在实际配置过程中根据具体环境和需求进行调整,并进行充分的测试以验证其正确性。

0
看了该问题的人还看了