2016-07-01 10 views
1

sparkR을 사용하여 "README.md"의 단어 수를 얻으려면 자습서를 따르려고했습니다. 스파크 버전 : 1.6.1 R 버전 : 3.3.0 우분투 버전 : 나는 lines <- sc.textFile("README.md")을 수행 할 때 14 그러나 내가 여기에 오류sparkR에서 textFile을 사용하려고하면 오류가 발생합니다.

Error: could not find function "sc.textFile" 

가지고 , 난이 오류가있어, 대신 lines <- SparkR:::textFile(sc, "./README.md")을 시도 : 무엇보다

16/07/01 00:06:26 INFO MemoryStore: Block broadcast_4 stored as values in memory (estimated size 88.5 KB, free 258.9 KB) 
16/07/01 00:06:26 INFO MemoryStore: Block broadcast_4_piece0 stored as bytes in memory (estimated size 19.6 KB, free 278.5 KB) 
16/07/01 00:06:26 INFO BlockManagerInfo: Added broadcast_4_piece0 in memory on localhost:40985 (size: 19.6 KB, free: 511.5 MB) 
16/07/01 00:06:26 INFO SparkContext: Created broadcast 4 from textFile at NativeMethodAccessorImpl.java:-2 
16/07/01 00:06:26 ERROR RBackendHandler: collect on 44 failed 
Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) : 
    java.net.ConnectException: Call From ubuntu/127.0.1.1 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791) 
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1473) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1400) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232) 
    at com.sun.proxy.$Proxy22.getFileInfo(Unknown Source) 
    at org.apache.hadoop.hdfs.proto 
16/07/01 00:15:59 INFO BlockManagerInfo: Removed broadcast_3_piece0 on localhost:40985 in memory (size: 14.1 KB, free: 511.5 MB) 

, 나는 PySpark 쉘에서 같은 일을하려고, 여전히,이 튜토리얼로 작동하지 않았다.

>>> lines = sc.textFile("README.md") 
16/07/01 00:27:22 INFO MemoryStore: Block broadcast_2 stored as values in memory (estimated size 227.6 KB, free 506.2 KB) 
16/07/01 00:27:22 INFO MemoryStore: Block broadcast_2_piece0 stored as bytes in memory (estimated size 19.6 KB, free 525.8 KB) 
16/07/01 00:27:22 INFO BlockManagerInfo: Added broadcast_2_piece0 in memory on localhost:33186 (size: 19.6 KB, free: 511.4 MB) 
16/07/01 00:27:22 INFO SparkContext: Created broadcast 2 from textFile at NativeMethodAccessorImpl.java:-2 
>>> lines.count() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/spark/python/pyspark/rdd.py", line 1004, in count 
    return self.mapPartitions(lambda i: [sum(1 for _ in i)]).sum() 
    File "/usr/local/spark/python/pyspark/rdd.py", line 995, in sum 
    return self.mapPartitions(lambda x: [sum(x)]).fold(0, operator.add) 
    File "/usr/local/spark/python/pyspark/rdd.py", line 869, in fold 
    vals = self.mapPartitions(func).collect() 
    File "/usr/local/spark/python/pyspark/rdd.py", line 771, in collect 
    port = self.ctx._jvm.PythonRDD.collectAndServe(self._jrdd.rdd()) 
    File "/usr/local/spark/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 813, in __call__ 
    File "/usr/local/spark/python/pyspark/sql/utils.py", line 45, in deco 
    return f(*a, **kw) 
    File "/usr/local/spark/python/lib/py4j-0.9-src.zip/py4j/protocol.py", line 308, in get_return_value 
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. 
: java.net.ConnectException: Call From ubuntu/127.0.1.1 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791) 
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1473) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1400) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232) 
    at com.sun.proxy.$Proxy19.getFileInfo(Unknown Source) 
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:752) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) 
    at com.sun.proxy.$Proxy20.getFileInfo(Unknown Source) 
    at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1977) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1118) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114) 
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1114) 
    at org.apache.hadoop.fs.Globber.getFileStatus(Globber.java:57) 
    at org.apache.hadoop.fs.Globber.glob(Globber.java:252) 
    at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1644) 
    at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:257) 
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:228) 
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:313) 
    at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:199) 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) 
    at scala.Option.getOrElse(Option.scala:120) 
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) 
    at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35) 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) 
    at scala.Option.getOrElse(Option.scala:120) 
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) 
    at org.apache.spark.api.python.PythonRDD.getPartitions(PythonRDD.scala:58) 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239) 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237) 
    at scala.Option.getOrElse(Option.scala:120) 
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:237) 
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:1929) 
    at org.apache.spark.rdd.RDD$$anonfun$collect$1.apply(RDD.scala:927) 
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150) 
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:111) 
    at org.apache.spark.rdd.RDD.withScope(RDD.scala:316) 
    at org.apache.spark.rdd.RDD.collect(RDD.scala:926) 
    at org.apache.spark.api.python.PythonRDD$.collectAndServe(PythonRDD.scala:405) 
    at org.apache.spark.api.python.PythonRDD.collectAndServe(PythonRDD.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231) 
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381) 
    at py4j.Gateway.invoke(Gateway.java:259) 
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133) 
    at py4j.commands.CallCommand.execute(CallCommand.java:79) 
    at py4j.GatewayConnection.run(GatewayConnection.java:209) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.net.ConnectException: Connection refused 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744) 
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530) 
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494) 
    at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:608) 
    at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:706) 
    at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:369) 
    at org.apache.hadoop.ipc.Client.getConnection(Client.java:1522) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1439) 
    ... 56 more 

는 TEXTFILE 기능 지원을 중단 sparkR합니까? 또는 내 JAVA_HOME 설정이 잘못 되었습니까 ( java -version에 의해 올바른 응답을 얻을 수 있습니까?)?

또 다른 작은 문제

내가 sparkR 패키지를 가져 오기 전에이 같은 SPARK_HOME 및 JAVA_HOME을 초기화해야한다는 것입니다 :

if (nchar(Sys.getenv("SPARK_HOME")) < 1) { 
    Sys.setenv(SPARK_HOME = "/usr/local/spark") 
} 
if (nchar(Sys.getenv("JAVA_HOME")) < 1) { 
    Sys.setenv(JAVA_HOME = "/usr/lib/jvm/java-7-openjdk-amd64") 
} 
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"))) 
sc <- sparkR.init(master = "local", appName = "test", sparkHome = Sys.getenv("SPARK_HOME")) 
lines <- sc.textFile("README.md") 

내가 library(sparkR)을 할 때, 나는 오류를 얻을 것이라고하지 마십시오. 해야합니까? 대부분의 자습서 온라인에서는 필요하지 않습니다. 대단히 감사합니다.

+0

이'라인을 시도 구축, 필요한 경우이 실행 HDFS를 얻을 수 = sc.textFile ("/// /README.md 파일을") 시도 우리에게 그것이 작동하는지 아닌지 알려주십시오. – WoodChopper

+0

우수 !! @WoodChopper가 위에서 말한 것을 따라 할 때 작동합니다! 정말 고마워요! spark의 내 루트 사전은/usr/local/spark이므로'lines = sc.textFile ("file : ///usr/local/spark/README.md")'을 시도한 다음 마침내 작동합니다! –

답변

0

문제는 HDFS가 실행 또는 설치에 문제가되지이다, 기본적으로 스파크 빌드는 HDFS 경로에 보이는

가 제공 예를 들어

,

lines = sc.textFile("README.md") 
가 변환됩니다

,

lines = sc.textFile("hdfs://ip:port/README.md") 

hdfs가 실행 중이 아니거나 연결이 거부 됨으로 인해 오류가 발생했기 때문에 오류가 fileNotFound이어야합니다. `:

것은

내가 HDFS에 문제처럼 나타납니다
cd HADDOP_HOME/sbin 
./stop-all.sh 
./start-all.sh 
관련 문제