您的位置:首页 > 数据库 > MySQL

第97课: 使用Spark Streaming+Spark SQL+mysql 实现在线动态计算出特定时间窗口下的不同种类商品中的热门商品排名(详细内幕版本)

2016-05-24 20:51 1071 查看
第97课: 使用Spark Streaming+Spark SQL+mysql 实现在线动态计算出特定时间窗口下的不同种类商品中的热门商品排名.

/* 王家林老师授课http://weibo.com/ilovepains 每天晚上20:00YY频道现场授课频道68917580*/

使用Spark Streaming+Spark SQL+Mysql来在线动态计算电商中不同类别中最热门的商品排名,例如手机这个类别下面最热门的三种手机、电视这个类别

下最热门的三种电视,该实例在实际生产环境下具有非常重大的意义;

Spark Streaming+Spark SQL+mysql 知易行难,也是知难行易

1, java.lang.NullPointerException 空指针问题解决

foreachRDD、foreachPartition 增加isEmpty的判断
单元测试,单独把数据库连接入库的代码运行,硬编码方式插入记录,验证数据库连接正常。
看foreachRDD、foreachPartition的源代码,加深对foreachRDD、foreachPartition理解。
nc -lk 9999 输入数据格式的规范,避免输入数据格式出错。
打印日志排查 reseltDataFram.show() resultRowRDD.take(10).foreach(println)

2,java.sql.SQLException: Access denied for user 'root'@'worker6' 权限问题解决

在mysq中 开通远程登录的权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

FLUSH PRIVILEGES;

3,虚拟机磁盘空间问题解决。

windows+vmvare虚拟机,huawei服务器设备只有300G,安装了1个master,8个worker虚拟机设备,每台虚拟机设备分配20g的空间 ,实际运行时候每台虚拟机约10g左右,但运行spark streamin的时,虚拟机会不断的占用物理机硬盘资源,导致 磁盘资源不够 ,虚拟机本身运行就提示报错了,实验无法进行。因此,扩容了一个 1T的移动硬盘,将虚拟机全部复制到移动硬盘上 运行 ,运行速度稍微曼一点,流处理实验得以继续!

4,spark日志的打印调试

driver上console中实时查看流处理的日志;

但task是Executor 在运行,因此一部分日志在driver上不会显示 ,此时需要登录到Executor stderr log 查看日志 ,就能全面掌握spark streaming的运行情况,解决问题。

Spark Streaming+Spark SQL+Mysql来在线动态计算电商中不同类别中最热门的商品排名

综合案例实施步骤

OnlineTheTop3ItemForEachCategory2DB .scala

ConnectionPool .java

运行截图















王家林老师 :DT大数据梦工厂创始人和首席专家。

联系邮箱:18610086859@126.com 电话:18610086859 QQ:1740415547

微信号:18610086859 微博:http://weibo.com/ilovepains/

每天晚上20:00YY频道现场授课频道68917580

IMF Spark源代码版本定制班学员 :

上海-段智华 QQ:1036179833 mail:duanzhihua@189.cn 微信 18918561505
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: