# opslabJava **Repository Path**: opslab/opslabJava ## Basic Information - **Project Name**: opslabJava - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-28 - **Last Updated**: 2022-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java学习 ## javadata java数据处理 ### summary 数据永远是资产的代名词,蚂蚁金服就是典型的代表,坐拥几乎全国人的肖像信用数据所以如此牵动人心。 思想不能跑偏,回归正题本项目是个人用户学习数据处理相关的技术是乱七八糟的笔记和实验代码的项目。 ### 行业共识 不论早期基于传统数据的集群模式,还是现在以及红火的hadoop生态系统,再数据处理方面行业逐渐统一 形成了基本的打怪升级套路。基本可以分为如下几个步骤: * 1. 数据生成 * 2. 数据临时暂存(消息队列如kafka,RabbitMQ,RocketMQ...) * 3. 暂存数据清洗加工计算处理(spark,flink,keylin...) * 4. 处理后的数据最终落地写入(db,elasticsearch,clickhouse,hbase,hive,mongdb...) 下面是各种关于这个套路围绕的一些平台的乱七八糟的东西。hadoop就是个坑,永远不要在windows上搭建 其学习环境,那是无尽的深渊。 ### hadoop #### hadoop Mrjob是一个编写MapReduce任务的开源Python框架,它实际上对Hadoop Streaming的命令行进行了封装, 因此接粗不到Hadoop的数据流命令行,使我们可以更轻松、快速的编写MapReduce任务。 #### spark Spark是一个实现快速通用的集群计算平台。它的产生为了解决MapReduce的计算引擎缓慢的问题。Spark 是MapReduce的替代方案,而且兼容HDFS、Hive可融入Hadoop的生态系统,以弥补MapReduce的不足。 Spark使用最先进的DAG调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性能。 另外Spark支持Java、Python和scala的API,还支持超过80中高级算法,使用户可以快速构建不同的应用, 而且spark支持交互式的Python的Scala的shell,可以非常方便地在这些shell中使用spark集群来验证 解决问题的方法。 #### HBASE Hbase是Hadoop Database的简称 ,Hbase项目是由Powerset公司的Chad Walters和Jim Kelleman 在2006年末发起.Hbase是分布式、面向列的开源数据库(其实准确的说是面向列族)。HDFS为Hbase提供可 靠的底层数据存储服务,MapReduce为Hbase提供高性能的计算能力,Zookeeper为Hbase提供稳定服务和 Failover机制,因此我们说Hbase是一个通过大量廉价的机器解决海量数据的高速存储和读取的分布式数据 库解决方案。 ##### phoenix Phoenix是基于HBase的SQL中间件产品,由Salesforce.com公司开源并托管于Github上。对于熟悉关系 型数据库的开发人员来说,通过Phoenix可以像使用MySQL等关系型数据库一样使用HBase中的数据表。值得 注意的是,它还提供了JDBC驱动包供Java程序访问数据。在实现时,充分利用了HBase协处理器和过滤器等 底层。phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用 工具进行一些读或写操作。相对来说该功能建议向PLSQL以后使用,而不是直接部署到线上处理。 #### HIVE Hive依赖于HDFS存储数据,并将HQL转换成MapReduce执行,简单的说hive是基于Hadoop的一个数据仓库工具, 其本质就是基于HDFS的MepReduce计算框架,对存储在HDFS中的数据进行分析和管理。通常用于离线分析。HQL 用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语 句被翻译为Hadoop上面的MapReduce任务。 #### Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了。当初雅虎自己慢慢退出pig 的维护之后将它开源贡献到开源社区由所有爱好者来维护。不过现在还是有些公司在用,不过我认为与其使用pig 不如使用hive。:)Pig是一种数据流语言,用来快速轻松的处理巨大的数据。 Pig包含两个部分:Pig Interface,Pig Latin。Pig可以非常方便的处理HDFS和HBase的数据, 和Hive一样,Pig可以非常高效的处理其需要做的,通过直接操作Pig查询可以节省大量的劳动和时间。 当你想在你的数据上做一些转换,并且不想编写MapReduce jobs就可以用Pig. #### Pig VS Hive Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使 其成为Hadoop与其他BI工具结合的理想交集。Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁 的脚本用于转换数据流以便嵌入到较大的 应用程序。Pig相比Hive相对轻量,它主要的优势是相比于直接使用 Hadoop Java APIs可大幅削减代码量。正因为如此,Pig仍然是吸引大量的软件开发人员。Hive和Pig都可 以与HBase组合使用,Hive和Pig还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单 #### Hive VS HBase Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop 对实时操作的缺陷的项目 。想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问, 就用HBase+Hadoop 。Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的, 肯定比Hive高效的多。