GoSpark:Go 中的内存中分布式计算平台

Kuan-Ting Yu, Jiasi Shen, Bolei Zhou
MIT EECS 6.824 课程项目:分布式系统
2014 年春季课程页面:http ://css.csail.mit.edu/6.824/2014/

安装围棋

mkdir ~/software # -> this is where I install go cd ~/software hg clone -u release https://code.google.com/p/go cd go/src ./all.bash

环境设置

在你的 .bashrc 中添加这些
export HADOOP_HOME=/usr/local/hadoop #-> where you install the hadoop export DSPROJECT_HOME=$HOME/824project #-> where you put our project export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/ #-> where is the jdk installed lzohead () { hadoop dfs -cat $1 | lzop -dc | head -1000 | less } unalias dfs &> /dev/null alias dfs=”hdfs dfs” unalias hls &> /dev/null alias hls=”dfs -ls” export PATH=$PATH:$HADOOP_HOME/bin # Add Hadoop bin/ directory to PATH export CLASSPATH=${DSPROJECT_HOME}/HDFSSplitUtil/bin:hadoop classpath:${CLASSPATH} # For Go export GOROOT=$HOME/software/go export GOPATH=${DSPROJECT_HOME}/Spark export PATH=$PATH:$HOME/software/go/bin

测试

更新 config.txt 中的主控主机名(和/或端口号)。
在调度程序机器上,运行:
go test -run KMeans -timeout 1h
go test -run MasterMRLineCount -debug
在工作机器上,运行:
go test -run BasicWorker -timeout 1h
go test -run WorkerSuperUnrel -timeout 1h -debug
选项:

  • -run(必需)选择要运行的应用程序。
    • 调度器:-run KMeans,-run MasterMRLineCount等
    • Workers:-run BasicWorker为了可靠,-run WorkerRPCUnrel为了不可靠的网络连接,或者-run WorkerSuperUnrel为了不可靠的网络,可能会崩溃。
  • -timeout设置超时。例如,-timeout 1h1 小时。
  • -debug打印详细日志。

    实用外壳

    安装 tmux:sudo apt-get install tmux
    进入 tmux,然后运行 sh
    tmux cd shells ./start-all.sh
    参考:https://github.com/zhoubolei/GoSpark

Spark 大型电商项目用户会话分析

该项目为CSDN博客系列文章《Spark 大型电商项目实战》源码,
CSDN博客地址:http://blog.csdn.net/u012318074/article/category/6744423
本项目主要用于互联网电商企业中,使用Spark技术开发的大数据统计分析平台,对电商网站的各种用户行为(访问行为、购物行为、广告点击行为等)进行复杂的分析。用统计分析出来的数据,辅助公司中的PM(产品经理)、数据分析师以及管理人员分析现有产品的情况,并根据用户行为分析结果持续改进产品的设计,以及调整公司的战略和业务。最终达到用大数据技术来帮助提升公司的业绩、营业额以及市场占有率的目标。
本项目使用了Spark技术生态栈中最常用的三个技术框架,Spark Core、Spark SQL和Spark Streaming,进行离线计算和实时计算业务模块的开发。实现了包括用户访问session分析、页面单跳转化率统计、热门商品离线统计、广告流量实时统计4个业务模块。
在项目中,重点介绍符合实际企业项目中的性能调优、troubleshooting以及数据倾斜等知识和技术,同时以企业级大数据项目开发流程贯穿每个业务模块的讲解,涵盖了项目开发全流程,包括需求分析、方案设计、数据设计、编码实现、测试以及性能调优等环节,全面还原真实大数据项目的开发流程。

模块介绍

用户访问session分析

该模块主要是对用户访问session进行统计分析,包括session的聚合指标计算、按时间比例随机抽取session、获取每天点击、下单和购买排名前10的品类、并获取top10品类的点击量排名前10的session。该模块可以让产品经理、数据分析师以及企业管理层形象地看到各种条件下的具体用户行为以及统计指标,从而对公司的产品设计以及业务发展战略做出调整。主要使用Spark Core实现。

页面单跳转化率统计

该模块主要是计算关键页面之间的单步跳转转化率,涉及到页面切片算法以及页面流匹配算法。该模块可以让产品经理、数据分析师以及企业管理层看到各个关键页面之间的转化率,从而对网页布局,进行更好的优化设计。主要使用Spark Core实现。

热门商品离线统计

该模块主要实现每天统计出各个区域的top3热门商品。然后使用Oozie进行离线统计任务的定时调度;使用Zeppeline进行数据可视化的报表展示。该模块可以让企业管理层看到公司售卖的商品的整体情况,从而对公司的商品相关的战略进行调整。主要使用Spark SQL实现。

参考:https://github.com/Erik-ly/SprakProject