centos配置hdfs的方法
导读:1. 准备工作  操作系统:确保使用CentOS 7及以上版本(推荐CentOS Stream 8/9)。 网络配置:所有节点(NameNode、DataNode)之间可通过IP或主机名互相通信;配置静态IP并关闭防火墙(测试环境)或开放必...
    
1. 准备工作
- 操作系统:确保使用CentOS 7及以上版本(推荐CentOS Stream 8/9)。
 - 网络配置:所有节点(NameNode、DataNode)之间可通过IP或主机名互相通信;配置静态IP并关闭防火墙(测试环境)或开放必要端口(生产环境)。
 - 主机名映射:编辑所有节点的
/etc/hosts文件,添加节点IP与主机名对应关系(如192.168.1.10 namenode、192.168.1.11 datanode1)。 - 时间同步:安装并启用NTP服务,确保所有节点时间一致(避免HDFS元数据不一致)。
 
2. 安装Java环境 Hadoop依赖Java 8或更高版本(推荐OpenJDK 8),安装步骤如下:
# 安装OpenJDK 8
sudo yum install -y java-1.8.0-openjdk-devel
# 验证Java版本
java -version  # 应输出类似"openjdk version "1.8.0_XXX""
配置Java环境变量(可选但推荐):
# 编辑/etc/profile.d/java.sh
echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >
    >
     /etc/profile.d/java.sh
echo 'export PATH=$PATH:$JAVA_HOME/bin' >
    >
     /etc/profile.d/java.sh
source /etc/profile.d/java.sh
3. 下载并安装Hadoop 从Apache官网下载稳定版本的Hadoop(如3.3.4),解压至指定目录:
# 创建Hadoop安装目录
sudo mkdir -p /usr/local/hadoop
# 下载并解压Hadoop(以3.3.4为例)
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/hadoop --strip-components=1
# 配置Hadoop环境变量
echo 'export HADOOP_HOME=/usr/local/hadoop' >
    >
     /etc/profile.d/hadoop.sh
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >
    >
     /etc/profile.d/hadoop.sh
source /etc/profile.d/hadoop.sh
# 验证Hadoop安装
hadoop version  # 应输出Hadoop版本信息
4. 配置SSH无密码登录 Hadoop集群节点间需要通过SSH无密码通信,步骤如下:
# 在NameNode节点生成SSH密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
# 将公钥复制到所有DataNode节点(替换为实际节点IP或主机名)
ssh-copy-id namenode
ssh-copy-id datanode1
ssh-copy-id datanode2
5. 配置HDFS核心文件
Hadoop配置文件位于$HADOOP_HOME/etc/hadoop目录,需修改以下关键文件:
- core-site.xml(定义HDFS默认文件系统):
 
<
    configuration>
    
    <
    property>
    
        <
    name>
    fs.defaultFS<
    /name>
    
        <
    value>
    hdfs://namenode:9000<
    /value>
      <
    !-- NameNode的RPC地址 -->
    
    <
    /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>
    
    <
    property>
    
        <
    name>
    dfs.namenode.http-address<
    /name>
    
        <
    value>
    namenode:50070<
    /value>
      <
    !-- NameNode Web界面地址 -->
    
    <
    /property>
    
    <
    property>
    
        <
    name>
    dfs.webhdfs.enabled<
    /name>
    
        <
    value>
    true<
    /value>
      <
    !-- 启用WebHDFS(支持REST API) -->
    
    <
    /property>
    
<
    /configuration>
    
6. 创建数据目录并设置权限
# 在NameNode和DataNode节点创建数据目录
sudo mkdir -p /usr/local/hadoop/data/namenode
sudo mkdir -p /usr/local/hadoop/data/datanode
# 设置目录所有者(替换为Hadoop运行用户,如"hadoop")
sudo chown -R hadoop:hadoop /usr/local/hadoop/data
7. 格式化NameNode 首次启动HDFS前,必须格式化NameNode(会清空所有元数据):
# 在NameNode节点执行格式化命令
hdfs namenode -format
8. 启动HDFS集群
# 启动HDFS服务(NameNode和DataNode)
start-dfs.sh
# 查看HDFS进程状态(应显示NameNode、DataNode进程)
jps
9. 验证HDFS配置
- Web界面:打开浏览器访问
http://namenode:50070(或http://< namenode-ip> :50070),查看集群状态、节点列表。 - 命令行操作:
 
# 创建HDFS目录
hdfs dfs -mkdir -p /user/hadoop
# 上传本地文件到HDFS
hdfs dfs -put /etc/hosts /user/hadoop/
# 查看HDFS文件列表
hdfs dfs -ls /user/hadoop
注意事项
- 生产环境中,建议配置HDFS高可用性(HA),避免单点故障。
 - 关闭SELinux(测试环境)或配置SELinux策略(生产环境),避免权限问题:
sudo setenforce 0 # 临时关闭SELinux sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config # 永久关闭 - 防火墙设置:开放HDFS相关端口(如9000、50070、50010等),或关闭防火墙:
sudo systemctl stop firewalld sudo systemctl disable firewalld 
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos配置hdfs的方法
本文地址: https://pptw.com/jishu/741952.html
