我在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
我已经下载了没有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.
任何帮助将不胜感激.谢谢.
我是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.为了建立"自制"套餐,我做了以下事情:
设置环境:
设置JAVA_HOME = {path_to_JDK_root}
似乎JAVA_HOME 绝不能包含空间!
set …Run Code Online (Sandbox Code Playgroud) 同样的问题如无法在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
期待您的回复,并感谢您的时间!
我知道有一个非常相似的帖子(无法在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%
但是当我尝试代码时仍会出现相同的错误.有谁知道如何解决这个问题?
我正在探索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) 我正在尝试将 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) 我有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) 我在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) apache-spark ×6
hadoop ×3
java ×2
maven ×2
windows ×2
hdfs ×1
pyspark ×1
python ×1
scala ×1
windows-10 ×1