温馨提示×

CentOS与HDFS集成步骤是什么

小樊
36
2025-11-08 06:36:25
栏目: 智能运维

CentOS与HDFS集成步骤(单节点环境)

1. 准备工作

  • 操作系统:确保使用CentOS 7及以上版本(建议使用最小化安装)。
  • 网络配置:配置静态IP地址,编辑/etc/hosts文件将主机名与IP绑定(如192.168.1.100 namenode),避免域名解析问题。
  • 防火墙设置:开放HDFS所需端口(默认9000(NameNode)、50010(数据传输)、50070(Web界面)),或临时关闭防火墙(systemctl stop firewalld)。

2. 安装Java环境

Hadoop依赖Java 8(OpenJDK或Oracle JDK),执行以下命令安装:

sudo yum install -y java-1.8.0-openjdk-devel

验证安装:

java -version

输出应包含1.8.0版本信息。

3. 下载并解压Hadoop

从Apache官网下载稳定版Hadoop(如3.3.4),解压至/usr/local/目录:

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop  # 重命名便于管理

设置目录权限(假设Hadoop用户为hadoop):

sudo chown -R hadoop:hadoop /usr/local/hadoop

4. 配置Hadoop环境变量

编辑/etc/profile.d/hadoop.sh(若不存在则新建),添加以下内容:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk  # Java安装路径
export HADOOP_HOME=/usr/local/hadoop              # Hadoop安装路径
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin  # 添加Hadoop命令到PATH

使配置生效:

source /etc/profile.d/hadoop.sh

验证环境变量:

echo $HADOOP_HOME  # 应输出/usr/local/hadoop
hadoop version     # 应显示Hadoop版本信息

5. 配置HDFS核心文件

Hadoop的主配置文件位于$HADOOP_HOME/etc/hadoop/目录下,需修改以下文件:

① core-site.xml(HDFS默认文件系统)
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>  <!-- NameNode主机名:端口 -->
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>  <!-- 临时目录 -->
    </property>
</configuration>
② hdfs-site.xml(HDFS数据存储配置)
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>  <!-- 单节点环境设为1(生产环境建议≥3) -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value>  <!-- NameNode元数据存储路径 -->
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value>  <!-- DataNode数据存储路径 -->
    </property>
</configuration>
③ mapred-site.xml(MapReduce框架配置)

若文件不存在,复制模板生成:

cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

修改内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>  <!-- 使用YARN作为资源管理器 -->
    </property>
</configuration>
④ yarn-site.xml(YARN配置)
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>  <!-- MapReduce Shuffle服务 -->
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>namenode</value>  <!-- ResourceManager主机名 -->
    </property>
</configuration>

6. 格式化NameNode

首次启动HDFS前,必须格式化NameNode(初始化元数据):

hdfs namenode -format

执行后会提示“Format successful”,表示格式化完成。

7. 启动HDFS集群

在NameNode节点上执行以下命令启动HDFS服务:

start-dfs.sh

验证进程是否启动:

jps

应看到NameNodeDataNode进程(若为单节点,两者均在同一机器上)。

8. 验证HDFS集成

  • 查看HDFS状态

    hdfs dfsadmin -report
    

    输出应显示NameNode和DataNode的信息。

  • 访问Web界面
    在浏览器中输入http://namenode:50070(若端口未修改),查看HDFS的存储状态、节点信息等。

  • 上传/下载文件

    hdfs dfs -mkdir /user/test          # 创建HDFS目录
    hdfs dfs -put /local/file.txt /user/test  # 上传本地文件到HDFS
    hdfs dfs -ls /user/test             # 查看HDFS目录内容
    

9. 可选配置(多节点/安全增强)

  • 配置SSH无密码登录:若为多节点环境,需在NameNode上生成SSH密钥,并复制到所有DataNode节点:

    ssh-keygen -t rsa
    ssh-copy-id hadoop@datanode1
    ssh-copy-id hadoop@datanode2
    

    确保NameNode可通过SSH无密码登录到所有DataNode。

  • 配置slaves文件:在$HADOOP_HOME/etc/hadoop/目录下编辑slaves文件,添加所有DataNode的主机名(每行一个):

    datanode1
    datanode2
    

    重启HDFS后,DataNode会自动注册到NameNode。

通过以上步骤,即可在CentOS系统上成功集成HDFS,实现分布式文件存储功能。

0