谧小夜 2023-06-13 18:41 采纳率: 0%
浏览 68

连接hadoop为什么显示No FileSystem for scheme: hdfs,

代码如下所示
环境hadoop2.8.0


package com.qf.gmall.orderStatus;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;

public class OrderStatusDriver {
    static {
        System.setProperty("hadoop.home.dir","A:\\hadoop-2.8.0");
        System.load("A:\\hadoop-2.8.0\\bin\\hadoop.dll");
    }
    public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {

        Configuration configuration = new Configuration();

        Job job = Job.getInstance(configuration);


        //关联类
        job.setJarByClass(OrderStatusDriver.class);
        job.setMapperClass(OrderStatusMapper.class);
        job.setReducerClass(OrderStatusReduce.class);

        //设置map阶段输出类型
        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        FileInputFormat.addInputPath(job,new Path("hdfs://192.168.221.3:9000/gmall1_data/order_info/data/2023-05-25"));

        FileOutputFormat.setOutputPath(job,new Path("hdfs://192.168.221.3:9000/out"));

        job.waitForCompletion(true);
    }
}

报错显示:

img

已尝试:
Hadoop的jar包版本与Hadoop集群一致
重新启动hadoop集群
集群配置文件均正常配置

  • 写回答

2条回答 默认 最新

  • 路漫漫其修远. 博客专家认证 2023-06-13 19:05
    关注

    "No FileSystem for scheme: hdfs"错误通常是由于Hadoop配置不正确或者Hadoop服务未启动导致的。以下是一些可能的解决方法:

    检查Hadoop配置:请确保Hadoop的配置正确,包括core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等配置文件。特别是,需要确保core-site.xml中的fs.defaultFS属性设置为hdfs://namenode:port,其中namenode是Hadoop的NameNode主机名或IP地址,port是Hadoop的NameNode端口号。

    检查Hadoop服务是否启动:请确保Hadoop服务已经启动,包括NameNode、DataNode、ResourceManager和NodeManager等服务。可以使用jps命令来检查Hadoop服务是否启动,例如jps | grep NameNode。

    检查Hadoop版本:请确保使用的Hadoop版本与代码中使用的Hadoop版本一致。如果版本不一致,可能会导致No FileSystem for scheme: hdfs错误。

    检查Hadoop依赖库:请确保代码中使用的Hadoop依赖库正确,包括hadoop-common、hadoop-hdfs、hadoop-mapreduce-client-core和hadoop-yarn-client等库。

    如果以上方法都无法解决问题,建议检查Hadoop的日志文件,查看是否有其他错误信息。可以在Hadoop的日志目录中查找相关日志文件,例如$HADOOP_HOME/logs目录。

    总之,No FileSystem for scheme: hdfs错误通常是由于Hadoop配置不正确或者Hadoop服务未启动导致的,需要检查Hadoop配置、Hadoop服务是否启动、Hadoop版本和Hadoop依赖库等方面,以及查看Hadoop的日志文件,找出具体的错误原因。

    【由 http://www.gpt100.chat/ 生成】

    评论

报告相同问题?

问题事件

  • 创建了问题 6月13日

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题