电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java大文本并行計算實現過程解析

瀏覽:109日期:2022-08-31 15:07:32

簡單提高文本讀取效率,使用BufferedReader是個不錯的選擇。速度最快的方法是MappedByteBuffer,但是,相比BufferedReader而言,效果不是非常明顯。也就是說,后者雖然快,但也快的有限(不要抱有性能提升幾倍的幻想)。

對于大文本的讀取,性能瓶頸主要在IO,read占時間多是正常的,硬盤本身就不快,讀入內存后還要轉成對象,都比較耗時間。

想要提速應當用并行的辦法,用多線程同時讀取和處理數據,但Java寫多線程程序很麻煩,并行分段讀同一個文件時還要考慮調整邊界,也比較麻煩。

比如要這么個場景:分組匯總每個客戶的銷售額,部分源數據如下:

O_ORDERKEY O_CUSTKEY O_ORDERDATE O_TOTALPRICE10262 RATTC 1996-07-22 14487.010263 ERNSH 1996-07-23 43818.010264 FOLKO 2007-07-24 1101.010265 BLONP 1996-07-25 5528.010266 WARTH 1996-07-26 7719.010267 FRANK 1996-07-29 20858.010268 GROSR 1996-07-30 19887.010269 WHITC 1996-07-31 456.010270 WARTH 1996-08-01 13654.0...

期望的結果:

Java大文本并行計算實現過程解析

Java部分多線程代碼大概要寫成這樣:

...final int DOWN_THREAD_NUM = 8;CountDownLatch doneSignal = new CountDownLatch(DOWN_THREAD_NUM);RandomAccessFile[] outArr = new RandomAccessFile[DOWN_THREAD_NUM];try{long length = new File(OUT_FILE_NAME).length();long numPerThred = length / DOWN_THREAD_NUM;long left = length % DOWN_THREAD_NUM;for (int i = 0; i < DOWN_THREAD_NUM; i++) {outArr[i] = new RandomAccessFile(OUT_FILE_NAME, 'rw');... if (i == DOWN_THREAD_NUM - 1) {new ReadThread(i * numPerThred, (i + 1) * numPerThred + left, outArr[i],keywords,doneSignal).start();...} else {new ReadThread(i * numPerThred, (i + 1) * numPerThred,outArr[i],keywords,doneSignal).start();...}}}...

如果有集算器就簡單多了,它對Java的多線程進行了封裝,提供了對大文件分段并行的功能,寫起來容易多了,對人員要求也低。比如上面問題,2行就搞定了(集算器內置了并行選項@m,不設置并行數,默認按核數做為并行數):

=file('/workspace/orders.txt').cursor@mt()

=A1.groups(O_CUSTKEY;sum(O_TOTALPRICE):AMOUNT)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 深圳市超时尚职业培训学校,培训:月嫂,育婴,养老,家政;化妆,美容,美发,美甲. | 威客电竞(vk·game)·电子竞技赛事官网 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 山东包装,山东印刷厂,济南印刷厂-济南富丽彩印刷有限公司 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 桨叶搅拌机_螺旋挤压/方盒旋切造粒机厂家-无锡市鸿诚输送机械有限公司 | 紫外可见光分光度计-紫外分光度计-分光光度仪-屹谱仪器制造(上海)有限公司 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 污水处理设备-海普欧环保集团有限公司| 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 深圳市索富通实业有限公司-可燃气体报警器 | 可燃气体探测器 | 气体检测仪 | 淋巴细胞分离液_口腔医疗器材-精欣华医疗器械(无锡)有限公司 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 瓶盖扭矩仪(扭力值检测)-百科 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 书信之家_书信标准模板范文大全| 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 桐城新闻网—桐城市融媒体中心主办 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 |