大数据拆分处理方式

思路:
1:参考分页方式将数据拆成指定大小线程数
2:在每个独立的线程中去读取数据并处理数据
步骤一实现

public class IndexIntiTools {

    public static AtomicInteger runflag=new AtomicInteger();

    //用于测试
    public static List<Object>  syncList=new CopyOnWriteArrayList<Object>();
    private static int idxThreadCount = 10;

    private static Executor ex = Executors.newFixedThreadPool(idxThreadCount);

    /**
     * 构建索引
     * @param hql
     * @param size
     */
    public static void build(String hql, int size) {
        int pagecount = idxThreadCount;
        int count = size / pagecount;
        int mod = size % pagecount;
        List<Runnable> runList = new ArrayList<Runnable>(pagecount);
        IndexExecutor idxExecutor;
        for (int i = 0; i < pagecount; i++) {
            if (i == (pagecount - 1)) {
                idxExecutor = new IndexExecutor(hql, i * count, count + mod);
            } else {
                idxExecutor = new IndexExecutor(hql, i * count, count);
            }
            runList.add(idxExecutor);
        }
        for (Runnable runnable : runList) {
            runflag.incrementAndGet();
            ex.execute(runnable);
        }
    }

}

步骤二实现

public class IndexExecutor implements Runnable{

    private static final Log log = LogFactory.getLog(IndexExecutor.class);
    private int start;
    private int limit;
    private String hql;
    public IndexExecutor(String hql,int start, int limit) {
        this.hql=hql;
        this.start = start;
        this.limit = limit;
    }

    @Override
    public void run() {
        log.info("hql:"+hql+",start:"+start+",limit"+limit);
        //查询数据库(hql,start,limit);
        log.info(list);
        IndexIntiTools.syncList.addAll(list);
        IndexIntiTools.runflag.decrementAndGet();
    }

}
时间: 2024-10-05 02:51:54

大数据拆分处理方式的相关文章

C# &amp; SQL Server大数据量插入方式对比

以下内容大部分来自: http://blog.csdn.net/tjvictor/article/details/4360030 部分内容出自互联网,实验结果为亲测. 最近自己开发一个向数据库中插入大量历史数据的函数库,需要解决一个大数据量插入的效率问题.不用分析,我知道如果采取逐条数据插入的方式,那么效率肯定很低,光是那么多循环就知道很慢了.于是乎,我找到了上篇博客,知道了BulkCopy和TVPs方式.为了更好的了解其效率,我自己动手亲测了一下效果,测试的数据库位于本机. (1)方式1:循环

找工作——大数据的处理方式

1. top K问题:在海量数据中找出出现频率最高的前K个数.或从海量数据中找出最大的前K个数,这类问题统称为top K问题. 针对top K类问题,通常比较好的方式是分治+hash+小顶堆 eg:在1亿个浮点数中找出其中最大的10000个. 方法一:排序取出前10000个.  每个float占4B,1亿个浮点数400MB,对于内存小于400MB的该方法不能一次将全部数据读入内存进行排序,而且排序是对所有元素进行排序,做了很多无用功. 方法二:局部淘汰法. 用一个容器保存前10000个数,然后将

大数据的两种处理方式

大数据的处理方式有两种:基于内存的流式处理和基于硬盘的存储处理. 流式处理就好象是在经过的数据面前建一道水闸.数据流过这里,经过闸门的时候,就进行筛选过滤,分析出有价值的内容,然后丢弃,以后也不再使用. 存储处理则是建一个储水池.数据先放进入储水池存起来,需要的时候,再进到储水池里,在里面筛选分析,找到那些有价值的内容.这个过程中,因为水还在储水池里,没放掉,所以可以供下次继续使用. 存储模式的数据处理是可以重复的,用完再用,反复使用.但是因为硬盘本身的机械特性问题,导致它处理速度慢,速率不高.

了解大数据的特点、来源与数据呈现方式

1.浏览2019春节各种大数据分析报告 这世间,再无第二个国家有能力承载如此庞大的人流量.http://www.sohu.com/a/290025769_313993 春节人口迁徙大数据报告!http://www.sohu.com/a/293854116_679156 春节大数据:消费首破万亿 最佳伴手礼竟是教辅书? http://news.163.com/19/0211/19/E7OPDBBU0001899N.html 大数据中的春节http://www.xinhuanet.com/polit

大数据的特点、来源与数据呈现方式

一.分析数据的来源: 1.BBC拍春节纪录片<归乡>: (1).全国各地的汽车.火车.高铁.飞机等交通运输的客运站获取数据: (2).网上各个订票系统中获取数据. 2.春节人口迁徙大数据报告: (1).腾讯地图中获取人们使用的数据 (2).全国各地的汽车.火车.高铁.飞机等交通运输的客运站获取数据. 3.春节大数据:消费首破万亿,最佳伴手礼竟是教辅书: (1).淘宝.京东这些购物平台的数据: (2).中国银联的数据: (3).微信支付的数据: (4).猫眼电影数据. 4.大数据中的春节: (1

随笔一:大数据的特点、来源与数据呈现方式

浏览2019春节各种大数据分析报告 春节人口迁徙大数据报告! 分析所采用数据的来源有哪些? 交通运输部公布的数据.腾讯地图.腾讯位置服务.2017年主要城市流动人口排行.2017年主要城市人口排行.<中国流动人口发展报告2018>.三大城市群省际流动人口主要来源地图.春节北京.上海.广州人口迁出流量图.中国人口流动出现四大趋势.2019携程大数据.携程问卷调查. 大数据的呈现方式有哪些? 统计图.问卷调查.流量图.论文报告. 大数据的特点是什么? 数据体量巨大.数据类型繁多.价值密度低.处理速

大数据技术之_18_大数据离线平台_01_项目开发流程+大数据常用应用/分析平台/业务处理方式+数据分析平台的数据来源+数据处理的流程+项目集群的规模+需求分析+技术架构/选型

一.项目开发流程1.1.项目调研1.2.项目需求分析1.3.方案设计1.3.1.概要设计1.3.2.详细设计1.4.编码实现1.4.1.单元测试1.4.2.集成测试1.4.3.压力测试1.4.4.用户测试二.大数据常用应用2.1.数据出售2.2.数据分析2.2.1.百度统计2.2.2.友盟2.2.3.其他统计分析组织2.3.搜索引擎2.3.1.solr2.3.2.luence2.3.3.luence & solr 对比2.4.推荐系统(高数)2.4.1.技术2.4.2.算法2.5.精准营销2.5

117道有关大数据面试题解析,希望对你有所帮助

一 .简述如何安装配置apache 的一个开源的hadoop 使用root账户登陆 2.修改ip 3.修改host主机名 4.配置ssh 免密登陆 5.关闭防火墙 6.安装JDK 7.解压hadoop安装包 8.配置hadoop的核心配置文件 hadoop-env.sh? core-site.xml? mapred-site.xml yarn-site.xml hdfs-site.xml 9.配置hadoop 的环境变量 10 .格式化hadoop namenode-format 启动节点sta

117道有关大数据面试题的解析,希望对你有所帮助!

一 .简述如何安装配置apache 的一个开源的hadoop 使用root账户登陆 2.修改ip 3.修改host主机名 4.配置ssh 免密登陆 5.关闭防火墙 6.安装JDK 7.解压hadoop安装包 8.配置hadoop的核心配置文件 hadoop-env.sh? core-site.xml? mapred-site.xml yarn-site.xml hdfs-site.xml 9.配置hadoop 的环境变量 10 .格式化hadoop namenode-format 启动节点sta