在WSL2中部署HDFS

132 阅读1分钟

hadoop有两种部署方式:single node和cluster。
single node只在一台机上部署所有服务,且只有一个datanode。如果只是验证功能,可以使用single node,以节省资源。具体部署过程可参考官方文档[Apache Hadoop 3.3.6 – Hadoop: Setting up a Single Node Cluster](Apache Hadoop 3.3.6 – Hadoop: Setting up a Single Node Cluster)以及第三方博客文章:[Hadoop Installation on Windows 10 using WSL](Hadoop Installation on Windows 10 using WSL - DEV Community)。
但这种方式无法支持在Windows系统中访问HDFS服务。比如运行spark样例程序org.apache.spark.examples.HdfsTest时,会一直提示无法访问namenode和datanode。原因是namenode中存储的datanode的地址是127.0.0.1:xxx。Windows上的客户端应用拿到这个地址后,仍然无法直接访问。hdfs文件读写流程可参考下图:

image.png
解决办法:

  1. 在文件etc/hadoop/core-site.xml中修改配置fs.defaultFS参数为wsl的ip,比如: image.png
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.31.29.22:9000</value>
    </property>
    
  2. 在文件etc/hadoop/workers中修改worker节点的ip为wsl的ip,默认是127.0.0.1
    172.31.29.22
    
  3. 重新格式化namenode,重新启动服务即可。
    hdfs namenode -format