目录
最近做大数据项目,要用到Hadoop+Spark作为解决方案,因此学习Spark,这里把学习过程中的问题记录一下。
特别声明,因为遇到的问题,基本都有前辈遇到并分享,解决方法大都参考自网络分享,参考引用内容都已标注并在文末附上了出处~ 感谢分享~
问题1:winnutils 未配置
问题描述
程序运行的过程中,报Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executablenull\bin\winutils.exe in the Hadoop binaries.
问题解决 1
出错的原因在于window本地无法获取hadoop的配置。
解决方法:
去GitHub下载
问题2:shell输出INFO日志
问题描述
spark-submit 输出日志把INFO级别日志信息也输出,造成输出内容过多。
问题解决2
解决基本思路:
进入到spark目录/conf文件夹下,此时有一个log4j.properties.template文件,拷贝一份为log4j.properties,打开;
将其中的 log4j.rootCategory=INFO, console中的INFO改为WARN或者ERROR,保存。
完成!
问题3:将jupyter notebook作为pyspark的默认编辑器3
问题描述
安装完spark后,通过pyspark打开spark,默认是直接在cmd中,当然不如在jupyter notebook中打开来得爽~
问题解决
只需要添加两个环境变量:
- 新建系统变量PYSPARK_DRIVER_PYTHON,值设为 jupyter;
- 新建系统变量PYSPARK_DRIVER_PYTHON_OPTS,值设为 notebook。
好了,重启电脑(不一定是必须的,可以在一个cmd中修改path,然后重新打开一个cmd ,就可以刷新环境变量~~),打开cmd,输入pyspark,就是以jupyter打开的了~
注意,这时候,在jupyter中自动创建了SparkContext对象sc,不需要自己创建了~否则会报错。