相关疑难解决方法(0)

HDFS上的root scratch dir:/ tmp/hive应该是可写的.当前权限是:rw-rw-rw-(在Windows上)

我在Windows 7上运行Spark.当我使用Hive时,我看到以下错误

The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw- 
Run Code Online (Sandbox Code Playgroud)

权限设置如下

C:\tmp>ls -la
total 20
drwxr-xr-x    1 ADMIN Administ        0 Dec 10 13:06 .
drwxr-xr-x    1 ADMIN Administ    28672 Dec 10 09:53 ..
drwxr-xr-x    2 ADMIN Administ        0 Dec 10 12:22 hive
Run Code Online (Sandbox Code Playgroud)

我已经从Windows-> properties-> security-> Advanced为所有用户设置了"完全控制".

但我仍然看到同样的错误.有什么帮助吗?我查了一堆链接,有人说这是Spark 1.5上的一个错误.这是真的?

谢谢Aarthi

windows hdfs

43
推荐指数
7
解决办法
4万
查看次数

执行spark-shell时的NoClassDefFoundError com.apache.hadoop.fs.FSDataInputStream

我已经下载了没有hadoop的预装版本的spark 1.4.0(用户提供的Haddop).当我运行spark-shell命令时,我收到了这个错误:

> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/
FSDataInputStream
        at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSpa
rkProperties$1.apply(SparkSubmitArguments.scala:111)
        at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSpa
rkProperties$1.apply(SparkSubmitArguments.scala:111)
        at scala.Option.getOrElse(Option.scala:120)
        at org.apache.spark.deploy.SparkSubmitArguments.mergeDefaultSparkPropert
ies(SparkSubmitArguments.scala:111)
        at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArgume
nts.scala:97)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:106)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStr
eam
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 7 more
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索过,据说HADOOP_HOME尚未在spark-env.cmd中设置.但我在spark安装文件夹中找不到spark-env.cmd.我已经跟踪了spark-shell命令,似乎那里没有HADOOP_CONFIG.我试图在环境变量上添加HADOOP_HOME,但它仍然提供相同的异常.

其实我并没有真正使用hadoop.我按照这个问题的建议下载了hadoop作为解决方法

我使用的是Windows 8和scala 2.10.

任何帮助将不胜感激.谢谢.

apache-spark

36
推荐指数
5
解决办法
5万
查看次数

在Windows上运行Apache Hadoop 2.1.0

我是Hadoop的新手,并且在尝试在我的Windows 7机器上运行它时遇到了问题.特别是我对运行Hadoop 2.1.0感兴趣,因为它的发行说明提到支持在Windows上运行.我知道我可以尝试在Windows上使用Cygwin运行1.x版本,或者甚至使用例如Cloudera准备好的VM,但这些选项在某些方面对我来说不太方便.

检查了来自http://apache-mirror.rbc.ru/pub/apache/hadoop/common/hadoop-2.1.0-beta/的tarball 我发现确实有一些*.cmd脚本可以在没有Cygwin的情况下运行.当我编写HDFS分区时,一切正常,但是当我尝试运行hdfs namenode守护进程时,我遇到了两个错误:首先,非致命,是找不到winutils.exe(它确实没有在下载的tarball中出现).我在Apache Hadoop源代码树中找到了该组件的源代码,并使用Microsoft SDK和MSbuild对其进行了编译.由于详细的错误消息,很明显在哪里放置可执行文件来满足Hadoop.但是致命的第二个错误并没有包含足够的信息供我解决:

13/09/05 10:20:09 FATAL namenode.NameNode: Exception in namenode join
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:423)
    at org.apache.hadoop.fs.FileUtil.canWrite(FileUtil.java:952)
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:451)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:282)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:200)
...
13/09/05 10:20:09 INFO util.ExitUtil: Exiting with status 1
Run Code Online (Sandbox Code Playgroud)

看起来应该编译其他东西.我将尝试使用Maven从源代码构建Hadoop但是不是更简单的方法吗?是不是有一些选项 - 我知道不能禁用本机代码并使该tarball在Windows上可用?

谢谢.

更新.确实是的."Homebrew"包中包含一些额外的文件,最重要的是winutils.exe和hadoop.dll.使用此文件,namenode和datanode成功启动.我认为问题可以结束.如果有人面临同样的困难,我没有删除它.

更新2.为了建立"自制"套餐,我做了以下事情:

  1. 得到消息来源,然后解压缩它们.
  2. 仔细阅读BUILDING.txt.
  3. 已安装的依赖项:
    3a)Windows SDK 7.1
    3b)Maven(我使用3.0.5)3c)JDK(我使用1.7.25)
    3d)ProtocolBuffer(我使用2.5.0 - http://protobuf.googlecode.com/files/ protoc-2.5.0-win32.zip).仅将编译器(protoc.exe)放入某些PATH文件夹就足够了.
    3e)一组UNIX命令行工具(我安装了Cygwin)
  4. 启动Windows SDK的命令行.开始| 所有节目| Microsoft Windows SDK v7.1 | ...命令提示符(我修改了此快捷方式,在命令行中添加选项/发行版以构建本机代码的发行版本).所有后续步骤都是从SDK命令行窗口内部完成的)
  5. 设置环境:

    设置JAVA_HOME = {path_to_JDK_root}

似乎JAVA_HOME 绝不能包含空间!

set …
Run Code Online (Sandbox Code Playgroud)

windows hadoop

34
推荐指数
6
解决办法
6万
查看次数

无法在Windows中启动Spark的master

同样的问题如无法在Windows 10中启动主要的火花也未解决.

通过测试pyspark.cmd和spark-shell.cmd,我的火花效果很好

跑完后.\sbin\start-master.sh我得到了:

ps: unknown option -- o
Try 'ps --help' for more information.
starting org.apache.spark.deploy.master.Master, logging to C:\spark-1.6.1-bin-hadoop2.6/logs/spark--org.apache.spark.deploy.master.Master-1-%MY_USER_NAME%-PC.out
ps: unknown option -- o
Try 'ps --help' for more information.
failed to launch org.apache.spark.deploy.master.Master:
  ========================================
  Picked up _JAVA_OPTIONS: -Xmx512M -Xms512M
full log in C:\spark-1.6.1-bin-hadoop2.6/logs/spark--org.apache.spark.deploy.master.Master-1-%MY_USER_NAME%-PC.out
Run Code Online (Sandbox Code Playgroud)

我试图访问Web UI,而localhost:4040正在使用localhost:8080无法访问.

我发现在%SPARK_HOME%/ logs文件夹中创建了.log文件.它们包含相同的内容:

Spark命令:

C:\Program Files\Java\jdk1.7.0_79\bin\java -cp C:\spark-1.6.1-bin-hadoop2.6/conf\;C:\spark-1.6.1-bin-hadoop2.6/lib/spark-assembly-1.6.1-hadoop2.6.0.jar;C:\spark-1.6.1-bin-hadoop2.6\lib\datanucleus-api-jdo-3.2.6.jar;C:\spark-1.6.1-bin-hadoop2.6\lib\datanucleus-core-3.2.10.jar;C:\spark-1.6.1-bin-hadoop2.6\lib\datanucleus-rdbms-3.2.9.jar -Xms1g -Xmx1g -XX:MaxPermSize=256m org.apache.spark.deploy.master.Master --ip hahaha-PC --port 7077 --webui-port 8080

========================================
Picked up _JAVA_OPTIONS: -Xmx512M -Xms512M
Run Code Online (Sandbox Code Playgroud)

工作环境:Spark:1.6.1 Windows 10

期待您的回复,并感谢您的时间!

apache-spark windows-10

13
推荐指数
3
解决办法
1万
查看次数

Spark 1.6-无法在hadoop二进制路径中找到winutils二进制文件

我知道有一个非常相似的帖子(无法在hadoop二进制路径中找到winutils二进制文件),但是,我已经尝试了建议的每一步,但仍然出现相同的错误.

我正在尝试在Windows 7上使用Apache Spark版本1.6.0来执行此页面上的教程http://spark.apache.org/docs/latest/streaming-programming-guide.html,特别是使用此代码:

./bin/run-example streaming.JavaNetworkWordCount localhost 9999
Run Code Online (Sandbox Code Playgroud)

但是,此错误一直出现: 在此输入图像描述

阅读本文后, 无法在hadoop二进制路径中找到winutils二进制文件

我意识到我需要winutils.exe文件,所以我用它下载了一个hadoop二进制2.6.0,定义了一个名为HADOOP_HOME的环境变量:

 with value C:\Users\GERAL\Desktop\hadoop-2.6.0\bin  
Run Code Online (Sandbox Code Playgroud)

并将其放在路径上,如下所示:%HADOOP_HOME%

但是当我尝试代码时仍会出现相同的错误.有谁知道如何解决这个问题?

java hadoop apache-spark

12
推荐指数
1
解决办法
3万
查看次数

使用Apache Spark将RDD写为文本文件

我正在探索Spark进行批处理.我使用独立模式在本地计算机上运行spark.

我试图使用saveTextFile()方法将Spark RDD转换为单个文件[最终输出],但它不起作用.

例如,如果我有多个分区,我们可以将一个文件作为最终输出.

更新:

我尝试了以下方法,但我得到空指针异常.

person.coalesce(1).toJavaRDD().saveAsTextFile("C://Java_All//output");
person.repartition(1).toJavaRDD().saveAsTextFile("C://Java_All//output");
Run Code Online (Sandbox Code Playgroud)

例外是:

    15/06/23 18:25:27 INFO Executor: Running task 0.0 in stage 1.0 (TID 1)
15/06/23 18:25:27 INFO deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
15/06/23 18:25:27 INFO deprecation: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class
15/06/23 18:25:27 INFO deprecation: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class
15/06/23 18:25:27 INFO deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir
15/06/23 18:25:27 ERROR Executor: Exception in task 0.0 in stage 1.0 (TID 1)
java.lang.NullPointerException
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:404)
    at …
Run Code Online (Sandbox Code Playgroud)

java apache-spark apache-spark-sql

9
推荐指数
2
解决办法
3万
查看次数

Pyspark - 无法在 hadoop 二进制路径中找到 winutils 二进制文件

我正在尝试将 pyspark 与 python 2.7(Pycharm IDE)集成。我需要运行一些巨大的文本文件。

所以这就是我正在做的。

下载 Spark (2.3.0-bin-hadoop-2.7) 并解压 安装 JDK

然后我试图运行这个脚本

spark_home = os.environ.get('SPARK_HOME', None) os.environ["SPARK_HOME"] = "C:\spark-2.3.0-bin-hadoop2.7" import pyspark from pyspark import SparkContext, SparkConf from pyspark。 sql 导入 SparkSession

conf = SparkConf()
sc = SparkContext(conf=conf)
spark = SparkSession.builder.config(conf=conf).getOrCreate() 
import pandas as pd
ip = spark.read.format("csv").option("inferSchema","true").option("header","true").load(r"D:\some file.csv")
Run Code Online (Sandbox Code Playgroud)

Pycharm 说没有找到名为 Pyspark 的模块。

我正在通过添加内容根并指向安装它的文件夹来解决这个问题。

但问题是每次我重新打开 pycharm 时,我都必须添加内容根。我该如何解决?

接下来是,当我设法运行脚本时,它会引发以下错误。

2018-06-01 12:20:49 ERROR Shell:397 - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable …
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

5
推荐指数
2
解决办法
8346
查看次数

是否可以在没有Cygwin的Windows上以本地模式运行Hadoop作业(如WordCount示例)?

我有Windows 7,Java 8,Maven和Eclipse.我创建了一个Maven项目和使用几乎一模一样的代码在这里.

这只是一个简单的"字数统计"样本.我尝试从Eclipse启动"驱动程序"程序,我提供命令行参数(输入文件和输出目录)并获得以下错误:

Exception in thread "main" java.lang.NullPointerException   at
java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)    at
org.apache.hadoop.util.Shell.runCommand(Shell.java:404)     at
org.apache.hadoop.util.Shell.run(Shell.java:379)    at
org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:589) at
org.apache.hadoop.util.Shell.execCommand(Shell.java:678)    at
org.apache.hadoop.util.Shell.execCommand(Shell.java:661)    at
org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:639) at
org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:435) at
org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:277) at
org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:125) at
org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:344) at
org.apache.hadoop.mapreduce.Job$10.run(Job.java:1268)   at
org.apache.hadoop.mapreduce.Job$10.run(Job.java:1265)   at
java.security.AccessController.doPrivileged(Native Method)  at
javax.security.auth.Subject.doAs(Subject.java:422)  at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) at
org.apache.hadoop.mapreduce.Job.submit(Job.java:1265)   at
org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1286)    at
misc.projects.hadoop.exercises.WordCountDriverApp.main(WordCountDriverApp.java:29)
Run Code Online (Sandbox Code Playgroud)

失败的行(WordCountDriverApp.java:29)包含启动作业的命令:

job.waitForCompletion(true)

我想让它工作,因此我想了解一些事情:

我是否必须提供任何hdfs-site.xml,yarn-site.xml,...所有这一切,如果我只想要本地模式(没有任何集群)?我现在没有这些XML配置文件.据我所知,本地模式的默认值都可以,也许我错了.

在Windows下完全可以(无论是启动任何Hadoop任务)还是整个Hadoop都只有Linux?

PS:Hadoop依赖关系如下:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.2.0</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

hadoop maven

3
推荐指数
1
解决办法
3466
查看次数

使Spark 1.4.1在IntelliJ Idea 14中运行

我在IntelliJ Idea 14.1.4中使用Scala 2.11.7安装Spark 1.4.1时遇到问题.首先:我安装了源代码版本.我应该安装Hadoop 2.4+的版本吗?我做了什么:我从tgz文件中创建了一个Maven项目并保存了它.我需要做更多吗?pom.xml文件的第一行是:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>14</version>
  </parent>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-parent_2.10</artifactId>
  <version>1.4.1</version>
  <packaging>pom</packaging>
  <name>Spark Project Parent POM</name>
  <url>http://spark.apache.org/</url>
  <licenses>
    <license>
      <name>Apache 2.0 License</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:git@github.com:apache/spark.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/spark.git</developerConnection>
    <url>scm:git:git@github.com:apache/spark.git</url>
    <tag>HEAD</tag>
  </scm>
  <developers>
    <developer>
      <id>matei</id>
      <name>Matei Zaharia</name>
      <email>matei.zaharia@gmail.com</email>
      <url>http://www.cs.berkeley.edu/~matei</url>
      <organization>Apache Software Foundation</organization>
      <organizationUrl>http://spark.apache.org</organizationUrl>
    </developer>
  </developers>
Run Code Online (Sandbox Code Playgroud)

它试图在build.sbt中用一个简单的例子来运行spark:

name := "hello"
version := "1.0"
scalaVersion := "2.11.7"
libraryDependencies += "org.apache.spark" % "spark-parent_2.10" % "1.4.1"
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
15/08/27 11:14:03 …
Run Code Online (Sandbox Code Playgroud)

scala intellij-idea maven apache-spark

1
推荐指数
1
解决办法
2698
查看次数