spark pyspark无法运行

本文介绍了一种在使用PySpark时遇到的启动错误及其解决方案。该错误与笔记本电脑的IP地址有关,在尝试运行pyspark shell脚本时出现。通过在hosts文件中添加特定条目来解决此问题。

spark 版本 spark-2.2.0-bin-hadoop2.7

java:1.8

在运行 ./bin/pyspark 报错

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)

解决办法:

I had the same problem with Spark and it is related to your Laptop IP.

My solution:

sudo /etc/hosts

below

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

add

127.0.0.1 LAPTOPNAME

your LAPTOPNAME can be found with your Terminal and it is root@LAPTOPNAME (whichever you have set up during your installation)

It will run with Java1.


### 关于Cloudera平台上的SparkPySpark #### 安装与配置 为了在Cloudera平台上安装并配置Apache Spark以及PySpark环境,通常建议通过Cloudera Manager来完成这一过程。这不仅简化了部署流程,还提供了图形化的界面用于监控集群健康状态和服务性能。 对于基于RPM包管理系统的Linux发行版而言,在开始之前确实需要先下载并安装`bootstrap` RPM文件[^1]。此操作会更新本地Yum源设置以加入来自Cloudera官方维护的远程仓库链接,从而使得后续能够顺利获取到最新版本的Hadoop生态系统组件及其依赖项。 一旦完成了上述准备工作之后,则可以通过Cloudera Manager界面对所需服务进行选择性启用;具体来说就是找到“Add Service”选项卡下的Spark服务,并按照向导指示逐步完成初始化设定工作。值得注意的是,在这个过程中可以指定是否要同时开启支持Python编程接口(PySpark)的功能开关。 ```bash sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server ``` 这段命令适用于执行初步软件栈搭建阶段,即当环境中尚未存在任何CDH(Clondera's Distribution Including Apache Hadoop)相关程序时所采取的动作。 #### 使用教程 针对初次接触Spark框架的新手开发者们,可以从简单的Word Count案例入手学习如何编写基本的数据处理逻辑。而在掌握了核心概念和技术要点以后,则可尝试探索更多高级特性比如流式计算(Streaming),机器学习库(MLlib),图算法(GraphX)等领域的内容。 至于PySpark部分,则更加侧重于介绍怎样利用Pandas DataFrame API风格的操作方式去实现高效便捷的大规模数据分析任务。由于其底层仍然依托于RDD机制运作,因此两者之间存在着紧密联系但也存在一定差异之处值得深入研究比较。 #### 最佳实践 - **资源规划**:合理分配节点内存给各个应用实例,避免因过度占用而导致整体系统响应缓慢甚至崩溃的情况发生。 - **数据分区优化**:根据实际业务场景需求调整输入输出文件大小及数量,减少Shuffle环节带来的额外开销。 - **持久化策略选取**:权衡不同级别的缓存模式利弊得失,力求达到速度与成本之间的平衡点。 - **错误恢复机制设计**:构建完善的日志记录体系以便快速定位故障原因,并制定相应的补救措施确保作业连续稳定运行
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值