自助查询工具需求分析

平时工作临时需求查询比较多,领导让做一个自助查询工具,这样可以给工程师省下很可观的时间,也减少了各部门扯皮的碰撞。
客户端 php + mysql   server1
服务器端 shell,python,hive,hadoop  server2 若干执行shell的server
需求:
     用户在前台填写task信息,比如:任务名称,执行服务器,上传uidlist文件【查询关于user的有关信息,所以要上传uid列表】,任务类型【1.用户基本信息 2用户其他信息 3.用户影响力指数等】,然后等待邮件通知,下载执行结果。
说明:
    1.task信息存放到task表中 【taskId,userId,taskName,taskType,uidPath,ip,flag】
    2.uidlist存放在rsync的指定模块下

思路:
1.server2上crontab定时每2个小时执行一次,使用shell连接mysql,取出task状态为create的tasklist输出到文件A
2.使用python分析文件A,并行将ip下uidpath文件通过rsync存放到server2上,目录命名为:taskId_userId_mmid(mmid为时间戳)
3.改变task表中的任务状态为running
4.将uidlist文件put到hdfs目录,新建临时用户表,分区使用 taskId_userId_mmid
5.根据taskType调用不同的业务shell【并行执行】
6.执行完毕后,返回结果路径,调用结果处理shell,主要分为3部:
6-1 扫描结果目录,大小不为0时,使用rsync将结果推送到服务器A上【taskId_userId_mmid】
6-2 根据结果目录大小和taskId改变task表中task的状态为 error或succ
6-2 使用发邮件模块给userId发邮件,通知下载结果或者重新提交任务

你可能感兴趣的:(需求分析)