自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 kudu

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片

2021-04-25 14:49:27 170

原创 黄伟佳面试总结

面试自我介绍2.HadoopHDAOOP:是一个分布式系统的基础架构,其优点高可靠:就是其会存储多个副本高扩展:是可以拓展数以千计的节点高效性:是因为其并行处理任务会大大的加快任务处理完成的速度高容错:能够将失败的任务重新分配HDAOOP:组件我了解到的大概有如下这些HDFS,HIVE,HBASE,YARN,SPARK,ZK,MRHDFS:为一个分布式的文件存储系统:他是一个高容错,并且能检测和应对硬件故障的文件存储系统,HDFS工作机制:NameNode会将客户端上传的数据根据默认的大

2021-04-20 08:40:19 721

原创 李晋面试总结

集群规模团队规模 5个人 OLAP 1 数据采集1 报表 2 组长数据量 3 千万条 实时 5-6 百万条12核 24 线程 内存 64 G 硬盘 8 T * 8 个kafka 3台 副本两个 mysql 4台 hdfs + yarnCDH 6.2hadoop 3.0.3hive 2.1spark 2.4linux版本CentOS-7 就是linux7集群安装步骤 : 免密 ip映射 集群同步公司概

2021-04-20 08:39:02 283

原创 田德志面试总结

什么是大数据,千万级别的数据完全可以用传统关系型数据库集群解决为什么会用到大数据平台?传统数据库很难数据治理,而且考虑到后期业务发展数据海量增长在一定时间内很难对数据进行捕捉,治理什么是数仓,建设数仓碰到过什么问题?存储海量数据的仓库的集合,对多样的业务数据进行筛选和整合,给公司提供一定的BI能力问题 前期数仓建设的时候需要了解业务,有些复杂的业务对我们的要求较高,需要和业务开发进行沟通,然后统一我们的计算口径, 以及数据类型,避免数据类型不匹配的问题,还有就是最开始开发的时候需要确保统一命

2021-04-20 08:38:21 230

原创 姚季伟知识点总结

00问题flume问题总结1. 数据采集flume的agent的堆内存大小 默认只有20M,在生产中是肯定不够的 一般需要给到1G vi bin/flume-ng 搜索 Xmx , 并修改 2. channel阻塞 启动flume之前,积压的数据过多, 启动flume后,source读得很快,而sink写hdfs速度有限,会导致反压 反压从下游传递到上游,上游的flume的运行日志中会不断报:channel已满,source重试这里就涉及到flume的运

2021-04-20 08:37:39 264

原创 spark剩余知识点整合,自定义排序,序列化,闭包,线程安全问题,累加器

自定义排序和序列化的问题案例import cn._51doit.demo03.SparkUtilsimport org.apache.spark.rdd.RDDobject CustomSort01 { def main(args: Array[String]): Unit = { val sc = SparkUtils.createContext() val data: RDD[String] = sc.parallelize(List("laoduan,36,99.99",

2021-01-22 21:52:17 200

原创 StandAlone的Cluster模式和SparkOnYarn

client模式运行jar包/opt/apps/spark-3.0.1-bin-hadoop3.2/bin/spark-submit --master spark://linux01:7077 --executor-memory 1g --total-executor-cores 3 --class cn._51doit.day01.WordCount /data/spark-1.0-SNAPSHOT.jar hdfs://linux01:8020/wc hdfs://linux01:8020/o

2021-01-22 21:52:05 167

原创 spark-sql

在spaek-shell端演示1.val rdd1 =sc.textFile(“hdfs://linux01:8020/1.txt”)2.case class User(id:Long , name:String , age:Int , fv:Double)3.rdd1.map(e => {val fields = e.split(",")User(fields(0).toLong , fields(1) , fields(2).toInt , fields(3).toDouble)})4.

2021-01-22 21:51:40 294

原创 spark

spark架构体系master负责管理,worker负责管理当前节,点启动Master,然后内部会启动一个定时器,定期检测超时的worker,移除超时的Worker 启动Worker,跟Master建立网络链接,将自己的信息(id,内存,cou等信息)注册给Master,Master接受到消息后会将Worker的信息保存起来,保存到内存,也可以持久化到磁盘,然后向Worker发送注册成功的消息Worker接受到了Master发送注册成功的消息,然后启动一个定时器,定期向Master’发送心跳(发送心跳的目

2021-01-20 20:04:00 154 1

原创 算子整体回顾和案例分析

底层的RDD常用的就4个MapPartitionsRDD:对;每个分区进行操作是一个比较底层的算子具体怎么实现要看底层的computer方法,对RDD进行map本质上是对每一个分区进行map,每一个分区对应一个迭代器,其实是把map方法作用在迭代器上,然后把要传的函数先检查一下看有没有未被序列化的问题然后再传进去,接就是说以后生成task,task如果是一个很复杂的功能他再一个stage里会生成一个迭代器链,而迭代器链里的某一个操作就是对应RDD里面的computer方法suffleRDD:groupB

2021-01-20 20:03:42 206

原创 spark_sql案例分析

uid,dtguid01,2018-02-28guid01,2018-03-01guid01,2018-03-02guid01,2018-03-05guid01,2018-03-04guid01,2018-03-06guid01,2018-03-07guid02,2018-03-01guid02,2018-03-02guid02,2018-03-03guid02,2018-03-06需求计算连续登录三天及以上的用户select --要把uid,和时间都去重因为有的客户一天会登录好

2021-01-20 20:03:18 210

原创 kafka快速入门

基本操作list存在的topic bin/kafka-topics.sh --list --zookeeper linux01:2181就是看里面的库 ---------------------------------------------------------------------------------- 创建topic bin/kafka-topics.sh --create --topic doitedu19 --partitions 2 --replication-factor .

2021-01-20 20:03:01 220

原创 大数据项目1

埋点日志采集埋点在本项目中有三大类App端行为日志PC web端行为日志微信小程序端行为日志需求日志生成在N台服务器中,现在需要使用flume采集到HDFS3类日志采集后要分别存储到不同的hdfs路径日志中的手机号,账号需要脱敏处理(加密)不同日期的数据要写到不同的文件夹,且分配应以事件时间为依据因为日志服务器所在子网跟HDFS集群不在同一个网段,需要中转传输上游a1.sources = r1a1.channels = c1a1.sinks = k1 k2a1.sou

2021-01-20 20:02:38 283

原创 大数据项目2

linux操作系统基本操作补充ps -ef 查看系统中所有进程ps -ef |grep flume 查看单个进程的详细信息(如果把flume换成yarn就是看yarn的详细信息)ps -ef | grep yarn | wc -l 查看有多少条数据返回的是一个数字yum install mailx -y 在linux操作系统装邮件客户端which java 查看java路径(如果把Java换成hadoop那就是查看hadoo

2021-01-20 20:02:19 220

原创 大数据项目3

GMV 今天提交订单的金额总和,不管是否支付全站PV 页面浏览量大砍一次就是一个pv再刷新一次又是一个pv全站UV 去重的访客总和set mapreduce.framework.name=local;本地set mapreduce.framework.name=yarn; yarnset hive.vectorized.execution.enabled=true ; //开启s

2021-01-20 20:02:00 433

原创 akka,柯里化

用老师和学生的例子比喻Actor编程模型多个学生问多个老师问题学生和老师都是Actor的作用就是收发消息,处理逻辑的教学总监和班主任是ActorSystrm,是用来创建Actor的,并且监控和管理他创建的ActorActorSystrm是单例的,一个进程只要有一个即可Actor是多例的,可以创建多个实例Actor编程模式就通过送消息来实现并发的Akka就是基于Actor编程模型实现的,可以是单机的也可以是分布式的RPC通讯案例过程分析大哥在机器一上有一个进程Master这个以后要进行通信的

2021-01-20 20:01:40 102

原创 可视化javaee

Java开发就是所谓的Javaweb开发就涉及到了javaweb基础(html js serviet)用的就是javaee语言整体的流程是先有一个页面,页面发起请求到后端,后端serviet接受前台的请求,调用功能性的方法service,在调dao.(分层:先是页面发起请求到控制层也就是表现层,然后再调用业务层,再调数据库再和数据库交互)spring是一个优秀的框架它提供的核心功能有:IOC控制反转(管理任意的类)spring是一个大容器可以管理任意的bean自动维护类和类之间的依赖关系(DI依赖注入)

2021-01-20 20:01:22 194

原创 impala入门

impala 羚羊 快hive是一个ETL工具可以做报表统计分析,在hive里面写sql在将sql转换成MR程序,在找到yarn分配调度任务产生很多task就可以取hdfs上处理海量数据这样就比较慢impala会向metastore读取元数据写sql语句基本和hql一样,还会在每台datanode上装一个impalad进程直接用内存读数据省略了转MR在yarn上调度的过程所以快了很多最后在聚合,lmpala是依附于hive的要读取hive\的元数据的两个是相辅相成的lmpala可以算及时的,hive

2021-01-20 20:00:58 185

原创 flume数据采集工具

业务系统就是客户端加上后台的服务Source,channel,Eventflime运行起来的进程叫agentflume采集系统就是由一个个agent连接起来所形成的一个或简单或复杂的数据传输通道每一个agent都有3个组件Source,channel,sinkSource就相当于read(读数据)Channel就相当于缓存数据(为了解耦合)Sink就相当于write(写数据)Eventevent是数据 在channel中的封装形式因此,Source组件在获取到原始数据后,需要封装成ev

2021-01-10 20:40:12 440

原创 RDD上的特殊方法

rdd.cache在触发action时会把计算结果算出来,与此同时会把对应的rdd放到内存里面,如果就触发一次action或者这个 rdd没有复用就没意义cache会怎么用嫩:通常会吧数据先过滤一下保留有用的字段在rdd.cacherdd.unpersist(true) 用对应的rdd点unpersist(true)就可以把他从内存中释放掉参数填true是同步的,是阻塞,要这边释放掉drive端代码才可以往下走默认是false是异步的,是不阻塞但是用原本的存储格式是java对象的方式存

2020-12-30 19:55:09 579

原创 Transformation 的各种算子详解

RDD是一个弹性分布式可复原的数据集,他是一个抽象的他里面并不装数据,他里面装的是,描述以后从哪里读数据描述以后怎么算,对RDD进行操作本质上是对RDD里面的每一个分区进行操作,一个分区对应一个迭代器,其实是吧算子传到迭代器里面了,对RDD进行map本质上是对里面的每一个分区,对应的数据进行map,其实解释调用迭代器的方法,然后被函数传进去,但是我没在实际计算中有可能传很多的逻辑在一个stage(阶段)里面其实是形成了迭代器链,对数据进行了链式操作,(注意是在一个stage里面),因为以后会有suffer,

2020-12-26 23:26:59 655 1

原创 RDD详解课堂笔记

sc.textFile(“里面放路径”) 这两个都是创建一个RDDsc.parallelize(里面放集合)val arr = Arry(1,2,3,4,5,6,7,8,9)val rdd = sc.parallelize(arr)rdd.partitions.length 这是查看有几个分区用parallelize创建分区的时候不指定分区,分区的数量跟total-executor-cores指定几个核有关分区数量决定了任务的并行度 并行度越高

2020-12-23 23:55:23 228

原创 scala的函数学习,方法,类和构造器

定义一个完整的函数val fun : (Int , Int) => Int = ( x , y ) => x + y 这是一个完整的函数定义fun是函数的名字(Int,Int)是参数的数据类型Int是返回值类型(x,y)是参数x+y是函数体val fun = (x: Int , y: Int) => x + y 这是简写的函数等同于上面的注意返回值类型一定要写函数 的下滑线_简写方法val arr = Array(1,2,3) 定义一个数组arr.map(x =>

2020-12-17 23:30:57 304

原创 scala 基础语法

val 定义变量值不可变var 定义变量值可变Any 是所有数据类型的祖宗 类似于objectUnit 类 写做() 相当于java中的 void数组的定义 Array(1,2,3) 注意是小括号for循环语法结构: for( i <- 表达式\数组\集合)1 to 10 返回1到10这个区间 包含1也包含101 until 10 返回1到10这个区间 包含1但不包含10reverse 反转双层for循环带条件 for(i <

2020-12-15 19:51:31 298

原创 将日志导入到hive 和事件漏斗案例 和收尾

日志数据用MR程序读的时候要对数据进行清洗,集成(地理位置 user_info)和转换(CSV json)在导入到hive中,单也有写数据不用清洗直接就可以导入到hive中用sql语句进行预处理,最后会得到一个完整的大宽表ODS的原始数据层,每行找一个全局id(guid)打一个标记,因为有可能好几行的数据访问量都是一个问的所以不能定义为多个客户,要定义为一个客户访问(在这里就是账号id或者设备id)将数据导入到虚拟机将hive year hdfs都打开 在进入到beeline导入数据先

2020-12-09 23:56:11 477

原创 clickhouse的案例题 和一些函数

subtractDays(time , time) 时间想减的函数a,2017-02-05,200a,2017-02-06,300a,2017-02-07,200a,2017-02-08,400a,2017-02-10,600b,2017-02-05,200b,2017-02-06,300b,2017-02-08,200b,2017-02-09,400b,2017-02-10,600c,2017-01-31,200c,2017-02-01,300c,2017-02-02,200

2020-12-09 00:12:57 452

原创 clickhouse的傻瓜式安装和基础入门

clickhouse的傻瓜式安装1)安装curl工具yum install -y curl2)添加clickhouse的yum镜像curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash3)检查镜像情况[root@doit04 yum.repos.d]# yum list | grep clickhouse c

2020-12-05 23:37:22 898

原创 hive的sql之系统函数加强

truck 返回时间的函数select truck ('2020-12-4','Q') ; 参数一就是给一个时间参数二有'MM'返回所给时间的这个月的第一天 'Q'返回所给时间的季度的第一天'YEAR'返回所给时间的年的第一天json_tuple 对于json对象解析的函数 假如有一个json对象在表格中会形成很多数据在一列中就可以用这个函数方便提取{"movie":"1193","rate":"5","timeStamp":"978300760","uid":"1"}{"m

2020-12-05 00:09:00 194

原创 hive的sql案例 和编号函数

distinct 加列名 去重row_number() over() 加一列编号 编号函数后面可以跟窗口函数 不关心排序字段rank() 编号函数 如果排序字段相同那么编号一样 就像分数相同并列第一名一样 总编号不变举例 98分 第一名 98分 第一名 97分 第三名 96分 第四名dense_rank() 同上 但是有不同是 总编号会变少举例 98分 第一名 98分 第一名 97分 第二名 96分 第三名dete_s

2020-12-03 23:01:02 332

原创 hive的窗口函数

over(partition by 加开窗口的字段)jack,2020-01-01,10tony,2020-01-02,15jack,2020-02-03,23tony,2020-01-04,29jack,2020-01-05,46jack,2020-04-06,42tony,2020-01-07,50jack,2020-01-08,55mart,2020-04-08,62mart,2020-04-09,68neil,2020-05-10,12mart,2020-04-11,75n

2020-12-03 00:42:57 202

原创 hive的sql之行转列和列转行

行转列 将多行的数据合并到一列中collect_set(要聚合的一列字段名) -- 去重collect_list(要聚合的一列字段名) 这两个都是聚合函数 将一列数据聚集成一个数组集合select collect_set(要聚合的一列字段名) from 加表名 ;concat_ws 拼接concat_ws(拼接符,可变个数的字符串或数组) 可以拼接字符串也可以拼接数组中的元素select concat_ws(',','a','b') ; 返回的是a,b 把这俩字符串用

2020-12-02 23:56:45 823

原创 hive的sql语句之系统函数 分桶表和抽样查询

数组 selectselect array(1,2,3,4) ;用法案例select array(id,url,ct)这是表的列名 from tb_log ; 这是表名 就是把表的三列合成一列展示出来select array(id,url,ct)[0] from tb_log; 数组的取值就是把索引为0的id列展示出来array_conrainsarray_conrains 判断数组中是否有指定 元素 用法如下select array_contains(array(1,2,3)

2020-12-02 23:03:00 709

原创 hive的sql题练习,关联查询语句,排序

`count(1) 统计这一列有多少个单`位sql语法执行顺序select 4 执行from 1tb_name where 2group by 3分组having 5order by 6全局排序limit****insert into 要插入的表名 values(要插入的一行数据中间','隔开) 表中插入一行数据关联查询的语句总结 join,inner join,left join,right join,full join ,un

2020-12-02 20:37:28 321

原创 hbase课堂笔记_有点乱

hbase有主从节点之分Hmaster是主节点regionserver是从节点processlist 进程列表(region的拆分,region的合并)status 集群状态***table_help 表的帮助version hbase的版本***whoami 当前用户***ddl 表的操作语言(和表的结构有关的操作)alter 修改表结构(表明 列族属性 ttl(FOREVER无限时间)数据的过期时间 version数据版本)create 建表describe 表信息dis

2020-12-02 10:52:49 5798

原创 开关机命令

namenode datenode 是hdfs 开关是 start-dfs.sh stop-dfs.shnodemanager resoutcemanager 是yarn 开关是 start-yarn.sh stop-yarn.shquorumpeermain 是 zookeppr 开关是 sh zk.sh start sh zk.sh stophregionserver hmaster 是hbase 开关是start-hbase.sh stop-hbas

2020-12-02 10:51:47 103

原创 linux课堂笔记_有点乱

ls 当前目录所有文件夹ll 返回当前文件夹下所有文件明细ll -a 显示所有文件(包括隐藏文件)./ 当前目录…/ 上一级目录cd / 返回根目录cd ~ 返回root目录 家目录cd - 返回上一次所在的muluuseradd加用户名 添加用户 在home目录可以查看su root 使用管理员用户su 用户名 使用此用户ls / 查看根目录下所有文件pwd 获得所在文件夹的绝对路径ls ./ 查看当前目录下的所有wen

2020-12-02 10:51:05 1493

原创 hadoop课堂笔记_有点乱

hdfs dfs-cat 查看文件内容-ls -R 递归查看文件夹下所有文件目录-put 上传-get 下载-rm -r 删除-chmod -R 修改权限-mv 移动-tail 从后面开始读java 客户端maven 创建项目添加依赖//创建默认配置文件系统对象Configuration con = new Configuration();//分布式文件系统FileSystem fs = FileSystem.newInstance(new URI(“hdf

2020-12-02 10:49:29 226

原创 hive的sql查询语句和题练习

查询语法show functions 查看系统中 支持的函数desc function 加想要查的函数 查询这个函数怎么用if(1==1,1,0) 类似于三维运算符 表达式一成立执行1,不成立执行0nvl(comm,0) 如果comm是null就返回0,如果不是null就返货comm原本的默认值greatest(jb,jj,tc) 返回里面最大的一个数case 2when 1 then 'jb'when 2 then 'jj'when 3 then 'tc

2020-12-02 01:15:14 278

原创 hive学习笔记

hi ve的简介企业中大部分数据都是结构化的数据,就算不是结构化的数据也会弄成结构化的数据可以用java来分析,但是Java分析效率低,单机器运算资源,不能分布式运行处理能力有限可以用mysql来处理,处理效率高但是处理的数据量有限,并发量有限所以可以把大量的数据存储在hdfs中就可以横向扩展,可以存海量的数据在hdfs中就可以用MR程序来处理,但是MR程序处理数据慢,开发周期长,代码量臃肿,代码复杂,效率低,但是稳定为什么要分析处理数据嫩,应为我们要从海量数据中提取有价值的数据,指导企业的后

2020-12-01 12:02:10 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除