热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spark遇到的问题

本人spark小白一枚,最开始使用spark时遇到过许多问题,现在把它们都记录下来,希望给后人一个参考。大神不要嘲笑哦~~~1.清除mac缓存:rm-rfetcudev

本人spark小白一枚,最开始使用spark时遇到过许多问题,现在把它们都记录下来,希望给后人一个参考。大神不要嘲笑哦~~~


1.清除mac缓存:rm -rf /etc/udev/rules.d/70-persistent-net.rules


2.spark-submit \

--class main.scala.SparkWordCount \

--master spark://192.168.109.130:7077 \

/home/yingying/SparkTest.jar \

file:///usr/spark/spark-1.5.1-bin-hadoop2.6/README.md


3.出错Error: Could not find or load main class org.apache.spark.launcher.Main时,把spark重新装一遍即可= =

 

 

4. 出现"*** is already defined as object ***"错误

 

编写好SogouResult后进行编译,出现"Sogou is already as object SogouResult"的错误,

 

出现这个错误很可能不是程序代码的问题,很可能是使用Scala JDK版本问题,作者在使用scala-2.11.4遇到该问题,换成scala-2.10.4后重新编译该问题得到解决,需要检查两个地方配置:LibrariesGlobal Libraries分别修改为scala-2.10.4

 

 

  def main(args:Array[String]){

    val cOnf= new SparkConf().setAppName("Spark Pi")

    val spark = new SparkContext(conf)

    val data = spark.textFile("data")

 

    val mappeddata = data.map(num => {(num % 10 , num)})

    val count = mappeddata.reduceByKey((a,b) => {a+b}).collect()

 

    val sum_count = count.map(data => {data._2}).sum

 

    var temp = 0

    var index = 0

    val mid = sum_count/2

    for(i <- 0 to 10) {

      temp = temp + count(i)

      if(temp >= mid) {

        index = i

        break

      }

    }

 

    val offset = temp -mid

 

    val result = mappeddata.filter(num => num._1 == index).takeOrdered(offset)

    println("Median is "+ result(offset))

    spark.stop()

  }


5.WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

 

解决方法:因为我的集群环境,每个节点只剩下500MB内存了,由于我没有配置SPARK_EXECUTOR_MEMORY参数,默认会使用1G内存,所以会出现内存不足,从而出现上面日志报的警告信息。

所以解决办法是添加如下参数:

export SPARK_EXECUTOR_MEMORY=100M

 

转自:http://blog.csdn.net/jiangshouzhuang/article/details/48844859

 

6.集群启动spark-shell,即MASTER=spark://SparkMaster:7077 ./spark-shell出错,解决方法:把MASTER改成master==简直不能再无语。。)相关链接:http://bbs.csdn.net/topics/390941085

 

7.hadoopdatanode启动不起

 

例如:

NameNodeDataNodenamespaceID不一致,这个错误是很多人在安装时会遇到的,日志信息为:

java.io.IOException: Incompatible namespaceIDs in/root/tmp/dfs/data:

NameNode namespaceID = 1307672299; DataNode namespaceID =389959598

HDFS一直没有启动,读者可以查询日志,并通过日志进行分析,以上提示信息显示了NameNodeDataNodenamespaceID不一致。

这个问题一般是由于两次或两次以上的格式化NameNode造成的,有两种方法可以解决,第一种方法是删除DataNode的所有资料(及将集群中每个datanode/hdfs/data/current中的VERSION删掉,然后执行hadoopnamenode-format重启集群,错误消失。<推荐>);第二种方法是修改每个DataNodenamespaceID(位于/hdfs/data/current/VERSION文件中)<优先>或修改NameNodenamespaceID(位于/hdfs/name/current/VERSION文件中),使其一致。

参考:http://kisuntech.blog.51cto.com/8003773/1304629

 

8.

ERROR util.SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[appclient-registration-retry-thread,5,main]

spark-submit RECEIVE SIGNAL 15

解决方法:提交任务时,把Master7077改成192.168.109.130:7077

 

9.某个datanode突然连不上namenode时,先把这个datanodetmp目录里面的VERISON删掉,然后在namonode上执行hadoop dfsadmin -refreshNodes ,再在死掉的datanode上面执行hadoop-daemon.sh start datanode,然后ok

相关链接:http://zhousheng29.iteye.com/blog/1667101(跟他的错误原因不一样,但是解决方法一样)

 

10.spark-submit提交作业时,读取本地文件明明路径是对的但是报错file doesn exists

至今不知道解决方法,换了个文件就好了,无语==

 

11.

代码一:object WorldCount {

  def main(args:Array[String]){

    val master = args(0)

    val sc = new SparkContext(master,"WordCount",System.getenv("SPARK_HOME"))

    val input = sc.textFile(args(1))

    val words = input.flatMap(_.split(" "))

    val count = words.map((_,1)).reduceByKey(_+_)

    count.saveAsTextFile(args(2))

  }

}

 

代码二:object WordCount2 {

  def main(args:Array[String]){

    val master = args(0)

    val sc = new SparkContext(master,"WordCount2",System.getenv("SPARK_HOME"))

    val input = sc.textFile(args(1))

    val wordcount = input.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)

    wordcount.collect

    wordcount.saveAsTextFile(args(2))

  }

}

 

代码一不能执行成功但是代码二可以,因为。。。。代码二多了一个collect。。。。哎呦我去,折腾了一下午,宝宝心里苦

 

12.scala程序打包:

(0)最最首先要在projectStruture里面把spark的库添加进去,添加好的时候如图


 

1scr目录下面建目录main,再在main下面建一个目录scala(不知道这两个目录是不是必需的)

2projectStruture里面,Artifacts--->添加上,然后把没用的包都删掉,弄好之后如图

 

(3)Bulid--->bulid Artifacts--->bulid

(4)完活,去工程的文件夹--->out--->artifacts里面就可以找到啦


13.以指定executor-memory的方式启动spark-shell:

 

14.slave机器用jps查看进程的时候有DataNode,但是用web查看的话或者用bin/hadoop dfsadmin -reportlive nodes0. 这说明datanode没有正常启动。看了datanodelog,显示一直在连接master但是一直retry,我查过所有的hosts,并且无论用ping还是ssh都是通的。

解决办法:是配置文件core-site.xml出了问题,sparkslave1的里面的core-site.xml

fs.defaultFS

hdfs://Master:9000

其中master的端口与Master相应配置文件的端口不一致。。。。。

查出bug的一瞬间想手刃自己。。。


 



推荐阅读
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • Go从入门到精通系列视频之go编程语言密码学哈希算法(二) ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文详细介绍了 MySQL InnoDB 存储引擎的事务机制,包括 ACID 特性、redo 日志、undo 日志以及 checkpoint 的作用和实现方式。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 美团优选推荐系统架构师 L7/L8:算法与工程深度融合 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 在第二课中,我们将深入探讨Scala的面向对象编程核心概念及其在Spark源码中的应用。首先,通过详细的实战案例,全面解析Scala中的类和对象。作为一门纯面向对象的语言,Scala的类设计和对象使用是理解其面向对象特性的关键。此外,我们还将介绍如何通过阅读Spark源码来进一步巩固对这些概念的理解。这不仅有助于提升编程技能,还能为后续的高级应用开发打下坚实的基础。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
author-avatar
余陈辉syllabear
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有