目前在做广告投放机,听从女友的建议,开通人生的第一个博客,来记录问题,提出想法,解决问题。以此为记!
之前做的权限管理·也会把心得体会逐渐放上来~个人比较懒,更新不会太快~仅作自己研究用!啦啦啦~~
一、投放机的结构
投放机顾名思义,是用来投放广告的。
(后面再说)
二、spark的学习
在Eclipse下调试spark程序时,通常会用两种错误,第一种是hadoop的winUtils.exe有问题,第二种是序列化问题,错误表现是akka连接不上。
方法/步骤
1、设置环境变量:HADOOP_HOME,在windows下调试Eclipse时,并不需要在windows下安装hadoop,只需要配置一下环境变量就好了,然后HADOOP_HOME执行的位置的bin下要有winUtils.exe,设置环境变量的方式不用讲了吧!
2、在Eclipse项目中添加spark-assembly-1.4.1-hadoop2.4.0.jar,这里添加你需要的版本。注意,不要使用spark的分散的jar包,这一点主要是maven时需要注意,因为maven时它会下载好多jar,这里会引进第二个问题,序列化问题,应该是scala的问题。
3、设置环境变量SPARK_CLASSPATH,这个环境变量不是必须的,你看一下你的服务器是不是设置了。
其实这一步和下面的一步本质作用是一样的,都是告诉spark依赖的jar,而告诉spark依赖jar的方法有两种,一种是设置环境变量,另一种是addJar方式。作者是这样认为,如果公用的jar,那么就通过设置环境变量的方式,如果是算法私有的jar,就通过addJar方式。
注意,环境变量SPAKR_CLASSPATH的值是unix方式,就是跟服务器设置的一样,不要用win的方式“;”,为啥呢?作者认为,通过设置环境变量的方式时,在初始化spark上下文时,并没有分发jar到各个worker,所以需要指定jar在服务器的位置。(有问题的话,请留言,嘴拙)
4、addJar方式,上面讲过了。
与环境变量的方式区别在于,驱动程序启动,初始化上下文时,需要分发jar到各个worker,所以针对私有的jar,最好使用addJar方式。
5、到了这里,应该全部配置完成了,如果我讲述的比较清晰的话,你应该可以随意调试了。
如果存在问题,请指正。如果有疑问,请留言。