安装Pyspark时遇到问题
我想在本地电脑上用pyspark运行Spark。从这里我使用了以下命令:
sbt/sbt assembly
$ ./bin/pyspark
安装完成了,但pyspark无法运行,出现了以下错误(完整错误信息):
138:spark-0.9.1 comp_name$ ./bin/pyspark
Python 2.7.6 |Anaconda 1.9.2 (x86_64)| (default, Jan 10 2014, 11:23:15)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
File "/Users/comp_name/Downloads/spark-0.9.1/python/pyspark/shell.py", line 32, in <module>
sc = SparkContext(os.environ.get("MASTER", "local"), "PySparkShell", pyFiles=add_files)
File "/Users/comp_name/Downloads/spark-0.9.1/python/pyspark/context.py", line 123, in __init__
self._jsc = self._jvm.JavaSparkContext(self._conf._jconf)
File "/Users/comp_name/Downloads/spark-0.9.1/python/lib/py4j-0.8.1-src.zip/py4j/java_gateway.py", line 669, in __call__
File "/Users/comp_name/Downloads/spark-0.9.1/python/lib/py4j-0.8.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: java.net.UnknownHostException: 138.7.100.10.in-addr.arpa: 138.7.100.10.in-addr.arpa: nodename nor servname provided, or not known
at java.net.InetAddress.getLocalHost(InetAddress.java:1466)
at org.apache.spark.util.Utils$.findLocalIpAddress(Utils.scala:355)
at org.apache.spark.util.Utils$.localIpAddress$lzycompute(Utils.scala:347)
at org.apache.spark.util.Utils$.localIpAddress(Utils.scala:347)
at org.apache.spark.util.Utils$.localIpAddressHostname$lzycompute(Utils.scala:348)
at org.apache.spark.util.Utils$.localIpAddressHostname(Utils.scala:348)
at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:395)
at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:395)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.util.Utils$.localHostName(Utils.scala:395)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:124)
at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:47)
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 py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:234)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379)
at py4j.Gateway.invoke(Gateway.java:214)
at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:79)
at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:68)
at py4j.GatewayConnection.run(GatewayConnection.java:207)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.net.UnknownHostException: 138.7.100.10.in-addr.arpa: nodename nor servname provided, or not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286)
at java.net.InetAddress.getLocalHost(InetAddress.java:1462)
... 22 more
有没有人知道我哪里出错了?我不知道IP地址138.7.100.10
是从哪里来的。
我在使用(或不使用)MAMP创建本地服务器时都会遇到这个错误。
提前谢谢大家!
3 个回答
5
我之前也遇到过和你一样的问题,这个问题和你电脑的IP地址有关。
我的解决办法是:
打开终端,输入:
sudo /etc/hosts
然后在下面添加这一行:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
再添加:
127.0.0.1 LAPTOPNAME
这里的LAPTOPNAME可以通过你的终端找到,通常是以root@LAPTOPNAME的形式出现(这个名字是你在安装时设置的)。
这样就可以在Java1.7环境下运行了。
11
正确的做法是把 SPARK_LOCAL_IP 这个环境变量设置为 localhost,或者你电脑的主机名。
4
结果发现,我使用的Java版本是1.7。
我在使用的是一台运行10.9.2系统的Macbook Air。
$ java -version
这让我得到了:
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
要降级到1.6:
$ cd /Library/Java/JavaVirtualMachines
$ ls
返回了:
jdk1.7.0_25.jdk
要删除那个文件(并降级Java,解决我的问题):
$ sudo rm -rf jdk1.7.0_25.jdk
然后我得到了:
$ java -version
这给出的结果是:
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
最后,我能够运行Spark了:
$ ./bin/pyspark
一切都很顺利:
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 0.9.1
/_/