1)在win7下使用spark shell运行spark程序,通过以下形式读取文件时

  1. sc.sequenceFile[Int,String]("./sparkF")

偶尔会出现“Input path does not exist”,原因是没有使用“file:///”表示文件时本地文件系统上的文件,相对路径形式如下:

  1. sc.sequenceFile[Int,String]("file:///.\\sparkF")

不过,还可以使用绝对路径,更保险些。

2)在Ubuntu上读取文件,貌似三种都可以。参考0

  1. sc.sequenceFile[Int,String]("file:///home/hadoop/sparkF")
  2.  
  3. sc.sequenceFile[Int,String]("file://home/hadoop/sparkF")
  4.  
  5. sc.sequenceFile[Int,String]("file:/home/hadoop/sparkF")

3)可以使用println()打印某些变量值,然后在Exector对应的stdout可以看到打印的内容

4)有时候电脑IP没有固定的话,从教研室把电脑背回来,在IDEA上单机运行spark程序就失败了,提示如下:

  1. ERROR NettyTransport: failed to bind to host.home/192.168.1.124:

“192.168.1.124”是在教研室的IP。出错的原因就是,创建sparkContext时,在“SparkEnv.scala”中,可以看到“spark.driver.host”对应值是:

  1. 192.1681.1.124//正好是教研室地址,与当前地址不同,自然报错

修改代码即可,原先代码如下:

  1. val conf2=new SparkConf().setAppName("matrixProduct").setMaster(args())

修改后代码如下:

  1. val conf2=new SparkConf().setAppName("matrixProduct").setMaster(args()).set("spark.local.ip","127.0.0.1")
  2. .set("spark.driver.host","127.0.0.1")

参考

5)有时候运行spark作业会提示“WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory”,原因是申请的Exector内存比节点自身内存还要大。访问web界面中8080端口,看到每个节点的RAM是979MB,而提交作业时使用关键字 --executor-memory 1g,这样就超过了自身内存,所以报错。参考

6)使用IDEA调试spark程序时,在控制台窗口会打印出很多的“INFO,WARN”类信息,这些信息,我们并不需要,我们只需要打印出“ERROR”信息,解决方法如下:

1.首先生成spark_Home/conf中的“log4j.properties“文件,方法如下:

  1. Even simpler you just cd SPARK_HOME/conf
  2. then mv log4j.properties.template log4j.properties then open log4j.properties and change all INFO to ERROR.
  3. Here SPARK_HOME is the root directory of your spark installation.

其实生成了“log4j.properties”文件之后,当我们使用集群的方式运行spark程序时,就可以在控制台屏蔽掉那些”INFO“和”WARN“类的信息,但是如果是在IDEA本地调试spark程序时,”INFO“ ”WARN“类信息仍然会打印出来,解决方法参考以下方法

2.在完成了上述步骤之后,为了保证在IDEA中调试spark程序时避免打印”INFO“、”WARN“类信息,需要在spark程序在添加如下代码:

  1. import org.apache.log4j.PropertyConfigurator
  2.  
  3. PropertyConfigurator.configure("path to log4j.properties")
  4.  
  5. sparkconf.set("log4j.configuration", "path to log4j.properties");

参考:1  2

7)Spark下SequenceFile文件分片数量的确定

http://www.cnblogs.com/gaoze/p/5208970.html

对于在spark中使用Sequence,其分片数量的计算方式与hadoop中相同,其实就是调用了hadoop中的实现来计算,计算goalSize,minSize,maxSize。如下图:

8)sortBy和sortByKey函数

http://www.iteblog.com/archives/1240

9)遍历了一次 Iterable 之后,再次遍历的时候,数据都没了

https://my.oschina.net/leejun2005/blog/131744

Spark小问题合集的更多相关文章

  1. html 小游戏合集(1.0)

    最近做了个小游戏合集,有点沙雕,毕竟是1.0,将就看看. <!DOCTYPE html> <html> <head> <meta charset=" ...

  2. spark 入门教程合集

    看到一篇不错的 spark 入门教程的合集,在此记录一下 http://www.cnblogs.com/shishanyuan/p/4699644.html

  3. js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。

    1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...

  4. Vue-小demo、小效果 合集(更新中...)

    (腾讯课堂学习小demo:https://ke.qq.com/course/256052) 一.简单的指令应用 --打击灭火器 图片素材点击腾讯课堂的链接获取       html: <!DOC ...

  5. 小tips合集

    No. 1 同一个文本文件里的行结束符如果不一致,比如有些行结束符是0D0A-Windows风格的,而有些行又是UNIX风格的0A,在这种混杂情况下,VIM将非UNIX风格的显示为^M,但如果都是0D ...

  6. Android小项目合集(经典教程)包含十五个Android开发应用实例

    http://www.cnblogs.com/aimeng/archive/2012/03/28/2422435.html

  7. 【前端学习笔记】JavaScript 小案例合集

    获取一个0-9的随机数: Math.round(Math.random()*9); 去除数组中重复的元素: var arr=[1,3,5,4,3,3,1,4] function editArr(arr ...

  8. 常见Z纯CSS小样式合集(三角形)

    三角形 .sanjiao{ width:0px; height: 0px; overflow: hidden; border-width: 100px; border-color: transpare ...

  9. Nginx小功能合集

    13.1. 跨域处理 问题由来:浏览器拒绝执行其它域名下的ajax运作 ---如果浏览器在static.enjoy.com对应的html页面内,发起ajax请求偷盗www.enjoy.com域名下的内 ...

随机推荐

  1. mysql的中文乱码问题

    当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12',' ...

  2. 最短路径算法 SP

    dijkstra求最短路径长度 dijkstra求最短路并记录路径 #include<stdio.h> #include<string.h> #include<stack ...

  3. loj6030 「雅礼集训 2017 Day1」矩阵

    传送门:https://loj.ac/problem/6030 [题解] 以下把白称为0,黑称为1. 发现只有全空才是无解,否则考虑构造. 每一列,只要有0的格子都需要被赋值1次,所以设有x列有含有0 ...

  4. Django-随机验证码

    Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 from PIL import Image img = Image.ne ...

  5. sphinx 分词搭建手册

    步奏1. yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expa ...

  6. Python学习笔记 使用数据库SQlite Mysql

    SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用当中, 甚至在IOS和Android的APP中都可以集成 Python就内 ...

  7. 查询ubuntu系统版本相关信息

    查询ubuntu系统版本相关信息 sky@sky-virtual-machine:~$ cat /etc/issueUbuntu 12.04.5 LTS \n \l proc目录下记录的当前系统运行的 ...

  8. Tomcat 部署2个项目,只有一个可以访问的解决方案

    Tomcat 部署2个应用后只有一个可以访问,另一个不能访问,一般来说就是因为Tomcat启动加载了配置文件后,当启动另一个应用时由于一些配置名称相同所以不再加载,导致之后应用无法正常启动. 异常信息 ...

  9. LNMP的基本配置

    LNMP的基本配置cd /usr/local/nginx_php/etc/ > php-fpm.conf                      //清空php-fpm.conf vim ph ...

  10. KVM的qemu-kvm使用

    KVM: kvm,x86支持硬件辅助虚拟化技术(hvm) grep -E "(vmx|svm)" /proc/cpuinfo [root@dmsag ~]# ll /dev/kvm ...