准备工作

宿主机环境
1. Ubuntu
2. win7
3. win7下的虚拟机ubuntu

安装

  首先如果你是第三种的话,一般的机器是不支持虚拟机再安装虚拟机的(CPU架构问题,就算可以对cpu要求太高了),所以要么换系统要么装个双系统。下面来说说第二种是怎么安装。

  我们需要vagrantvirtualbox,vagrant我们需要需改它box存放的根目录,不然C盘空间会成为安装的障碍。copy ~/.vagrant.d/下面的目录到新目录
cp ~/.vagrant.d/ /path/to/vagrant_home/
设置环境变量
grep 'VAGR' ~/.bashrc
export VAGRANT_HOME='/path/to/vagrant_home'
(当然以上是Ubuntu下的方法,在win7下你只需要复制.vagrant.d文件到指定地方,然后添加环境变量VAGRANT_HOME)

  还有xshell这三个工具,怎么安装成功百度即可,没有难度,但是版本必须大于edx要求的版本,一般最新版即可analytics-devstack版本要求,在这个链接里面写出来了怎么来安装,但是由于国内的网络环境,我们经常是被卡在墙外的,所以必须另辟蹊径。

环境

$ git clone https://github.com/edx/edx-analytics-pipeline

$ cd edx-analytics-pipeline
$ virtualenv venv
$ source venv/bin/activate
$ make bootstrap
$ mkdir analyticstack
$ cd analyticstack

  首先我们在mirrors.edxstack.org下载所需要的analyticstack.box文件,在某个盘里新建目录analyticstack,然后用cmd,进入到你的对应的目录位置  

f:(假设在f盘)
cd analyticstack
vagrant init(没有这一步会导致后面文件读写和解压失败),添加虚拟机文件
vagrant box add analyticstack analyticstack.box(box文件不在当前目录vagrant box add analyticstack ..\download\analyticstack.box请遵守Windows下的目录规则),等待十几分钟的样子,如果成功了,继续下一步,
vagrant init analyticstack 初始化虚拟机

把vagrantfile文件拷贝到刚生成的vagrantfile,地址

vagrant up 千万不能再第一次 vagrant up的时候中断,不然会造成一些其他的问题(我第一次就造成文件丢失),如果顺利的话就会看到启动成功的界面,再  
vagrant ssh 开启ssh连接


  使用xshell新建链接,输入ip和端口号,一般是127.0.0.1和2222,每次vagrant ssh会有提示。然后提示输入用户名和密码,都是vagrant。

xshell

启用edX Analytics Data API

sudo su analytics_api
~/venvs/analytics_api/bin/python ~/analytics_api/manage.py runserver 0.0.0.0:8100 --insecure

运行edX Insights

sudo su insights 每次进入新的用户的时候需要先exit退出当前的用户登录一下,不然要输入密码  
~/venvs/insights/bin/python ~/edx_analytics_dashboard/manage.py switch display_verified_enrollment on --create
~/venvs/insights/bin/python ~/edx_analytics_dashboard/manage.py switch enable_course_api on --create
~/venvs/insights/bin/python ~/edx_analytics_dashboard/manage.py runserver 0.0.0.0:8110 --insecure

用浏览器打开:http://127.0.0.1:8110

执行数据分析任务(edX Analytics Pipeline)

vagrant ssh进入devstack,注册用户,注册课程
开始学习,回答几道课程中的问题
退出devstack,回到宿主机,进入edx-analytics-pipeline目录
执行任务

  1. 统计注册信息: export WHEEL_URL=http://edx-wheelhouse.s3-website-us-east-1.amazonaws.com/Ubuntu/precise remote-task --vagrant-path analyticstack--remote-name devstack --override-config ${PWD}/config/devstack.cfg --wheel-url $WHEEL_URL --wait \ ImportEnrollmentsIntoMysql --local-scheduler --interval-end $(date +%Y-%m-%d -d "tomorrow") --n-reduce-tasks 1
  2. 统计答案分布: export WHEEL_URL=http://edx-wheelhouse.s3-website-us-east-1.amazonaws.com/Ubuntu/precise export UNIQUE_NAME=$(date +%Y-%m-%dT%H_%M_%SZ) remote-task --vagrant-path analyticstack--remote-name devstack --override-config ${PWD}/config/devstack.cfg --wheel-url $WHEEL_URL --wait \ ` AnswerDistributionWorkflow --local-scheduler --src hdfs://localhost:9000/data/ \ --include 'tracking.log' \ --dest hdfs://localhost:9000/edx-analytics-pipeline/output/answer_distribution_raw/$UNIQUE_NAME/data \ --name $UNIQUE_NAME --output-root hdfs://localhost:9000/edx-analytics-pipeline/output/answer_distribution/ \ --marker hdfs://localhost:9000/edx-analytics-pipeline/output/answer_distribution_raw/$UNIQUE_NAME/marker \ --n-reduce-tasks 1