05/26-27
1.这两天基本上还是在看lda的原理与代码,参考DM的c版本lda代码,实现了一个串行的scala版本lda代码,下一步就是将代码应用于spark里。根据别人的资料,网上已经有hadoop版本的lda代码,加上自己对lda的理解,认为lda是适合放在spark里
05/28
1.今天实现了lda的spark代码,对小数据测试还行,但是数据一大,就会抛出GC overhead limit exceeded的错误,可能是因为单机的原故.
2.spark 集群无法用MASTER=spark://192.168.0.191:7077启动,但是可以用ue191:7077。不知道什么原因。
3.spark集群原worker 内存仅为294m,需要更改,更改为2g.
设置spark application 属性
val environmentV = Map[String, String]()
environmentV += ("spark.cores.max"->"1")
environmentV += ("spark.executor.memory"-> "2g")
val conf = new SparkConf().setMaster("spark://ue191:7077").setAppName("LdaSpark").set("spark.executor.memory", "2g").
set("spark.cores.max","5")
//val sc = new SparkContext("spark://ue191:7077", "LdaSpark", "/opt/spark", List("target/scala-2.10/ldaspark_2.10-1.0
.jar"), environment=environmentV)
val sc = new SparkContext(conf)
4.放在集群上,一直出现heap out of memory错误,原因是集群worker节点内存太小,2g不够
5.需要理解清楚,executor, cores的关系
6.查看log,发现这个错误,估计out of memory错误是由这个引起的
ERROR EndpointWriter: AssociationError [akka.tcp://sparkWorker@ue192:35301] -> [akka.tcp://sparkExec
utor@ue192:38313]: Error [Association failed with [akka.tcp://sparkExecutor@ue192:38313]] [
akka.remote.EndpointAssociationException: Association failed with [akka.tcp://sparkExecutor@ue192:38313]
Caused by: akka.remote.transport.netty.NettyTransport$$anonfun$associate$1$$anon$2: 拒绝连接: ue192/192.168.0.192:3831
05/29
1.这两天一直被out of memory的错误困扰,从本地文件系统到安装hdfs都无法解决问题。如果用parallelize方法则可以通过运行。一到读文件就不行。
2.问题一直无法解决,决定详细看spark的配置文件说明
3.官方文档中有In general, Spark can run well with anywhere from 8 GB to hundreds of gigabytes of memory per machine. 最低配应该为8G