集群搬迁所有服务再启动-详细文档
上一篇是概述。这一篇是详细启动文档,概述部分请看上一篇文档,两篇一起对照阅读。
主要负责部分。需要做的事情。
一、接口。因为部署的环境在10.10.60.8的北京集群,所以这个不需要动任何配置。
二、149服务器
1.su hive
crontab -l
2.需要执行的三个定时任务
10 0 * * * java -jar /home/hive/sxm/ftp/DataImport.jar /home/hive/sxm/ftp
10 7 * * * java -jar /home/hive/sxm/ftp/HiveQuery.jar 0 0 0 0
10 5 * * * /usr/bin/python /home/hive/sxm/SafeDataInput.py
3.重跑DataImport.jar
进入服务器:192.168.0.142
cd /home/mongo/db/bin
./mongo --port 27010
use io_report
然后选择所有需要重复的任务表。
db.iotasklist.find({"repeattask" : "1"},{connDB:1,connTable:1,hiveTable:1});
表中所有的数据都要变成一次性的重跑任务,我举个例子:
{
"connDB" : "new_market_log_201709",
"connTable" : "user_log_apk",
"dbConnUrl" : "mongodb://192.168.40.150:27010",
"dbSeparator" : ",",
"dbType" : "mongodb",
"exportPath" : "/home/upload/sxm/ftp",
"ftpHostName" : "211.151.182.188",
"ftpPwd" : "hUpz8{YJ2ved",
"ftpUser" : "upload",
"query" : "{'u_dt':{'$gte':{'$date':'2017-03-31T16:00:00Z'},'$lt':{'$date':'2017-04-01T16:00:00Z'}}}",
"taskState" : "1",
"columnNames" : "apk_n,ch,from,ch2_id,apk_v,IS,app_id,col_d,col,col_id,apk,ch2,_id,u_dt,ac_id,m_cd,uuid,col_id_2,col_2,col_id_3,col_3,f_ms,IE,apk_id,ip,parent_type,mode_type,mode_id,is_page,p_page_id,p_page_name,p_parent_id,p_location_id,page_id,page_name,parent_id,location_id,assembly_id,pindao_id",
"hiveTable" : "tyd.tyd_user_log_apk_ft",
"partitions" : "pt:2017-09-16",
"overwrite" : "true",
"importPath" : "/home/hive/sxm/ftp",
"runningStartTime" : "2017-04-07 10:42:15",
"ip" : "192.168.0.149",
"last_operate" : "2017-09-16",
"runningStopTime_2" : "2017-04-07 10:42:15",
"runningStopTime_4" : "2017-04-07 10:43:26",
"runningStopTime_5" : "2017-04-07 10:44:14",
"runningStopTime_6" : "2017-04-07 10:44:17",
"runningStopTime_0" : "2017-04-07 10:44:17"
}
将这条记录插入到库中。然后,可以执行一次任务,会自动推到下一天的。
java -jar /home/hive/sxm/ftp/DataImport.jar /home/hive/sxm/ftp
注意:
对应表名称按月份命名的,跨月份后要对表里配置的月进行更新
如 new_market_log_201708 需要变为 new_market_log_201709
需要注意,重跑,也要注意( 有日期变量的 )
移除点击此处添加图片说明文字4.继续跑脚本:10 7 * * * java -jar /home/hive/sxm/ftp/HiveQuery.jar 0 0 0 0
运行脚本
java -jar /home/hive/sxm/ftp/HiveQuery.jar 0 0 2017-09-16 0
5.运行最后一个脚本安全数据脚本10 5 * * * /usr/bin/python /home/hive/sxm/SafeDataInput.py
/usr/bin/python /home/hive/sxm/SafeDataInput.py 2017-09-16 2017-09-16
三、143 push 定时任务,从北京集群mysql那边拉取数据到hive平台。
su hdfs
crontab -l
移除点击此处添加图片说明文字只有这一个sh脚本需要执行,
10 1 * * * ./etc/profile;/bin/sh /home/hdfs/ftp/oz_log/java/runjar_oz_log_cron_all.sh >> /home/hdfs/ftp/oz_log/java/log/oz_log_cron_all.txt
总共要跑这五个jar包。那我们首先可以一个一个来看一下。
source /opt/ftp/oz_log/app_command_data/java/runjar_ozlogapp_command_import_yesday.sh
source /opt/ftp/oz_log/java/runjar_oz_data_operate_rec_import_args.sh
source /opt/ftp/oz_log/java/runjar_oz_topic_dict_import_yesday.sh
source /opt/ftp/oz_log/java/runjar_cap_wap_data_import_args.sh
source /opt/ftp/oz_log/java/runjar_cap_wap_data_apk_import_args.sh
据其中一个当例子把。进去看看。
要改一下这个时间
移除点击此处添加图片说明文字然后
sh /home/hdfs/ftp/oz_log/java/runjar_ozlogdownloadimportyesday.sh
剩下的4个全部要这么做。
并且要记住,改好了之后记得修改回来。
四、82服务器,4个py脚本
su hdfs
crontab -l
移除点击此处添加图片说明文字这四个py脚本直接给时间参数即可。
50 4 * * * /usr/bin/python /home/syndata/util/oz_log_get_client.py > /tmp/oz.log 2>&1
10 1 * * * /usr/bin/python /home/syndata/util/oz_market_get_client.py > /tmp/oz.log 2>&1
30 6 * * * /usr/bin/python /home/syndata/util/oz_log2_get_client.py > /tmp/oz2.log 2>&1
30 5 * * * /usr/bin/python /home/syndata/util/WebMarket_get_client.py > /tmp/market.log 2>&1
举例:
/usr/bin/python /home/syndata/util/oz_log_get_client.py 2017-09-16 2017-09-16
五、141,除了push的hive同步到mongodb之外还有很多。
su hdfs
移除点击此处添加图片说明文字还没有完呢。
用端城的截图就是。
那我总结了,就这些要弄了。下面是我把那些注释掉的任务弄出来的。
00 2 * * * /usr/bin/python /home/hdfs/ImportPayInfoIntoHive.py > /home/hdfs/pay.log
50 0 * * * ./etc/profile;/bin/sh /opt/ftp/freemeos_project/java/freemeos_all_run_args_yesday.sh > /tmp/freeme_progress_log.log
40 0 * * * /bin/sh /opt/ftp/freemeos_project/java/fros_beautify_center/test_beautify.sh
30 2 * * * ./etc/profile;/bin/sh /opt/ftp/oz_log/java/runjar_all_oz_log.sh >> /opt/ftp/oz_log/java/log/cron_command.txt
50 0 * * * ./etc/profile;/bin/sh /opt/ftp/oz_market/java/runjar_all_oz_market_yesday.sh >> /opt/ftp/oz_market/java/log/runjar_all_oz_market_yesday.txt
50 6 * * * ./etc/profile;/bin/sh /opt/ftp/freemeos_project/java/freemeos_all_run_args_yesday.sh
00 6 * * * ./etc/profile;/bin/sh /opt/ftp/oz_log/java/runjar_all_oz_log.sh >> /opt/ftp/oz_log/java/log/cron_command.txt
#市场push报表
20 15 * * * source /etc/profile;/bin/sh /etl/tools/etl-python/push/push_report.sh > /etl/tools/etl-python/push/push_report_log.txt
00 6 * * * ./etc/profile;/bin/sh /opt/ftp/freemeos_project/report_data/java/safe_report/safe_report_args_mongo.sh > /tmp/safe_log.txt
#每月第2天 修改数据拉去跨月参数
05 0 2 * * ./etc/profile;/bin/sh /opt/wxw/importdata/across_month_modiy.sh >> /opt/wxw/importdata/info.log 2>&1
#插入市场 apk标签表oz_market.apk_label_withh2
20 4 * * * ./etc/profile;/bin/sh /opt/app/market_recommend/wirte_table_apk_label_withh2.sh > /opt/app/market_recommend/rec_log.txt
#查询半年内imsi安装数据
10 7 * * * ./etc/profile;/bin/sh /opt/app/market_recommend/wirte_table_apk_ids_per_imsi.sh > /opt/app/market_recommend/imis_log.txt
#市场应用推荐,hive导出文件 sftp发送到远程服务器,要先于com.tydtech.mig.newmarket_10
10 5 * * * /bin/sh /opt/wxw/project/rec_hive_file/rec_hive_file.sh >/opt/wxw/project/rec_hive_file/rec_sh.log 2>&1
#安全服务数据
05 8 * * * /bin/sh /opt/wxw/project/safedata_imei/safedata_start.sh >/opt/wxw/project/safedata_imei/safedata_start.log 2>&1
#pcb销量整合
05 15 * * * /bin/sh /opt/wxw/project/pcb_freemeos_sales/pbc_data_start.sh >/opt/wxw/project/pcb_freemeos_sales/pcb.log 2>&1
#baas push2.0日志 add 2017-08-20
53 13 * * * /bin/sh /opt/wxw/project/baas_push_two/baas_push_two_etl.sh > /opt/wxw/project/baas_push_two/info.log 2>&1
#市场外下-api下载数据 插入 外网 mongo
10 1 * * * /bin/sh /opt/wxw/project/marketHiveToMongo/marketHiveToMongo.sh > /opt/wxw/project/marketHiveToMongo/mongo_to_hive.log 2>&1
总共有17个脚本,当然了,记住这个时间,因为,到了搬迁集群那一天都要用这个时间去恢复的。
可以显而易见的看到push的内容,push的内容其实很容易看到的。那我们先去看一下push的东西?
好。
1.push的sh脚本。
移除点击此处添加图片说明文字移除点击此处添加图片说明文字
其实到了这一步,push项目,将hive平台数据同步到了前台的mongo库了。
/usr/bin/python /etl/tools/etl-python/push/push_detail_statistics_bckdcnt.py $yesday_date $yesday_date
/usr/bin/python /etl/tools/etl-python/push/push_detail_statistics_deploy.py $yesday_date $yesday_date
cd /etl/tools/etl-python/push;/opt/cloudera/parcels/CDH/lib/hadoop/bin/hadoop jar /home/OTAtest/ToMongo-0.0.1-SNAPSHOT-jar-with-dependencies.jar push_detail_statistics_bckdcnt $yesday_date $yesday_date > ./hive2Mongo.log
cd /etl/tools/etl-python/push;/opt/cloudera/parcels/CDH/lib/hadoop/bin/hadoop jar /home/OTAtest/ToMongo-0.0.1-SNAPSHOT-jar-with-dependencies.jar push_detail_statistics_deploy $yesday_date $yesday_date > ./hive2Mongo.log
分别针对推送部署的和静默下载统计的。这个如果要重新跑很好改的,就是把后面的时间改掉么拉倒了。说道这里等下又要去弄了,因为,8好的push数据又重复了,稍后还要去弄一下。
2.上面所提到的每个脚本都需要重新搞的。
移除点击此处添加图片说明文字 又看到了老朋友 ,给入开始时间和结束时间了,这种就比较简单了,我在启动python脚本的时候,直接给入时间即可。
好了,大致的,服务器集群搬迁之后的恢复情况这里就大致写这么点儿,后面会有详细的方案,到底是恢复日期手动写参数,还是改写crontab时间。我们还是要等开会的。接下来,先去解决问题吧。