温馨提示×

hdfs配置在centos的步骤

小樊
48
2025-11-03 23:27:27
栏目: 智能运维

一、准备工作

  1. 安装Java环境
    Hadoop依赖Java运行环境,需安装JDK 8(推荐OpenJDK)。执行以下命令:

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

    验证安装:java -version(需显示Java 1.8.0版本信息)。

  2. 下载并解压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
    

    (可选)创建软链接简化命令:sudo ln -s /usr/local/hadoop /usr/local/hadoop

  3. 配置Hadoop环境变量
    编辑/etc/profile文件,添加以下内容(替换/usr/local/hadoop为实际路径):

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk  # 根据java -version输出调整
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    使配置生效:source /etc/profile

二、网络与SSH配置

  1. 配置主机名与IP映射
    编辑/etc/hosts文件,添加NameNode和DataNode的IP与主机名映射(每行一个节点):

    192.168.1.100 namenode
    192.168.1.101 datanode1
    192.168.1.102 datanode2
    

    确保所有节点的/etc/hostname文件中主机名与/etc/hosts一致。

  2. 配置静态IP
    编辑网络配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33),设置静态IP:

    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.1.100  # 替换为实际IP
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    

    重启网络:sudo systemctl restart network

  3. 配置SSH免密登录
    在NameNode上生成SSH密钥对:ssh-keygen -t rsa -P ""(直接回车)。
    将公钥复制到所有节点(包括自身):

    ssh-copy-id root@namenode
    ssh-copy-id root@datanode1
    ssh-copy-id root@datanode2
    

    测试免密登录:ssh namenode(无需输入密码)。

三、HDFS核心配置文件修改

进入Hadoop配置目录:cd $HADOOP_HOME/etc/hadoop,修改以下文件:

  1. core-site.xml
    配置HDFS默认文件系统和NameNode地址:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://namenode:9000</value>  <!-- 替换为NameNode主机名 -->
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/tmp/hadoop</value>  <!-- 临时目录,可自定义 -->
        </property>
    </configuration>
    
  2. hdfs-site.xml
    配置NameNode/Datanode数据目录、副本数及Web界面端口:

    <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>  <!-- Web界面地址 -->
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>  <!-- 启用WebHDFS -->
        </property>
    </configuration>
    
  3. slaves文件(可选,集群部署需配置)
    在NameNode上编辑slaves文件,添加DataNode主机名(每行一个):

    datanode1
    datanode2
    

    (单节点部署可跳过此步)。

四、格式化NameNode

在NameNode节点上执行格式化命令(首次启动前必须执行):

hdfs namenode -format

此命令会初始化NameNode的元数据存储目录(如dfs.namenode.name.dir指定的路径)。

五、启动HDFS服务

  1. 启动集群
    在NameNode上执行:

    $HADOOP_HOME/sbin/start-dfs.sh
    

    此命令会自动启动NameNode和所有DataNode(若配置了slaves文件)。

  2. 验证进程
    使用jps命令检查NameNode和DataNode是否运行:

    • NameNode节点:应显示NameNode进程。
    • DataNode节点:应显示DataNode进程。

六、验证配置

  1. 访问Web界面
    在浏览器中输入http://namenode-ip:50070(如http://192.168.1.100:50070),查看HDFS集群状态(包括存储容量、DataNode列表等)。

  2. 测试文件操作
    执行以下命令上传文件到HDFS:

    hdfs dfs -put /path/local/file.txt /user/root/  # 上传本地文件到HDFS根目录下的user/root路径
    hdfs dfs -ls /user/root/  # 查看HDFS中的文件
    

七、可选配置

  1. 关闭防火墙(测试环境)
    临时关闭防火墙:sudo systemctl stop firewalld
    禁止开机启动:sudo systemctl disable firewalld
    (生产环境建议配置防火墙规则,允许HDFS端口:9000、50010、50020、50070等)。

  2. 配置NTP时间同步
    安装NTP服务:sudo yum install -y ntp
    启动NTP并设置开机启动:sudo systemctl start ntpd && sudo systemctl enable ntpd
    同步时间:sudo ntpdate ntp.aliyun.com(替换为可用NTP服务器)。

0