1. 场景 基于客户的数据处理需求,客户分发诸多小数据文件,文件每行代表一条记录信息,且每个文件以"类型_yyyyMMdd_批次号"命名.由于同一条记录可能存在于多个文件中,且处于多个文件中的相同记录最终只有时间最新的记录有效,但文件的每行记录并未提供时间信息,因此需要从每个文件名中提取时间信息作为文件每行记录信息. 因此,考虑到小文件数量较多,且数据总量近千万级别,因此借助Hadoop工具,在MapReduce中获取处理该条记录所对应的拆分后的文件名信息. 2. 技术实现 当Hado…
1. 背景 近日在一个Hadoop项目中使用MultipleInputs增加多输入文件时,发现相同路径仅会加载一次,导致后续的统计任务严重失真.本博文旨在记录异常的排查及解决方案. 2. 情景重现 (1) 准备简版的输入文件test,文件内容为"i am ws",输入的HDFS路径为/work/justTest/test (2) 源码信息如下,主要是wordCount实现,其中/work/justTest/test作为输入路径,被输入两次: package com.ws.test; i…
1. 背景 近日帮外部门的同事处理一个小需求,就是将HDFS中2018年至今所有存储的sequence序列化文件读取出来,重新保存成文本格式,以便于他后续进行处理.由于同事主要做机器学习方向,对hadoop或spark方面不了解,所以我就想着这么小的需求,简单支持下即可,花个几分钟写了一个脚本提供给他,没想到,过了一天他又找到我,说脚本读取出来的文件大部分有问题…原来自己代码有bug 2. 初始版本 Spark或Hadoop读取sequence文件只需调用相应函数即可. 第一版本的spark程序…
1. Es-Hadoop异常: org.elasticsearch.hadoop.EsHadoopException: Could not write all entries [615/300864] (maybe ES was overloaded?). Bailing out... at org.elasticsearch.hadoop.rest.RestRepository.flush(RestRepository.java:235) at org.elasticsearch.hadoop…
1. 背景 近日,线上的服务出现异常,调用服务返回的JSON格式数据不完整,导致客户端解析异常,因此记录了本次的填坑之旅(nnd)... 2. 排查过程 2.1 服务器分析 登录到服务所在linux服务器,查看磁盘I/O信息iotop.CPU信息top.网络请求netstat -alnp等一通操作,木有发现相关问题.随执行了df -h查看磁盘占用 发现,系统盘根目录"/"的共计60G的磁盘占用100%,好吧,问题大概率就在这了.随后进入根目录,打算查看哪个文件夹占用最多,删除些文件,减…
背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所有奖励,每天领取一个 进度:当前未知登陆后是否还有选择区服弹窗,故当前仅处理到成功点击为止 思路: python+selenium自动化点击,程序定时运行 实现方法:timer_exerice.py编写死循环定时器,30s判断一次是否到达相应时间,若到达时间,开始执行selenium_exerice…
系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7)安装Java(非必须,这里是为了方便搭建用于调试的伪分布式环境) 1.宿主机安装Docker并启动Docker服务 安装: yum install -y docker 启动: service docker start 二.制作Hadoop镜像 (本文制作的镜像文件已经上传,如果直接使用制作好的镜像…
1. rabbitmq在ios中实战采坑 1.1. 问题 ios使用rabbitmq连接,没过多久就断开,并报错.且用android做相同的步骤并不会报错,错误如下 Received connection: <RMQConnection: 0x600002594080> disconnectedWithError: Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" Use…
1. mybatis中集成sharing-jdbc采坑 1.1. 错误信息 Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 1.2. 出现场景 我用的mybatis-plus,现在要把ShardingSphere也就是sharing-jdbc集成进来,java集成方式没问题,我打算用springboot的集成方式,因为这样只需要改配置文件就可以添加主从信息,分库分…
公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群. 话说,好想去捡垃圾,捡台8核16线程64G内存的回来,手动滑稽. 3台笔记本的配置和角色分配: 宿主CPU 宿主内存 虚拟机 虚拟机CPU/台 角色及内存 双核双线程 4G 1台 双核双线程 nexus.yum.ntp 双核四线程 8G 2台 双核四线程 master(4G).node01(2G) 双核四线程 8G 3台 双核四线程…
项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8:   查看centos版本号: #cat /etc/redhat-release   在环境上gcc版本(需要支持C++14).glibc库(GLIBC-2.18)版本都OK,GN编译选项配置好,并且环境变量都配置成功的前提下,下面的V8编译.安装的脚本,功能是OK的:   #How to compile and…
xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! --- ##### 阅读建议:如果系统没有做过相关导入导出,又需要这个量级的可以直接阅读底部的poi-ooxm的应用 > excel使用poi直接导出最大值是多少?估计很多人不会关注这个问题,因为很少有业务要求excel直接导出上万条数据,更甚者可能没有听过excel直接导出100w条数据.这里给大家…
@WebFilter@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器.该注解具有下表给出的一些常用属性 ( 以下所有属性均为可选属性,但是 value.urlPatterns.servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值 ): 表 3. @WebFilter 的常用属性 下面是一个简单的示例: @WebFilter(ser…
聊聊.netcore采坑那一些事之系统时间and文件路径 Hi,小伙伴大家好,最近工作比较忙,很久没有和大家分享点东西了.这个周末都加了两天班.公司的新项目都是采用.netcore来开发,在开发过程中,也踩到了一些坑,在此先总结两个坑,这两个坑都是关于Linux(CentOS)和windows下的兼容性问题.我们最开始的开发环境接口调用一直是部署在windows环境运行一切正常,但是部署到Linux(CentOS)环境下,就出现了这两个问题,其实问题也简单:获取系统时间,实际时间少了8个小时:文…
判断相等 字符串判断相等         String str1 = null;         String str2 = "java金融";        // str1.equals(str2);  错误的写法         str2.equals(str1); // 常量写前面         Objects.equals(str1, str2);// 借助jdkUtil工具类         StringUtils.equals(str1,str2); // 自定义工具类…
背景 先澄清一下,整个过程问题都不是我解决的,我在里面就是起了个打酱油的角色.因为实际上我负责这个项目,整个过程也比较清楚.之前也跟具体负责的同事说过,等过段时间带他做做项目复盘.结果一直忙,之前做的事情都快忘了也没带他做复盘.所以趁着还记得,总结一下这个问题,也算一起做个复盘总结了. 本周一的时候,我们测试环境遇到一个问题:启动一个服务就会导致后端调用耗时增加.当时咨询了对这个问题之前有了解的同事得到的答复是因为一笔请求发到两套测试环境(一个请求需要在两套环境下运行结果做对比),因为这两套环境…
1.Java动态代理实例 Java 动态代理一个简单的demo:(用以对比Hadoop中的动态代理) Hello接口: public interface Hello { void sayHello(String to); void print(String p); } Hello接口的实现类: public class HelloImpl implements Hello {           public void sayHello(String to) {          System.…
secondarynamenode 图: secondarynamenode根据文件的的大小对namenode的编辑日志和镜像日志 进行合并. 光从字面上来理解,很容易让一些初学者先入为主的认为:SecondaryNameNode(snn)就是NameNode(nn)的热备进程.其 实不是.snn是HDFS架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间.对于ha…
1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧. 本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法. 2. 常见的join方法介绍 假设要进行join的数据分别来自File1和File2. 2.1 reduce side join reduce side join是一种最简单的join方式,其主…
Dong的这篇博客我觉得把原理写的很详细,同时介绍了一些优化办法,利用二次排序或者布隆过滤器,但在之前实践中我并没有在join中用二者来优化,因为我不是作join优化的,而是做单纯的倾斜处理,做join优化或者查询优化时,上述二者是最基本的优化办法了. 1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧. 本文首先介绍了Hadoop上通常的JO…
本篇博客是金子在学习hadoop过程中的笔记的整理,不论看别人写的怎么好,还是自己边学边做笔记最好了. 1:shuffle阶段的排序(部分排序) shuffle阶段的排序可以理解成两部分,一个是对spill进行分区时,由于一个 分区包含多个key值,所以要对分区内的<key,value>按照key进行排序,即key值相同的一 串<key,value>存放在一起,这样一个partition内按照key值整体有序了. 第二部分并不是排序,而是进行merge,merge有两次,一次是ma…
在近期的工作中,我需要用脚本来运行mapreduce,并且要判断运行的结果,根据结果来做下一步的动作. 开始我想到shell中获得上一条命令运行结果的方法,即判断"$?"的值 if [ $? -eq 0 ];then #do something fi 但是有时候即便mapreduce运行失败了,也还是会进入判断结构中. 后来查阅了相关资料,得知hadoop中可以使用yarn的命令,来获得job的状态,包括job名称.完成百分比.当前状态等参数,其实就和yarn的web界面查看到的数据一…
装载自http://www.cnblogs.com/dandingyy/archive/2013/03/01/2938462.html 有时可能需要对来自不同源的数据进行综合分析: 如下例子: 有Customers文件,每个记录3个域:Custom ID,    Name,     Phone Number Customers  Orders 1,Stephanie Leung,555-555-5555 3,A,12.95,02-Jun-2008 2,Edward Kim,123-456-789…
在angular中会遇到一些莫名的问题,导致不能完成想要的功能,可能是某项用法使用错误,或许是angular相对应不支持,或者是我们功力根本就没有达到.为了在每次采坑之后能有所收获,再遇到时能理解其根本的原因,所以在这里做下记录.希望对自己和朋友们有所帮助. 1.$scope的值无法从model层传递到view层 1. $scope下的key是基本类型,并且当其值变化的时候,类型变化,导致其双向绑定失败 eg: $scope.activeCategoryMenu = 3; $scope.acti…
Redis缓存采坑记 ​ 前言 ​ 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序来的话,不会这么快发布这篇博客.但是,因为这个坑让我浪费太多时间.这个情形和一年前我在另一个项目中试图优化mybatis时简直完全一致,即使拿出了源码来debug还是解决不了这个问题,网上搜索的方法全部尝试了一遍还是不行.足足浪费了两三天的时间,说想吐血一点都不为过...... 鉴于再次被坑的这么惨…
1. Spring Cloud Config采坑记 1.1. 问题 在本地运行没问题,本地客户端服务能连上本地服务端服务,可一旦上线,发现本地连不上线上的服务 服务端添加security登录加密,客户端连接不上,这在本地和线上都是不行的 1.2. 原因及解决办法 这两个问题的原因是一样的,由于它本身加载顺序的问题,它默认加载地址就是localhost:8888,而application.properties的加载是第二序位 为了解决上述两个问题,在resources中添加个bootstrap.y…
一:唠嗑 鼓捣了两天的Spring Security,踩了不少坑.如果你在学Spring Security,恰好又是使用的Spring Boot,那么给我点个赞吧!这篇博客将会让你了解Spring Security的各种坑! 阅读前说一下,这篇博客是我一字一字打出来的,转载务必注明出处哦! 另外,本文已授权微信公众号“后端技术精选”独家发布 二:开始 1.准备 Spring boot 1.5 Mysql 5.7 导入依赖 <!-- Web工程 --> <dependency> &l…
tk.mybatis通用工具pom <!--mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <!--通用mapper--&…
Hadoop是一个能够对大量数据进行分布式处理的软体框架,实现了Google的MapReduce编程模型和框架,能够把应用程式分割成许多的 小的工作单元,并把这些单元放到任何集群节点上执行.在MapReduce中,一个准备提交执行的应用程式称为「作业(job)」,而从一个作业划分出 得.运行于各个计算节点的工作单元称为「任务(task)」.此外,Hadoop提供的分布式文件系统(HDFS)主要负责各个节点的数据存储,并实现了 高吞吐率的数据读写. 在分布式存储和分布式计算方面,Hadoop都是用…
背景 基于页面友好,界面整洁美观:基于Antd框架开发虾能平台 选型 基于Antd-admin工程架构,进行开发:基于Antd+React+Umj 采坑记录 按照Html方式天机onClick方法,每次初始化时即会调用:正确的写法应该是: onClick={() =>lookPic(imgs[0])} 级联表如何支持,各等级选择:解决方案: 添加次级ALL选项,在选择后的处理上,进行操作确认 3. 时间选择器,支持到秒:使用RangePicker控件 4. AutoComplete被封装后,延迟…