自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 split(“,“)和split(“,“,-1)的区别

1、当字符串最后一位有值时,两者没有区别2、当字符串最后一位或者N位是分隔符时,前者不会继续切分,而后者继续切分。即前者不保留null值,后者保留。public class stringSplit { public static void main(String[] args) { String line = "hello,,world,,,"; String res1[] = line.split(","); String re.

2021-03-12 11:30:19 423

原创 数据仓库环境部署

目录一、Docker安装1.1 Centos Docker安装1.2 Ubuntu Docker安装【推荐】1.3 MacOs Docker安装1.4 Windows Docker安装【不推荐】二、容器准备2.1 拉取镜像2.2 启动并创建容器2.3 进入容器三、环境准备3.1 安装必要软件3.2 配置SSH免密登录3.3 设置时区3.4 关闭防火墙四、MySQL安装4.1 上传解压安装包4.2 安装必要依赖4.3 安装服务端和客户端4.4 启动并配置MySQL五、安装JDK5.1 上传并解压5.2 配置环

2021-03-04 09:01:08 679 1

原创 ubuntu环境下docker的安装与操作

实测有效,推荐一下~ubuntu环境下docker的安装与操作

2021-03-04 08:53:36 288 1

原创 VMware Ubuntu安装详细过程及问题集锦

写的非常好,推荐一下网址:https://www.yuque.com/docs/share/5ccf027d-7944-42ee-a3e1-4f479ae662cb?#

2021-03-04 08:48:06 172 1

原创 MySQL存储过程实现插入数据

有一张空白表:CREATE TABLE sales_order( order_number INT(11) NOT NULL AUTO_INCREMENT, customer_number INT(11) NOT NULL, product_code INT(11) NOT NULL, order_date DATETIME NOT NULL, entry_date DATETIME NOT

2021-03-02 09:16:01 1229

原创 Spark常用依赖和打包插件

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav

2021-01-20 11:14:05 495

原创 Kafka性能优化

目录1、消费者参数优化1.1 enable.auto.commit1.2 auto.offset.reset1.3 session.timeout.ms1.4 max.partition.fetch.bytes1.5 fetch.min.bytes1.6 fetch.max.wait.ms1.7 receive.buffer.bytes + send.buffer.bytes1.8 client.id2、生产者参数优化2.1 bootstrap.servers2.2 acks2.3 buffer.memor

2021-01-19 22:43:59 391

原创 使用Spark SQL需要导的包

import org.apache.spark.sql._import org.apache.spark.sql.functions._import spark.implicits._import org.apache.spark.sql.types._# 如果使用DataFrame的窗口函数需要导以下的包import org.apache.spark.sql.expressions.Window

2021-01-19 21:56:26 758

原创 Kafka使用--IDEA创建生产者和消费者(Scala版本)

1、项目依赖本项目采用 Maven 构建,想要调用 Kafka 生产者 API,需要导入 kafka-clients 依赖,如下:<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.0.0</version></dependency>2、生产

2021-01-19 21:32:16 857

原创 kafka环境安装及查看目录结构

1、Kafka 环境安装1.上传及解压tar zxvf /opt/software/kafka_2.11-0.11.0.2.gz -C /opt/install/2.创建软连接和环境变量[可选]cd /opt/install/ln -s kafka_2.11-0.11.0.2/ kafkavi /etc/profile----------------------------# KAFKAexport KAFKA_HOME=/opt/install/kafkaexport PATH=$

2021-01-18 17:32:31 2225

原创 Spark获取DataFrame中列的方式--col,$,column,apply

使用需要导包: import spark.implicits._ import org.apache.spark.sql.functions._ import org.apache.spark.sql.Column官方说明: df("columnName") // On a specific DataFrame. col("columnName") // A generic column no yet associated with

2021-01-17 17:33:54 1331

原创 Hive表如何去掉首行

hive映射HDFS文件时,有的文件第一行是字段名,那么如何去掉首行呢?新建表时过滤首行:hive > create table hive_movies( rank int, src string, name string, box_office string, avg_price int, avg_people int, begin_date string) row format delimited fields term

2021-01-17 17:16:02 2623 1

原创 scala DataFrame实现窗口排序功能,row_number(),rank(),dense_rank()

hive中的窗口函数很好用,那DataFrame如何实现呢?1、数据准备: 现有一张表score,表数据如下,字段名分别是:s_id,c_id,s_score,即学号,课程编号,成绩。hive> select * from score;OK1 1 801 2 901 3 992 1 702 2 602 3 1803 1

2021-01-16 21:14:15 999

原创 Flume安装及使用

目录1、Flume安装2、演示示例2.1 netcat source2.2 exec source2.3 spooldir source2.4 http source2.5 taildir source2.6 avro sink and source2.7 HDFS sink3、练习练习1官网: http://flume.apache.org/1、Flume安装1.上传安装包2.解压tar zxvf /opt/software/apache-flume-1.8.0-bin.tar.gz -C /o

2021-01-15 14:52:59 275

原创 Kafka数据写入Hbase (含设计模式简单使用)

设计模式详解可以看菜鸟教程:https://www.runoob.com/design-pattern/singleton-pattern.html我们将kafka的数据写进HBase中,都是在一个main方法中的,这显然是个小白做法,下面我们用设计模式实现,降低依赖,降低耦合,增加代码的可重用性。pom依赖: <dependency> <groupId>org.apache.kafka</groupId> <artifactId&gt

2021-01-15 12:23:06 1112

原创 Flink批处理和流处理实现wordcount

目录1、pom依赖2、Flink批处理wordcount3、Flink流处理wordcount1、pom依赖<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <version>1.7.2</version></dependency><dependen

2021-01-08 22:26:10 154

原创 Flink简介

目录1、Flink是什么?2、为什么选择Flink?3、哪些行业需要处理流数据?4、传统数据处理架构,5、Flink分层API6、Flink的特点7、Flink 与 Spark Streaming的对比1、Flink是什么?Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。2、为什么选择Flink?流数据更真实地反映了我们的生活方式传统的数据架构是基于有限数据集的我们的目标低延迟高吞吐结果的准确性和良好的容错性3、哪些行业需要处理流数据?电商和市场营

2021-01-08 22:05:42 566

原创 CentOS 7加装虚拟机存储空间、CPU和内存

推荐博客:https://blog.csdn.net/dsjia2970727/article/details/109389860

2021-01-07 14:05:38 408

原创 Flink ProcessFunction API

#1、为什么要使用ProcessFunction我们之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。基于此,DataStream API提供了一系列的Low-Level转换算子。可以访问时间戳、watermark以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。Process Function用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的window

2021-01-06 20:01:36 87

原创 Flink Window窗口机制和延迟处理

java版本:Flink Window窗口机制1、窗口在流处理应用中,数据是连续不断的,因此我们不可能等到所有数据都到了才开始处理。当然我们可以每来一个消息就处理一次,但是有时我们需要做一些聚合类的处理,例如:在过去的1分钟内有多少用户点击了我们的网页。在这种情况下,我们必须定义一个窗口,用来收集最近一分钟内的数据,并对这个窗口内的数据进行计算。窗口可以是基于时间驱动的(Time Window,例如:每30秒钟)也可以是基于数据驱动的(Count Window,例如:每一百个

2021-01-05 15:29:31 2009

原创 正则表达式

目录1、简介2、语法2.1 非打印字符2.2 特殊字符2.3 预定义字符3、Java正则表达式1、简介正则表达式描述了一种字符串匹配的模式,也称规则表达式。常用于检索、替换符合指定模式(规则)的文本。2、语法正则表达式是由普通字符和特殊字符组成的字符串普通字符:原义字符、非打印字符特殊字符:元字符:* + ? $ ^ . | \ () {} []示例1:hello 可以匹配“hello”示例2:h.*llo 可以匹配“hello”、“hallo”、“heello”…2.1

2021-01-04 22:22:19 67

原创 Flink使用(详细教程)

目录1、Environment2、Source2.1 从内存读取数据2.2 从文件中读取数据2.3 kafka读取数据2.4 从端口读取数据2.5 自定义数据源3、Transform3.1 map3.1.1 MapFunction3.1.2 RichMapFunction3.2 flatMap3.2 filter3.4 keyBy3.5 shuffle3.6 split + select3.7 connect3.8 union3.9 Operator3.9.1 滚动聚合算子(Rolling Aggregat

2020-12-31 13:57:50 11267 1

原创 Spark Streaming中的Window操作

窗口函数,就是在DStream流上,以一个可配置的长度为窗口,以一个可配置的速率向前移动窗口,根据窗口函数的具体内容,分别对当前窗口中的这一波数据采集某对应的操作算子。需要注意的是窗口长度,和窗口移动速率需要是batch time的整数倍。...

2020-12-28 18:45:31 295

原创 Spark Streaming和Spark SQL

Spark Streaming中的逻辑除了可以用RDD写,还可以使用Spark SQL来写。需求:实现wordcountimport org.apache.kafka.clients.consumer.{ConsumerConfig, ConsumerRecord}import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.{DataFrame

2020-12-28 17:41:08 189 4

原创 Scala数组、元组与集合

目录1、数组Array2、元组Tuple3、集合3.1 Seq、Set、Map3.2 不可变和可变集合3.2.1 不可变集合3.2.2 可变集合3.3 常用集合1、数组ArrayScala之Array方法2、元组TupleScala元组3、集合3.1 Seq、Set、MapSeq:序列,元素按顺序排列Map:集合,元素不重复Set:映射,键值对集合3.2 不可变和可变集合3.2.1 不可变集合scala.collection.immutable,默认Scala选择不可变集合,如果需

2020-12-28 09:48:04 318

原创 Spark Streaming更改数据结构

我们在使用Spark Streaming处理流式数据时,业务需求需要更改数据结构,可以使用transform完成转化工作。需求:输入:java scala java java,要求加上指定时间格式,输出:((java,20201224 17:30:10),3)((scala,20201224 17:30:10),1)import java.text.SimpleDateFormatimport org.apache.kafka.clients.consumer.{ConsumerConfig,

2020-12-24 17:35:24 148 2

原创 Spark Streaming简介及运用(含案例)

案例一:采集端口数据实现wordcountimport org.apache.spark.SparkConfimport org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}import org.apache.spark.streaming.{Seconds, StreamingContext}object SparkStreamDemo1 { def main(args: Array[String]): Unit

2020-12-24 14:58:56 670 1

原创 Flume+Kafka+Kafka Stream

目录1、Flume–>Kafka TopicA1.1 启动Zookeeper和Kafka1.2 创建主题1.3 配置Flume1.4 启动Flume1.5 测试2、TopicA–>TopicB2.1 编写代码2.2 启动消费者监控TopicBFlume采集数据到Kafka的TopicA,再使用Kafka Stream将TopicA的数据进行某些逻辑处理后再写入TopicB。案例一:现有一张表user_friends,表结构如下,去掉表头,使用flume将内容写进Kafka的TopicA,将第

2020-12-23 19:51:38 182 1

原创 Kafka Stream简介及基本运用(含案例)

参考博客:1、Kafka Stream背景1.1 Kafka Stream是什么Kafka Streams是一套客户端类库,它可以对存储在Kafka内的数据进行流式处理和分析。1.2 什么是流式计算流式计算:输入是持续的,一般先定义目标计算,然后数据到来之后将计算逻辑应用于数据,往往用增量计算代替全量计算。批量计算:一般先有全量数据集,然后定义计算逻辑,并将计算应用于全量数据。特点是全量计算,并且计算结果一次性全量输出。1.3 为什么要有Kafka Stream开源流式处理系统有:Spa

2020-12-23 19:09:30 14217 6

原创 HBase环境搭建(完全分布式)

目录1、前置条件2、上传解压3、配置环境3.1 配置系统环境3.2 配置hbase-env.sh3.3 配置hbase-site.xml3.4 修改regionservers文件3.5 将配置好的HBase远程发送到其他机器4、启动5、查看HBase页面1、前置条件1、Zookeeper集群的正常部署并启动:[root@hadoop102 zookeeper]$ $ZK_HOME/bin/zkServer.sh start[root@hadoop103 zookeeper]$ $ZK_HOME/

2020-12-17 17:42:05 178

原创 HBase环境搭建(伪分布式)

目录1、前置条件2、HBase上传解压3、配置环境变量3.1 配置系统环境3.2 配置hbase-env.sh3.3 配置hbase-site.xml3.4 修改regionservers文件4、启动5、查看HBase页面1、前置条件1、zookeeper正常部署并启动:[root@hadoop101 zookeeper]$ $ZK_HOME/bin/zkServer.sh start2、Hadoop伪分布式集群的正常部署并启动:[root@hadoop101 hadoop]$ $HAD

2020-12-17 17:09:39 795

原创 Hive调优及数据倾斜

1、常见的Hive调优方式1.1 本地模式Hive支持将作业自动转换为本地模式运行当要处理的数据很小时,完全分布式模式的启动时间比作业处理时间要长--通过以下设置开启本地模式SET hive.exec.mode.local.auto=true; --default false SET hive.exec.mode.local.auto.inputbytes.max=50000000; SET hive.exec.mode.local.auto.input.files.max=5; -

2020-12-17 16:11:12 125

原创 Flume整合Kafka

目录1、背景2、整合流程2.1 启动Zookeeper和Kafka2.2 创建主题2.3 启动Kafka消费者2.4 配置Flume2.5 启动Flume2.6 测试1、背景为什么要使用Flume + Kafka ?以实时流处理项目为例,由于采集的数据量可能存在峰值和峰谷,假设是一个电商项目,那么峰值通常出现在秒杀时,这时如果直接将 Flume 聚合后的数据输入到 Storm 等分布式计算框架中,可能就会超过集群的处理能力,这时采用 Kafka 就可以起到削峰的作用。Kafka 天生为大数据场景而设计

2020-12-16 19:37:17 438

原创 如何快速打胖包和瘦包

目录1、胖瘦包区别2、简单手动打胖瘦包2.1 无依赖瘦包2.2 胖包3、修改配置文件快速打胖瘦包1、胖瘦包区别胖包和瘦包有一定的区别,胖包是连同写的项目和其所依赖的包全部打包,方便在任何环境下运行,瘦包仅是打包你写的项目。2、简单手动打胖瘦包2.1 无依赖瘦包无依赖的手包很简单,在Lifecycle目录下找到package双击或者右击运行,就阔以啦????打包后显示打包成功,并且在target目录下生成2.2 胖包既然是胖包当然要复杂些哟,上图????选择文件夹路径后会自动帮你匹

2020-12-16 09:13:21 1010 1

原创 yarn作业提交过程以及常用命令

1、yarn简介1、Hadoop1.x版本中最大的问题是资源问题对数据的处理和资源调度主要依赖MapReduce完成,只能运行MapReduce程序JobTracker负责资源管理和程序调度,压力较大2、Hadoop2.x版本添加YARN主要负责集群资源管理3、YARN(Yet Another Resource Negotiator)核心思想是将资源管理和任务的监控和调度分离通用的资源管理系统,可为不同的应用(MapReduce、Spark、Flink等)提供统一的资源管理和调

2020-12-14 17:24:38 951

原创 Flume简介及基本运用(含案例)

目录1、背景2、Flume简介3、Flume架构和基本概念3.1 基本架构3.2 基本概念3.3 组件种类4、Flume架构模式4.1 单一流程4.2 多代理流程(多个agent顺序连接)4.3 流的合并(多个Agent的数据汇聚到同一个Agent )4.4 多路复用流(多级流)4.5 load balance功能5、Flume配置格式6、Flume使用案例6.1 案例一1、背景2、Flume简介Flume是日志收集框架,详细来说:Flume是一个分布式、可靠、高可用的海量日志聚合系统,支持在系统中

2020-12-10 23:47:13 630

原创 Hive侧视图Lateral View--规范化行或解析JSON

1、与表生成函数结合使用,将函数的输入和输出连接2、OUTER关键字:即使output为空也会生成结果select name,work_place,loc from employee lateral view outer explode(split(null,',')) a as loc;3、支持多层级select name,wps,skill,score from employee lateral view explode(work_place) work_place_single a.

2020-12-10 16:06:54 363

原创 Hive导入导出数据

1、Hive表导入数据新建一个Hive表,如何把数据放入Hive表。数据准备:现有hive外部表emp,本地文件系统有文件employee.txt,1.1 put[root@hadoop60 ~]# hdfs dfs -put /root/test/employee.txt /user/test/emp1.2 insertinsert支持overwrite(覆盖)和into(追加);table关键字是可选的;数据插入必须与指定列数相同;支持多插入;-- 将employee表中的数据

2020-12-10 14:36:54 169

原创 hive操作--命令行模式和交互模式

目录1、HiveServer和HiveServer22、命令行模式3、交互模式Hive操作常用的客户端工具有两种,分别为:Beeline和Hive命令行(CLI)Hive操作又分为两种模式,一种为命令行模式,一种为交互模式。1、HiveServer和HiveServer2Hive 内置了 HiveServer 和 HiveServer2 服务,两者都允许客户端使用多种编程语言进行连接,但是HiveServer 不能处理多个客户端的并发请求,所以产生了 HiveServer2。HiveServ

2020-12-08 21:24:54 822

原创 启动hive metastore和hiveserver2服务脚本

编写脚本文件:vim hive.sh#!/bin/bashHIVE_LOG_DIR=$HIVE_HOME/logsmkdir -p $HIVE_LOG_DIR#检查进程是否运行正常,参数1为进程名,参数2为进程端口function check_process(){ pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}') ppid=$(netstat -nltp 2>/dev/

2020-12-08 20:07:38 548 2

空空如也

空空如也

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

TA关注的人

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