追查数据源,找到报表产出数据源。
首先配置好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发布成最新版本了,成功
版子发完了