spark 项目 一般常见的一个小错误

1.G [org.apache.hadoop.util.Shell] - Failed to detect a valid hadoop home directory
java.io.IOException : HADOOP_HOME or hadoop.home.dir are not set.

解决方法 ,本地设置一下 hadoop_home 的路径 加入到path 环境变量里
2.在项目中 加入 设置

 System.setProperty("hadoop.home.dir","/usr/local/Cellar/hadoop/3.0.0")
       

2.# IllegalAccessError to guava's StopWatch from org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus

尤其在运行 sparkcontext.textfile()时会出现
这个是因为 spark 2.2依赖的 hadoop 的版本太低 ,提高hadoop的版本 显示声明即可

libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "3.0.0"


compile('org.apache.hadoop:hadoop-mapreduce-client-core:2.7.2') {force = true}

compile('org.apache.hadoop:hadoop-common:2.7.2') {force = true} // required for org.apache.hadoop.util.StopWatch  

compile('commons-io:commons-io:2.4') {force = true} // required for org.apache.commons.io.Charsets that is used internally

https://stackoverflow.com/questions/36427291/illegalaccesserror-to-guavas-stopwatch-from-org-apache-hadoop-mapreduce-lib-inp

  1. Caused by: com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.8.11
    大概还是因为 spark 依赖的jackson 的版本太高 不兼容

解决方法

dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-core" % "2.8.7"
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.7"
dependencyOverrides += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.8.7"

  1. 输出的日志 信息太多 太杂
    解决方法 配置一下 logback 即可,不该输出的 就不要输出了,重新编译即可

5 play 框架 集成 spark neo4j 文件 目录 和数据目录 ,要设置一下

unmanagedResourceDirectories in Compile += baseDirectory.value /"conf"
unmanagedResourceDirectories in Compile += baseDirectory.value /"data"
unmanagedResourceDirectories in Compile += baseDirectory.value /"public"
resourceDirectory in Compile := baseDirectory.value / "data"
resourceDirectory in Compile := baseDirectory.value / "conf"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容