为了账号安全,请及时绑定邮箱和手机立即绑定

Windows 上的 Spark - java.lang.UnsatisfiedLinkError:

Windows 上的 Spark - java.lang.UnsatisfiedLinkError:

九州编程 2023-07-13 15:48:32
在 Win10 中,在 IntelliJ 中,此路径(“C:/hive/Orders_[0-9]*.csv”)作为独立的 java Spark 作业运行时效果很好。但不作为 Spring Boot Spark 工作。似乎 Spring Boot 未检测到本机文件系统。不知道如何解决这个问题。Dataset<Row> DF1 = spark                .read().format("csv")                .option("header", "true")                .option("delimiter", "\t")                .load("C:/hive/Orders_[0-9]*.csv");错误:Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.2019-09-04 21:59:27.701 ERROR [omni-ods-migration,,,] 8216 --- [           main] o.s.boot.SpringApplication               : Application startup failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'odsMigrationService': Invocation of init method failed; nested exception is java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)当给出确切的文件名的路径时,下面的代码在 Spring Boot 中也能正常工作。Dataset<Row> DF1 = spark                .read().format("csv")                .option("header", "true")                .option("delimiter", "\t")                .load("C:/hive/Orders_000001.csv");如何解决这个问题?
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

这是一个可能的解决方案

  1. 从https://github.com/cdarlint/winutils下载适用于 Windows 的 Hadoop 文件

  2. 提取文件(例如 C:\hadoop)。确保目录结构与此类似C:\hadoop\bin\winutils.exe

  3. 将环境变量设置HADOOP_HOMEC:\hadoop

  4. 将 Hadoop 添加到 Path 环境变量:%HADOOP_HOME%\bin

  5. 复制hadoop.dllWindows\System32(可能不需要)

  6. 重启系统

  7. Java 应用程序特定:将其添加到 main 方法中:System.setProperty ("hadoop.home.dir", "C:/hadoop/" ); System.load ("C:/hadoop/bin/hadoop.dll");

查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信