自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鸭梨的博客

输出每一天

  • 博客(159)
  • 收藏
  • 关注

原创 kafka彻底删除topic

删除topic一般是下面这样的,但是这样是删不掉的,只是标记为删除,再次创建同名topic还是会报错,topic已经存在.kafka-topics.sh \--zookeeper mypc01:2181,mypc02:2181,mypc03:2181/kafka \--delete \--topic pet首先server.properties 设置 delete.topic.enable=true删除kafka存储目录(server.properties文件log.dirs配置,默认为"/

2020-12-31 09:17:47 687 2

原创 kafka自杀

kafka启动后总是报错,查看log报错如下/usr/local/kafka/logs/server.logERROR Fatal error during KafkaServer startup. Prepare to shutdown(kafka.server.KafkaServer) kafka.common.InconsistentBrokerIdException:Configured broker.id 10 doesn’t match stored broker.id 1从报错

2020-12-30 20:35:05 244

原创 openresty lua_package_path指令

lua_package_path#语法:lua_package_path <lua-style-path-str>默认:由lua的环境变量决定适用上下文:http设置lua代码的寻找目录。例如:lua_package_path "/opt/nginx/conf/www/?.lua;;";具体的路径设置要参考lua的模块机制...

2020-12-30 19:44:23 2361

原创 多台kafka同时启动shell脚本

假设有三台机器,分别为mypc01,mypc02,mypc03#!/bin/bashshow(){ echo -e "\033[0;37;44m"$1"\033[00m"}case $1 in start)for i in mypc01 mypc02 mypc03doshow "--------------- $i ---------------" ssh $i> /dev/null 2>&1 << eof/usr/local/kafka/bin/

2020-12-30 18:45:18 232

原创 linux ^H^H^

MobaXterm 连接linux虚拟机,删除时出现^H^H^如何处理?执行stty erase ^H

2020-12-30 17:30:09 343

原创 kafka创建topic报错

kafka创建topic报错kafka-topics.sh \--zookeeper mypc01:2181,mypc02:2181,mypc03:2181/kafka-2020 \--create \--topic news203 \--partitions 1 \--replication-factor 1InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0.

2020-12-30 16:43:53 1456

原创 漏斗分析入门

什么是漏斗分析?漏斗分析是一种理解在网站上获得结果所需的步骤以及有多少用户通过这些步骤的方法。步骤集称为"漏斗",因为用户流可视化的典型形状类似于厨房或车库中的漏斗。例如,考虑一个虚构的电子商务公司,其最终目标(通常称为转换或宏转换)是让访问该网站的用户进行购买。在我们的网站上进行购买所需的步骤包括:访问网站、将产品添加到购物车、单击以签出并完成购买。这些步骤有时也被称为目标或微转换。假设在给定的一周内,通过每个步骤的用户数是:访问网站 1000添加到购物车 500单击以签出 300完成购买

2020-12-30 10:49:46 430

原创 spark-streaming-连接kafka的两种方式

推荐系统的在线部分往往使用spark-streaming实现,这是一个很重要的环节。在线流程的实时数据一般是从kafka获取消息到spark streaming第一种方式:Receiver模式 又称kafka高级api模式第二种方式:Direct模式 又称kafka低级API模式参考spark-streaming-连接kafka的两种方式 - xiaolaotou - 博客园https://www.cnblogs.com/yfb918/p/10528651.html...

2020-12-30 09:06:45 348

原创 数据库设计--大宽表

宽表的概念基本概念宽表从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。这种宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。应用数据仓库应用中,宽表模型以结构简单,模型容易理解,数据访问效率等优势,被业界广

2020-12-30 08:35:46 10869

原创 Spark Streaming背压机制

概念数据流入速度远高于速度处理速度,对流处理系统造成压力需要一种机制进行处理,就是背压机制 back pressure应用receiver-basedreceiver-based数据接收器,可以配置spark.streaming.receiver.maxRate参数来限制每个receiver没每秒最大可以接收的数据量direct-approachdirect-approach方式接收数据,可以配置 spark.streaming.kafka.maxRatePerPartition 参数来限

2020-12-29 15:19:05 1324

原创 大数据简答50道

1、 HDFS读写流程? 写:客户端发出请求 hdfs dfs -put /etc/profile /qf/datanamenode查看维护的目录结构,检查/qf/data是否存在,如不存在直接报错”no such file or directory“,如存在返回给客户端同意上传文件请求,将操作写入日志文件客户端请求上传第一个块,询问namenode块的存储位置namenode查看自己的datanode池,返回给客户端一个datanode列表客户端发出请求建立pipeline客户端先把文件写入缓

2020-12-29 14:04:18 2271

原创 Hive cube,roll up入门案例

用法案例

2020-12-29 11:26:22 590

大数据面试题汇总

数据倾斜当某个job长时间运行没有结束,可能发生了数据倾斜。hive设置map端聚合和二次group by保证reduce数据大概平均,然后再设置reduce数量减少每个reduce的数据量尽量少用distinct,不仅吃不到map端聚合(distinct原理是全局排序去重),而且多个distinct也吃不到二次group的优化。如果group by 多个字段,或者其它二次group失效的情况,可以走下方spark的解决方案,将hql分多个hql来做。Spark比起hive来说,spark对

2020-12-29 08:32:34 137

原创 java 二分法

public class DichotomySearch { public static void main(String[] args) { int[] arr = new int[]{12, 23, 34, 45, 56, 67, 77, 89, 90}; System.out.println(search(arr, 12)); System.out.println(search(arr, 45)); System.out.prin

2020-12-29 08:31:24 69 1

原创 hive拉链表入门

概念拉链表目的在保存历史记录. 同时平衡时间和空间消耗案例新建一个普通表drop table ods.shop;CREATE EXTERNAL TABLE IF NOT EXISTS ods.shop( `id` int comment '主键', `shop_code` string comment '店铺code', `shop_name` string comment '店铺名称', `date_create` timestamp

2020-12-28 20:56:58 165

转载 Hive map side join入门及测试

什么是MapJoin?MapJoin顾名思义,就是在Map阶段进行表之间的连接。而不需要进入到Reduce阶段才进行连接。这样就节省了在Shuffle阶段时要进行的大量数据传输。从而起到了优化作业的作用。MapJoin的原理:即在map 端进行join,其原理是broadcast join,即把小表作为一个完整的驱动表来进行join操作。通常情况下,要连接的各个表里面的数据会分布在不同的Map中进行处理。即同一个Key对应的Value可能存在不同的Map中。这样就必须等到 Reduce中去连接。要使M

2020-12-28 19:43:00 434

原创 Hive 排序入门--order by与sort by

order by(1):order by后面可以有多列进行排序,默认按字典排序。(2):order by为全局排序。(3):order by需要reduce操作,且只有一个reduce,无法配置(因为多个reduce无法完成全局排序)select * from emp order by ename;select * from emp order by ename,sal;如果在严格模式下用order by不加limit会报错,如下set hive.mapred.mode=strict;s

2020-12-28 19:09:48 812

原创 Hive分桶表入门

分桶的概述为什么要分桶数据分区可能导致有些分区数据过多,有些分区数据极少。分桶是将数据集分解为若干部分(数据文件)的另一种技术。分区和分桶其实都是对数据更细粒度的管理。当单个分区或者表中的数据越来越大,分区不能细粒度的划分数据时,我们就采用分桶技术将数据更细粒度的划分和管理[CLUSTERED BY (col_name, col_name, ...)分桶的原理与MapReduce中的HashPartitioner的原理一模一样MapReduce:使用key的hash值对reduce的数

2020-12-28 16:31:09 172

转载 大数据面试题总结

一 美团自我介绍一下?介绍一下最近的项目?目前在研究什么技术?如何判定一个表是事实表还是维度表?数据建模过程说一下?三范式知道吗,说一下?数据仓库模型建设可以使用范式建模吗,你是怎么看的?缓慢变化维处理方式?大宽表的优点与缺点?拉链表的实现逻辑说一下?Mapreduce执行流程说一下?Shulffle过程瓶颈在哪里,你会怎么解决?你刚说到会有小文件和数据倾斜,这个怎么处理?空值key加随机数是一种数据倾斜解决方案,如果有单个

2020-12-28 16:20:04 2530 3

原创 Hive面试题整理

Hive 运行原理(源码级)1. 用户提交查询等任务给Driver。2. Antlr解析器将SQL转化为抽象语法树AST Tree3. 遍历AST Tree,抽出基本的查询单元QueryBlock4. 遍历QueryBlock,翻译为执行操作树OperatorTree5. 逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量6. 遍历OperatorTree,翻译为MapReduce任务7. 物理层优化器进行MapReduce

2020-12-28 15:01:16 545

原创 Hive ntile函数

概念ntile 是Hive很强大的一个分析函数。可以看成是:它把有序的数据集合 平均分配 到 指定的数量(num)个桶中, 将桶号分配给每一行。如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1。案例select * ,ntile(3) over (distribute by classno sort by score desc) from stu_score;+------+-------+-----+--+|userid|classno|score|c1|+-----

2020-12-28 13:54:26 2581

原创 用户分析入门

重点指标分析包括新增用户数、增长率、流失率、有效会员占比、存留率情况等。增长率:用于评价企业吸引获取的新客户的数量或比例。客户数量增长率=本期客户数量-上期客户数量/上期客户数量用户价值分析根据rfm模型,再融入其他个性化参数,对用户进行价值的划分,并针对各等级用户进一步的分析。`RFM模型`是衡量客户价值和客户创利能力的重要工具和手段。该机械模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱三项指标来描述该客户的价值状况。R(Recency):客户最近一次交易时间的间隔。R值越大

2020-12-28 11:34:29 216

原创 营运指标分析入门

网站流量统计分析是指获得网站访问量基础数据的悄况下,对有关数据进行统计、分析,以了解网站当前的访问效果和访问用户行为,以发现当前网络营销活动中存在的问题.监控异常情况,为一进修正或重新制定网络营销策略提供依据,支撑活动安排,维持流量的稳定和增长。独立访问数:UV即Unique Visitor,独立访客数,指一天内访问某站点的人数。1天内同一访客的多次访问只记录为一个访客。通过IP和cookie是判断UV值的两种方式。用Cookie分析UV值:当客户端第一次访问某个网站服务器的时候,网站服务器会给这个客

2020-12-28 10:53:31 497

原创 Hive排名函数入门

排名函数第一种函数:row_number从1开始,按照顺序,生成分组内记录的序列,row_number()的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列效果如下:98 197 297 396 495 595 6没有并列名次情况,顺序递增第二种函数:RANK() 生成数据项在分组中的排名,排名相等会在名次中留下空位效果如下:98 197 297 296 495 595 594 7有并列名次情况,顺序跳跃递增第三种函数:D

2020-12-28 09:12:44 1896

原创 hive窗口函数入门

窗口函数over简介先来看一下这个需求:求每个部门的员工信息以及部门的平均工资。在mysql中如何实现呢SELECT emp.*, avg_salFROM emp JOIN ( SELECT deptno , round(AVG(ifnull(sal, 0))) AS avg_sal FROM emp GROUP BY deptno ) t ON emp.deptno = t.deptnoORDER BY deptno;select emp.*,(select avg(

2020-12-27 16:56:02 207

原创 Hive复杂数据类型 struct

简介struct类型,类似于java编程语言中对象实例的模板,即类的结构体。如地址类型的结构体:public class Address{ String provinces; String city; String street; .......}使用struct类型来定义一个字段的类型,语法格式为:create table tableName(........colName struct<subName1:Type,subName2:Type,........>...

2020-12-27 16:04:39 3765

原创 Hive 复杂数据类型之map

定义格式如下:create table tableName(.......colName map<T,T>......)案例准备:测试数据如下zhangsan chinese:90,math:87,english:63,nature:76lisi chinese:60,math:30,english:78,nature:0wangwu chinese:89,math:25create table if not exists map1( name string,

2020-12-27 15:39:41 4471

原创 Hive复杂数据类型之array

定义格式如下:create table tableName(......colName array<基本类型>......)说明:下标从0开始,越界不报错,以null代替案例准备:测试数据zhangsan 78,89,92,96lisi 67,75,83,94王五 23,12create table if not exists arr1( name string, scores array<string>)row format del

2020-12-27 15:05:08 13618 1

原创 Hive的运行方式

在hive的client中运行1. 本地模式下使用hive进行client2. 远程模式下使用beeline工具进入client3. 远程模式下使用hive进入client在linux中执行hql命令入门例子.如下,执行完成后又会返回linux命令行[root@mycp01 tmp]# hive -e 'select * from emp'7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 207499 AL

2020-12-27 12:25:01 383

原创 Hive基本查询语法

基本使用规则基本查询语句组成select ..from .. join [tableName] on .. where .. group by .. having .. order by .. sort by .. limit ..union | union all ...执行顺序第一步: FROM <left_table>第二步: ON <join_condition>第三步: <join_type> JOIN <right_tab

2020-12-27 11:51:54 805

原创 hive内部表与外部表入门

表分类在Hive中,表类型主要分为两种,第一种:内部表也叫管理表表目录会创建在集群上的{hive.metastore.warehouse.dir}下的相应的库对应的目录中。默认创建的表就是内部表第二种:外部表外部表需要使用关键字"external",外部表会根据创建表时LOCATION指定的路径来创建目录,如果没有指定LOCATION,则位置跟内部表相同,一般使用的是第三方提供的或者公用的数据。建表语法:必须指定关键字external。create external table

2020-12-27 10:39:05 270

原创 Hive数据导出入门

hive数据导出分类1. 从hive表中导出本地文件系统中(目录、文件)2. 从hive表中导出hdfs文件系统中3. hive表中导出到其它hive表中导出到目录下--1. 导出数据到本地文件系统的目录下,00是文件夹目录insert overwrite local directory '/root/out/00'select * from emp;结果如下[root@my01 00]# pwd/root/out/00[root@my01 00]# cat 000000_07

2020-12-27 10:14:33 155

原创 维度表入门

比如,可以创建一个地区维表hive建立地区维度表create temporary table dim_pub_area( region_code string comment '', region_code_desc string comment '', region_city string comment '', region_city_desc string comment '', region_provi

2020-12-26 17:24:48 543

原创 Hive基本操作入门

规则语法大小写规则:1. hive的数据库名、表名都不区分大小写2. 建议关键字大写命名规则:1. 名字不能使用数字开头2. 不能使用关键字3. 尽量不使用特殊符号库操作语法创建数据库创建数据库的本质就是在hive的参数${hive.metastore.warehouse.dir}对应的目录下,创建一个新的目录,此目录的名称为: 库名.db。注意:在创建库或者表时除了创建目录外,还会在mysql中(元数据库),添加元数据(描述信息)hive> create database

2020-12-26 15:59:47 284

原创 Hive与mysql的区别

Hive采用了类SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。数据库可以用在OLTP的应用中,但是Hive是为数据仓库而设计的,清楚这一点,有助于从应用角度理解Hive的特性。Hive不适合用于联机事务处理(OLTP),也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。Hive 的特点是可伸缩(在Hadoop 的集群上动态的添加设备),可扩展、容错、输入格式的松散耦合。Hive 的入口是DR..

2020-12-26 14:54:04 9239

原创 Hive利用正则Serde导入文件

比如,有如下格式文件01||zhangsan||2302||lisi||24hive默认情况下只支持单字节分隔符,如果数据中的分隔符是多字节的,则hive默认是处理不了的。需要使用正则Serdecreate table if not exists t_regex(id string,uname string,age int)row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe'with serdeproperties('

2020-12-26 14:05:58 168

原创 Hive导入csv文件

现有文件为csv格式,需要导入hive中,设csv内容如下1001,zs,231002,lis,24首先创建表create table if not exists csv2( uid int, uname string, age int)row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'stored as textfile ;导入数据及查询load data local inpath '/d

2020-12-26 11:21:10 7276

原创 Hive导入json文件

现有一json文件,需要导入hive,如何操作?比如json内容如下{"uid":"1","uname":"gaoyuanyuan","age":"18"}{"uid":"2","uname":"gaojianzheng","age":"42"}首先建表drop table json1;create table if not exists json1(uid int,uname string,age int)row format serde 'org.openx.data.jsons

2020-12-26 11:07:10 1018

原创 Hive优化入门

环境方面可以修改相关服务器的配置、容器的配置、环境搭建explain 和 explain extendedexplain : 只有对hql语句的解释。explain extended:对hql语句的解释,以及抽象表达式树的生成。stage 相当于一个job,一个stage可以是limit、也可以是一个子查询、也可以是group by等。hive默认一次只执行一个stage,但是如果stage之间没有相互依赖,将可以并行执行。任务越复杂,hql代码越复杂,stage越多,运行的时间一般越长。

2020-12-26 10:35:26 174

原创 Hive的压缩入门

HQL语句最终会被编译成Hadoop的Mapreduce job,因此hive的压缩设置,实际上就是对底层MR在处理数据时的压缩设置。Hive在map端的压缩map阶段的设置, 就是在MapReduce的shuffle阶段对mapper产生的中间结果数据压缩 。 在这个阶段,优先选择一个低CPU开销的算法。<!-- 指定要不要开启中间压缩 --><property> <name>hive.exec.compress.intermediate</nam

2020-12-26 10:15:37 123

空空如也

空空如也

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

TA关注的人

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