大数据
分享从搭建到实战记录的大数据技术
盈欢
这个作者很懒,什么都没留下…
展开
-
spark自定义分区器实现
前言:为什么我们要进行自定义分区当spark进行数据处理key-value类型数据时,会遇到数据由于key值的分布不均倾斜的情况,为了使得资源的合理布置我们会进行重分区,根据spark内部提供的分区器 HashPartitioner & RangePartitioner,我们也可以实现自定义不bb了:test case:用如下数据做word count 实现自定义分区hadoop,sparkhivehivesparkhbase,hbasehbasehbase,hbase原创 2021-11-24 16:09:03 · 1939 阅读 · 0 评论 -
sparkstreaming中有状态计算之updateStateByKey
一. sparkstreaming流式处理中也分为有状态计算及无状态计算无状态是指: 数据不保留之前批次计算的结果,每次的结算结果不相互依赖。有状态是指:当前批次的处理结果和之前批次处理进行更新或汇集。主要讲算子updateStateByKey先看方法:` def updateStateByKey[S: ClassTag]( updateFunc: (Seq[V], Option[S]) => Option[S] ): DStream[(K, S)] = ssc.wit原创 2021-10-31 14:22:22 · 696 阅读 · 0 评论 -
spark核数以及分区分配使用测试
一. 在开始之前先熟悉几个相关的概念Executor由若干core组成,每个Executor的每个core一次只能执行一个Task每个Task执行的结果就是生成目标RDD的一个partiton换言之task数partition数是对应起来的,但是是rdd的分区数目决定了总的task数目这里的core是虚拟的core而不是机器的物理CPU核,可以理解为就是Executor的一个工作线程。3. task被执行的并发度 = Executor数目 * 每个Executor核数(=core总个数)注原创 2021-10-29 12:51:56 · 1203 阅读 · 0 评论 -
Hive的UDF
在Hive原创 2021-08-29 11:35:55 · 146 阅读 · 0 评论 -
Spark的流式处理数据中使用case class 封装为对象以及简单的黑名单过滤情况
一.因为作者比较懒,这里没有做流式的数据接入,所以采用sparkcore的方式进行编码,使用者需要在真实环境中注意1) 数据的接入的改变,如 kafka集成sparkstreaming接入2) 黑名单过滤时候,应该是dstream作为输入,想要进行rdd操作需要使用transform算子,本文无法展示import java.util.Propertiesimport com.alibaba.fastjson. JSONObjectimport org.apache.spark.rdd.RDD原创 2020-08-14 14:15:35 · 757 阅读 · 0 评论 -
Hadoop原理学习
一.目前 1TB的数据,传输速度是100MB/s,单独去读出这份数据需要花费2个多小时的时间,这已经就相当的耗时,且只是1TB的数据那么 设想 有 100台机器存100份数据进行同时读写,那么我们可以在2min以内就完成了读写,但是问题又来了,作为分析来讲,从一个磁盘读出的数据常常需要和其他的99个盘独处的数据合并使用,比如,排序,统计。 Hadoop就提供了这个功能,其存储依赖于 HDFS,分析计算依赖于 MapReduceMapreduce:MapReduce程序本质上是并行运行的,因此可以将原创 2020-07-08 11:42:08 · 241 阅读 · 0 评论 -
Spark如何遍历Rdd中的元素
通常我们Spark程序处理数据时,会遇到将rdd的数据进行观察的情况,但是RDD[String]类型又不能直接打印出来结果,或者说有遇到需要将rdd中的结果数据取出作为变量继续计算的情况。1) 使用 collect 函数从collect函数解释来看,知道collect的返回类型是一个数组,可以通过下标或.collect.mkstring("") 这样的方式浏览数据但是 collect是将数据拉取到driver端,数据量太大的话,可能会报内存溢出的问题,而且,在driver端的数据work.原创 2020-07-02 14:03:18 · 5664 阅读 · 0 评论 -
Sqoop连接以及测试数据抽取
一. 连接1)在自己的虚拟机上安装并配置好好 sqoop2) 启动zookeeper bin/zkServer.sh start3) 测试sqoop连接本机(虚拟机)上的mysql是否连接有效sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password Abc1234!4). 测试sqoop连接本地机器发现发错连接不上:sqoop list-databases --connec原创 2020-06-30 14:40:16 · 1061 阅读 · 0 评论 -
Hive分区表基础学习
创建分区表 按年月分区:create table if not exists p_test(id int ,name string )partitioned by (year string,month string)row format delimited fields terminated by '\t';此时查看hdfs的目录 只能发现有p_test的表名,没有分区内的情况,说明需要添加分区或者添加数据;测试添加分区:alter table p_test add parti.原创 2020-06-28 18:07:29 · 222 阅读 · 0 评论 -
Hive外部表使用创建以及删除测试
简述:Hive外部表会在指定的路径处创建数据目录(hdfs),在所建的hive库中仍保留表名,但是在hdfs中是看不见的; 外部表的查询可以通过所建库下直接查询与内部表无异,跨库则需加上库名;删除表是删不掉数据的,删除的只是元数据,当给数据附上字段,表名重新创建后还是能直接访问数据。实例:create external table external_test (id int, name string) row format delimited fields terminated by '\t'原创 2020-06-23 17:11:44 · 800 阅读 · 0 评论 -
记一次Scala调用公接口入参经纬度来获得中文位置信息
pom文件加入依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4</version> </dependency> <dependenc.翻译 2020-05-22 11:47:38 · 265 阅读 · 0 评论 -
记录一次在Mac中Sqoop安装和配置
1.将下载好的tar包解压到指定位置2.配置环境变量vi ~/.bash_profile添加如下两行(自定义路径)使用 sqoop version 进行验证3.配置sqoop的conf添加hadoop和hive的路径 打开sqoop安装目录下的confcp sqoop-env-template.sh sqoop-env.shvi sqoop-env.sh 添加如下路径3)将mysql的驱动包放到sqoop下的lib目录下(这个命令是根据自己路径设定进行复制,使用者根据自己设原创 2020-05-14 22:51:11 · 303 阅读 · 0 评论 -
Spark中使用fastjson解析json字符串为DF
1)数据准备 一个多层嵌套json,数据文本名字为data.txt{"error":200,"msg":null,"lsk":{"tags":{"150":12,"151":0,"152":0,"153":0,"154":0,"110":0,"111":0,"112":1,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":3,"161":...原创 2020-04-27 08:50:12 · 1418 阅读 · 0 评论 -
Kafka的生产和消费简单代码示例
开启zookeeper服务在 zk目录下执行 bin/zhServer.sh start , 再在kafka目录下开启服务 执行 bin/kafka-server-start.sh -daemon config/server0.properties (最后的文件名如果更改自行选择)jps 命令查看服务是否开启操作创建topic示例,java代码生产者public class Pr...翻译 2020-04-23 16:24:28 · 794 阅读 · 0 评论