您的位置:首页 > 编程语言 > Python开发

工作任务

2017-12-18 14:05 253 查看
追查数据源,找到报表产出数据源。



​首先配置好git之后,我们打开页面的url,分配的是先看产检报告。
 

移除点击此处添加图片说明文字

​同时,将数据报表产出的etl部分从git检出,等待查阅代码。
 

移除点击此处添加图片说明文字

​这里的git.exe不用理会,因为我们暂时打算使用命令行,后面可以我们使用客户端吧,看个人喜好,喜欢客户端或者命令行都可以。

再者,我们进入堡垒机,进入hadoop05节点,这个后面补充堡垒机配置信息。

显示权限机器,p,进入hadoop05
 

移除点击此处添加图片说明文字

​切换root,

sudo su -

然后查阅crontab,

crontab -l |grep chanjian

页面的报表涉及到下列脚本信息,这个,后面我们兴许要看
 

移除点击此处添加图片说明文字

​上午,我已经将sh脚本搬迁过来,搬到了/opt/etl/chanjian/

经过了两天的修改,已经将搬迁etl的工作基本完成了,解决了很多坑。比方说数据的丢失,hive没有元数据,

Error: java.io.IOException: java.io.IOException: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-41827661-10.8.8.6-1438054542785:blk_1073743587_2763 file=/user/hive/warehouse/antenatal_data.db/mmbang_antenatal_hospital/dt=2015-01-16/000000_0

at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderNextException(HiveIOExceptionHandlerChain.java:121)

at org.apache.hadoop.hive.io.HiveIOExceptionHandlerUtil.handleRecordReaderNextException(HiveIOExceptionHandlerUtil.java:77)

at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.doNextWithExceptionHandler(HadoopShimsSecure.java:226)

at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.next(HadoopShimsSecure.java:136)

at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.moveToNext(MapTask.java:199)

at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.next(MapTask.java:185)

at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:52)

at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)

at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)

at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:415)

at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)

at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

Caused by: java.io.IOException: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-41827661-10.8.8.6-1438054542785:blk_1073743587_2763 file=/user/hive/warehouse/antenatal_data.db/mmbang_antenatal_hospital/dt=2015-01-16/000000_0

at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderNextException(HiveIOExceptionHandlerChain.java:121)

at org.apache.hadoop.hive.io.HiveIOExceptionHandlerUtil.handleRecordReaderNextException(HiveIOExceptionHandlerUtil.java:77)

at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.doNext(HiveContextAwareRecordReader.java:355)

at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doNext(CombineHiveRecordReader.java:105)

at org.apache.hadoop.hive.ql.io.CombineHiveRecordReader.doNext(CombineHiveRecordReader.java:41)

at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.next(HiveContextAwareRecordReader.java:116)

at org.apache.hadoop.hive.shims.HadoopShimsSecure$CombineFileRecordReader.doNextWithExceptionHandler(HadoopShimsSecure.java:224)

... 11 more

Caused by: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-41827661-10.8.8.6-1438054542785:blk_1073743587_2763 file=/user/hive/warehouse/antenatal_data.db/mmbang_antenatal_hospital/dt=2015-01-16/000000_0

at org.apache.hadoop.hdfs.DFSInputStream.chooseDataNode(DFSInputStream.java:888)

at org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:568)

at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:800)

at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:847)

at java.io.DataInputStream.read(DataInputStream.java:100)

at org.apache.hadoop.util.LineReader.fillBuffer(LineReader.java:180)

at org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:216)

at org.apache.hadoop.util.LineReader.readLine(LineReader.java:174)

at org.apache.hadoop.mapred.LineRecordReader.skipUtfByteOrderMark(LineRecordReader.java:206)

at org.apache.hadoop.mapred.LineRecordReader.next(LineRecordReader.java:244)

at org.apache.hadoop.mapred.LineRecordReader.next(LineRecordReader.java:47)

at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.doNext(HiveContextAwareRecordReader.java:350)

... 15 more

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

那么,还有git不仅仅要add,commit,push之后查看分支构建情况,以及管理一键发布。来看看这些操作:

来看看opencron的使用:
 

移除点击此处添加图片说明文字

​关于opencron,是基于java开发的,并且,用来做调度会比impala少很多错误,也是使用内存的,所以速度要提神很多倍。配置的方式也很简单,我发现公司确实不错,弄得组件都能看到。
 

移除点击此处添加图片说明文字

​这里添加完了, 还可以修改
 

移除点击此处添加图片说明文字

​任务会按时执行,很nice。

这里我们配置好了之后,将之前的代码也都提交到git上了之后,记得发版本,这个这么发布。

使用

jenkins

这些组件很有意思,运维配置好了之后,我们只需要在git上面创建tag即可。
 

移除点击此处添加图片说明文字

​来看看
 

移除点击此处添加图片说明文字

​然后,这里可以修改。
 

移除点击此处添加图片说明文字

​接着我们进入jenkins
 

移除点击此处添加图片说明文字

​一般就是第一个,然后我们开始构建,即可,将这个git的tag发布成最新版本了,成功

版子发完了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  开发 python ETL hadoop hive