我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。...当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢? exa 是一个常规 ls 命令的现代替代品,它让生活变得更轻松。这个工具是用 Rust 编写的,该语言以并行性和安全性而闻名。...扩展文件属性 当你使用 exa 探索 xattrs(扩展的文件属性)时,--extended 会显示所有的 xattrs。...image.png 递归 当你想递归当前目录下所有目录的列表时,exa 能进行递归。 image.png 我相信 `exa 是最简单、最容易适应的工具之一。...它的颜色编码让我更容易在多个子目录中进行搜索,它还能帮助我了解当前的 xattrs。
2.2 编译Spark官网源码方式 在经过2.1章节使用Spark原生Thrift部署失败后,尝试使用Spark源码的方式编译Thrift。...通过部署测试发现, 可以通过beeline访问Thrift Server服务,在执行SQL命令时无法正常读取Hive上的库和表。通过后台也会报错 ?...总结:由于CDH5和CDH6和编译时Spark Thrift依赖的Hive版本有差异导致无法Thrift服务无法正常运行。...2.6 Gateway上使用hive1的依赖包方式 通过在C6上使用C5的依赖包的方式部署Kyuubi测试是否能够正常部署使用Thrift Server. 1.将C5的/opt/cloudera/parcels...温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
微信图片_20200709201425.jpg但初学Spark的人往往都会有这样的疑惑,为什么Spark任务只有在调用action算子的时候,才会真正执行呢?...导致map执行完了要立即输出,数据也必然要落地(内存和磁盘) 2. map任务的生成、调度、执行,以及彼此之间的rpc通信等等,当牵扯到大量任务、大数据量时,会很影响性能 看到这两点是不是很容易联想到...会将多个map算子pipeline起来应用到RDD分区的每个数据元素上(后续将要介绍的SparkSQL中的Dataset/DataFrame也是如此) 下面说几个算子的优化,这也是面试中经常问的问题: 在我们实际的业务场景中经常会使用到根据...任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。...任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。
但初学Spark的人往往都会有这样的疑惑,为什么Spark任务只有在调用action算子的时候,才会真正执行呢?咱们来假设一种情况:假如Spark中transformation直接触发Spark任务!...导致map执行完了要立即输出,数据也必然要落地(内存和磁盘) 2. map任务的生成、调度、执行,以及彼此之间的rpc通信等等,当牵扯到大量任务、大数据量时,会很影响性能 看到这两点是不是很容易联想到...会将多个map算子pipeline起来应用到RDD分区的每个数据元素上(后续将要介绍的SparkSQL中的Dataset/DataFrame也是如此) 下面说几个算子的优化,这也是面试中经常问的问题: 在我们实际的业务场景中经常会使用到根据...任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。...任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。
最近在做一个基于React+antd前端框架的Excel导出功能,我主要在后端做了处理,这个功能完成后,便总结成一篇技术分享文章,感兴趣的小伙伴可以参考该分享来做导出excle表格功能,以下步骤同样适用于...cell终止位置 91 for(Map.Entry> entry: map.entrySet()){ 92 XSSFRow...> clazz) 142 throws IntrospectionException, IllegalAccessException, IllegalArgumentException...注意:整块导出Excel代码,主要需要改动只是这一行代码:List list=userService.exportUser(),这是调用dao层获取以列表list获得数据的查询...excel.add(new ExcelBean("年龄","age",0)); 其中,以上代码需要把list转换成List>形式,转换方法如下,因为创建表格时需要这样
大家好,又见面了,我是你们的朋友全栈君。 (根据网上多篇文档实践整理加工,非原创也非转载) 本类主要是读取后缀为xlsx或xls的excel操作。...0开始的 * 使用的jar包 * * org.apache.poi * poi-ooxml</artifactId...设置居中样式 tableCellValue.setCellStyle(xssStyle); } // 如果插入数据的行小于指定的数据行,就默认在复杂表头的下方...* @param claz 类型 * @param alias 列别名,格式要求:Map * @param param 指定第几行行为字段名(数据在字段的下一行...,默认),第一行为0 * @return * @throws IOException * @throws IllegalArgumentException * @
当我们在把这两个过程再细化一下,思路就更加清晰明了了。 1.1.怎样读取或者写入Excel文件呢?...java的poi技术读,写Excel[2003-2007,2010] 2.1.怎样使用velocity模板工具呢?...的开源项目-模板引擎(Velocity)_学习了两天就上手啦_源码下载 有了上面1.1和2.1的基础,现在我们要做的工作,就是把他们串起来,就实现了Excel转Html 为了自己以后一看源码就知道怎样做,我习惯贴源码出来...当然还会有源码下载的(在文章末尾)。...多多少少没关系,一分也是对我的支持和鼓励。谢谢。 Hongten博客排名在100名以内。粉丝过千。 Hongten出品,必是精品。
系统中经常会使用导出Excel的功能。 之前使用的是NPOI,但是导出数据行数多就报内存溢出。 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异。...NPIO官网地址:http://npoi.codeplex.com/ EPPlus官网地址:http://epplus.codeplex.com/ 添加NPOI、EPPlus类库dll使用的是NuGet...在类库References右键Manage NuGet Packages...,之后选择添加对应的dll。 测试结果显示,相同数据结构的数据,EPPlus的导出能力比NPOI强。...EPPlus能导出20万以上数据,导出23万测试时内存溢出。...int rowIndex = 0; 14 15 #region 列头及样式 16 { 17 XSSFRow
if(sheet==null){continue;} //遍历当前sheet中的所有行 //包涵头部,所以要小于等于最后一列数,这里也可以在初始值加上头部行数...ParseException { // 创建新的Excel工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 在Excel...0;//cell终止位置 for (Map.Entry> entry : map.entrySet()) { XSSFRow...Integer> widths = new ArrayList(ems.size()); for (Object obj : objs) { XSSFRow...0; i < ems.size(); i++) { ExcelBean em = (ExcelBean) ems.get(i); // 获得
我在项目里依赖的4.1.2版本的org.apache.poi依赖包,最开始使用的是4.1.0版本的,但发现里面有一个很大的bug,就是使用XSSFSheet中处理指定行数据下移的方法sheet.shiftRows...(0,sheet.getLastRowNum(),1,true,false)时,会发现指定下移位置之后的数据,都被删除完了,导致下移后的表格都成了一片空白。...(XSSFRow.java:612) at org.apache.poi.xssf.usermodel.XSSFRow.onDocumentWrite(XSSFRow.java:582) at org.apache.poi.xssf.usermodel.XSSFSheet.write...二、基于Java SPI设计一套可便于后期扩展的接口实现 我在工程里使用到了Java SPI的服务发现机制,便于后期如果有需要进行工具处理新功能扩展,只需要增加一个实现类,放到com.put.service.DisposeService...,因为各个文件的处理无任何依赖,若是大批量处理时,串行执行实在太慢,但多线程处理同时也会存在一个问题是,若大批量表格文件中每个文件数据量都很大的话,电脑内存太小的话,可能会出现内存溢出问题。
行则使用数字表示,例如;A3 表示第三行第一列,E5表示第五行第五列。 ? 1.2 POI工具包 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI 。...1.3 POI Hello World 在POI包中有如下几个主要对象和excel的几个对象对应: HSSFWorkbook Excel 工作簿workbook HSSFSheet Excel 工作表...1、 Excel 的工作簿对应POI的XSSFWorkbook对象; 2、 Excel 的工作表对应POI的XSSFSheet对象; 3、 Excel 的行对应POI的XSSFRow对象; 4、 Excel...api文档中我们了解到: HSSFWorkbook 和 XSSFWorkbook 都实现了Workbook接口; HSSFSheet 和 XSSFSheet 实现了Sheet接口; HSSFRow 和 XSSFRow...如;在处理03和07版本的excel文件时利用统一的接口就可以做到分析两个版本的excel数据。 POI同时读入03和07版本的excel。 方法一:判断文件的名称后调用对应版本的读入方法。
this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted } 上面是 JDK8 的构造函数 在无参构造函数时...为什么平衡?就是因为它在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。...(也即是,红色节点的孩子和父亲都不能是红色); 4、从任一节点到其子树中每个叶子节点的路径都包含相同数量的黑色节点; 5、所有的叶节点都是是黑色的(注意这里说叶子节点其实是上图中的 NIL 节点); 在树的结构发生改变时...而我们的答案也是需要理解的:(当冲突的链表长度超过8个的时候),为什么要这样设计呢?好处就是避免在最极端的情况下冲突链表变得很长很长,在查询的时候,效率会非常慢。...红黑树查询:其访问性能近似于折半查找,时间复杂度O(logn); 链表查询:这种情况下,需要遍历全部元素才行,时间复杂度O(n); 所以才使用的红黑树,说到这里,我相信大家肯定知道如果面试官再问 JDK7
HashMap作为我们经常使用的集合,我们除了熟练的使用它,更应该掌握其具体的实现原理(JDK1.8)。关于HashMap是个啥,我这里就不讲述了。 总览 ?...DEFAULT_INITIAL_CAPACITY(16),当经历过一次扩容以后,该值的计算规则是capacity * load factor(当前容量*负载因子) loadFactor 负载因子,默认值是0.75,该默认值平衡性能和存储空间,在实际使用中不建议修改...size时是HashMap在JDK1.8的一次性能优化,上述代码虽然很复杂,但最终功能是获得hash桶(bucket)的数量,假设指定的cap不是2的幂,那该方法获得的是比cap大的最小的2的幂。...首先分析一下 >>> 的作用并且为什么只右移到16位,首先我么返回的值是int,位数为32位。...那么为什么先要将cap进行-1呢?原因是防止cap本身就是2的幂,如果cap本身就是2的幂不减1得到的数量将会有问题。
其中客户端yml配置文件的命名不正确,与在eclipse中yml声明的不一致,结果就是它导致了客户端的yml失效。...private String eurekaServers; 客户端启动,由于无法获得github上配置文件的参数,它报无效参数异常了; Caused by: java.lang.IllegalArgumentException...placeholder ‘eureka.client.service-url.defaultZone’ in value “${eureka.client.service-url.defaultZone}” 为什么我知道一定是参数没有被获取呢...因为启动客户端时,端口号没有从github上的yml文件中动态获取,同时它报了这个错。 排查: 我确认所有的代码都没有问题,包括配置文件的内容,pom依赖,启动类,测试类都没有问题。...总结; 由于客户端的端口号配置在github上的yml里,而对应的yml文件名称又没有写对,结果整个失效的yml配置文件就无法提供内部各种参数, 这导致了测试类中通过value注解注入到spring里的配置文件参数无法被获得
同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。 实现动态代理的关键技术是反射。 静态代理 代理模式有几种,虚拟代理,计数代理,远程代理,动态代理。...通过代理调用方法 而为什么要进行如此操作,可以从Proxy和InvocationHandler的源码中找打答案。对源码不感兴趣的可以将下面的源码部分小节略过。...,对应着在一个虚拟机中类变量也只有一个,且在此处,在Proxy类被加载的时候就赋值了。...: public final class $Proxy1 extends Proxy 可以看到生成的代理类是继承了Proxy类的,这就是说明了为什么使用JDK动态代理不能实现继承式动态代理,原因是Java...Train t = (Train) proxy.getProxy(Train.class); t.move(); } } 如果大家觉得这篇文章对你有帮助的话,欢迎大家关注我的公众号
4-24-3.jpg 在Apache Kafka简介中,我们研究了分布式流媒体平台Apache Kafka。...我们发送付款信息,获得Mono 作为响应。...(e); } } 从Kafka主题创建反应流 当没有消费者监听时,向主题发送消息没有多大意义,因此我们的第二个应用程序将使用一个反应管道来监听未确认的事务主题。...通过使用kafkaReceiver.receive方法,我们可以获得receiverRecords的Flux。进入我们读取的主题中每条消息都放入receiverRecord中。...,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料) 为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜
Dubbo SPI和JAVA SPI 的使用和对比 在Dubbo中,SPI是一个非常核心的机制,贯穿在几乎所有的流程中。搞懂这块内容,是接下来了解Dubbo更多源码的关键因素。...author william.liangf */ @SPI("dubbo") public interface Protocol { /** * 获取缺省端口,当用户没有配置端口时使用...协议在接收请求时,应记录请求来源方地址信息:RpcContext.getContext().setRemoteAddress(); * 2. export()必须是幂等的,也就是暴露同一个...我就把顺序交换了下 这段代码主要做如下几个事情 从cachedClasses中获得一个结果,这个结果实际上就是所有的扩展点类,key对应name,value对应class 通过双重检查锁进行判断...这就是为什么我们能够通过ExtensionLoader.getExtensionLoader(Protocol.class).getDefaultExtension() ,能够获得DubboProtocol
起初使用该版本的poi的HSSF配合多线程生成excel,没有任何问题,后来改成了XSSF生成后上线,导出3w条数据时,cpu使用率达到了100%,内存达到了100%,打死了整个服务器!...下图为我本机测试的 jstat -gcutil 7068 1000 10,由于在自主化运维平台导出的结果文件被我删除了,所以只能用本机的测试,不过结果现象是相同的。 ?...由于不是业务代码和业务数据产生的问题,在本地mock数据可以使用简单的大量对象构成的结构进行导出,线上30个列导出,本地测试5个列,线上是本地的6倍,线上的每一行的数据量必然要比本地的数据量大很多。...其实分析很简单,以往使用线上jmap dump后用mat查看内存泄露,现在由于在本地测试了,可以直接用jprofiler attach上去直接观察就可以了。 就是这个家伙,当然它是需要破解的: ?...} else { sheet = workBook.createSheet(); } // 构建大标题,可以没有 XSSFRow
JDK的动态代理的类看不见摸不着,虽然可以看到效果,但是底层到底是怎么做的,为什么要求实现接口呢?...interfaces, accessFlags);这段代码即为生成动态代理类的关键,执行完后会返回该描述该代理类的字节码数组.随后程序读取该字节码数组,将其转化为运行时的数据结构-Class对象,作为一个常规类使用...,我把它拿到前面来,方便描述 static { try { //看看这儿静态块儿里面有什么,是不是找到了giveMoney方法。...jdk 为我们的生成了一个叫 $Proxy0(这个名字后面的0是编号,有多个代理类会一次递增)的代理类,这个类文件时放在内存中的,我们在创建代理对象时,就是通过反射获得这个类的构造方法,然后创建的代理实例...我们可以对 InvocationHandler 看做一个中介类,中介类持有一个被代理对象,在 invoke 方法中调用了被代理对象的相应方法,而生成的代理类中持有中介类,因此,当我们在调用代理类的时候,
领取专属 10元无门槛券
手把手带您无忧上云