自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 Maxwell安装以及对接kafka

官网:https://maxwells-daemon.io/quickstart/Maxwell安装下载maxwell-1.37.0.tar.gz解压配置mysql

2022-03-17 15:13:19 4058

原创 软件设计的七大原则以及UML时序图的记忆规则

记忆技巧UML箭头方向:从子类指向父类定义子类时需要通过extends关键字指定父类子类一定是知道父类定义的,但是父类并不知道子类的定义只有知道对方信息时才能指向对方所以箭头方向是子类指向父类记忆技巧--->实线:继承 | 虚线-->实现空心三角箭头:继承或实现实现-继承,is a 关系,扩展目的,不虚,很结实虚线-实现,虚线代表“虚”无实体记忆技巧---实线-关联 | 虚线-依赖 虚线--依赖关系:临时用一下,若即若离,虚无缥缈。若有若无 表示一种使用关系,一个类

2021-07-31 22:53:49 833

原创 Java volatile详解

volatile关键字volatile是什么volatile是一种同步机制,比synchronized活着Lock相关类更轻量,因为使用volatile并不会发生上下文切换等开销很大的行为如果一个变量被volatile修饰,那么JVM就知道了这个变量可能会被并发修改但是开销小,相应的能力也小,虽说volatile是用来同步的保证线程安全的,但是volatile做不到synchronized那样的原子保护,volatile仅在很有限的场景下才能发挥作用volatile的适用场合适用场合1:b

2021-07-24 22:03:53 467 2

原创 线程安全的情况分析

描述什么是线程安全《Java Concurrency In Practice》的作者Brian Goetz对“线程安全”有一个比较恰当的定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的”。这句话的意思是:不管业务中遇到怎样的多个线程访问某对象或某方法的情况,而在编程这个业务逻辑的时候,都不需要额外做任何额外的处理(也就是可以像单线程编程一样),程

2021-07-18 16:12:41 224 1

原创 Java Synchronized用法和多线程调式

Synchronzied的两个用法:对象锁包括方法锁(默认锁对象为this当前实例对象)和同步代码块锁(自己指定锁对象)代码块形式:手动指定锁对象@Overridepublic void run() { synchronized (this) { System.out.println("我是对象锁的代码块形式。我是" + Thread.currentThread().getName()); try { Thread.sleep(3

2021-06-22 16:28:58 220 1

原创 Java线程的创建、启动和停止

创建线程的两种种方式(Only Two)1、用Thread的方式实现线程public class ThreadStyle extends Thread{ @Override public void run() { System.out.println("用Thread类实现线程"); } public static void main(String[] args) { new ThreadStyle().start(); }}

2021-04-07 22:21:46 612

原创 SparkSQL中的UDF、UDAF、UDTF实现

分类根据输入输出之间的关系来分类:UDF —— 输入一行,输出一行UDAF —— 输入多行,输出一行UDTF —— 输入一行,输出多行UDF函数1、数据大狗 三国,水浒,红楼二狗 金瓶梅二条 西游,唐诗宋词2、需求:求出每个人的爱好个数3、实现def main(args: Array[String]): Unit = { val spark = SparkSession.builder .master("local") .appName(t

2020-11-08 17:15:55 257

原创 Java中synchronized锁字符串

Synchronized锁字符串代码如下public class StringThread implements Runnable{ private static final String LOCK_PREFIX = "XXX---"; private String taskNo; public StringThread(String taskNo) { this.taskNo = taskNo; } @Override public

2020-10-16 17:09:49 3844 5

原创 Spark中的排序SortBy

1、Tuple类型val products = sc.parallelize(List("屏保 20 10","支架 20 1000","酒精棉 5 2000","吸氧机 5000 1000")) val productData = products.map(x=>{ val splits = x.split(" ") val name = splits(0) val price = splits(1).toDouble val amount

2020-09-13 15:24:20 2078

原创 Hadoop的归档---har

官方文档:https://hadoop.apache.org/docs/current/hadoop-archives/HadoopArchives.html简述hadoop Archive是一个高效地将小文件放入HDFS块中的文件存档文件格式,它能够将多个小文件打包成一个后缀为.har文件,这样减少namenode内存使用的同时,仍然允许对文件进行透明的访问。Hadoop存档是特殊格式的存档。 Hadoop归档文件映射到文件系统目录。 Hadoop归档文件始终具有* .har扩展名。 Hadoop存

2020-05-19 22:03:32 4873

原创 RDD转换DataFrame&SparkSql操作数据源&跨数据源join&SparkSql与DF和DS的比较&spark元数据:catalog

RDD转换DataFrame方式1:使用反射来推断包含特定对象类型的RDD的模式 def inferReflection(spark: SparkSession) ={ val rdd = spark.sparkContext.textFile("D:\\ssc\\spark\\people.txt") //RDD => DF时需要的隐式转换 import spa...

2020-04-23 08:10:16 549

原创 DataFrame的read和write&SparkSQL&存储格式的转换

DataFrame在Spark中,DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。DataFrame与RDD的主要区别在于,前者带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。这使得Spark SQL得以洞察更多的结构信息,从而对藏于DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化...

2020-04-19 15:03:47 4378

原创 Spark多目录输出&&计数器&&广播变量&&持久化序列化

例子object Work02App { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[2]").setAppName(this.getClass.getSimpleName) val sc = new SparkContext(sparkCon...

2020-04-18 11:53:29 357

原创 Spark使用Yarn模式解决Jar乱飞情况

1、在本地创建zip文件# 在spark的jars目录下zip spark.zip ./*2、HDFS上创建存放spark jar目录hdfs dfs -mkdir -p /spark-yarn/jars3、将$SPARK_HOME/jars下的spark.zip包上传至刚健的HDFS路径[hadoop@hadoop jars]$ hdfs dfs -put ./spark.zip...

2020-04-18 09:42:12 262

原创 Windows加载Hive源码,并且查询结果输出在控制台

编译源码下载Hive源码:http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.16.2-src.tar.gz编译Hive源码(切记不要idea里面执行命令):mvn clean package -DskipTests=true -Phadoop-2mvn clean package -DskipTests=true -Phadoo...

2020-04-14 08:01:48 410

原创 Hive文件存储格式和数据压缩

存储格式行存储和列存储行存储可以理解为一条记录存储一行,通过条件查询一整行数据列存储,以字段聚集存储,可以理解为相同的字段存储在一起Hive文件存储格式1、 TEXTFILEHive数据表的默认格式,存储方式:行存储可以使用Gzip压缩算法在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比SequenceFile高几十倍2、SEQUENCEFIL...

2020-04-11 18:45:14 426 1

原创 Hadoop配置LZO

前置要求安装好hadoop安装好jdk和maven(maven提前配置阿里云连接,不然慢死!)安装前置库yum -y install lzo-devel zlib-devel gcc autoconf automake libtoollzo使用流程下载及安装lzo1、下载wget http://www.oberhumer.com/opensource/lzo/downl...

2020-04-11 15:42:45 294

原创 spark on yarn client和spark on yarn cluster区别

概述spark on yarn 的优势是每个Spark executor作为一个Yarn容器(container)运行,Spark可以使得多个Task在同一个容器(container)里面运行;有两种模式:yarn-client和yarn-clusteryarn-client:driver运行在client端;适用于调式,能直接看到各种日志;连接断了,任务就挂了driver运行在am中;日......

2020-04-05 22:49:06 513

原创 Spark源码编译和IDEA导入源码

官方部署文档:http://spark.apache.org/docs/latest/building-spark.htmlspark的github源码下载地址:https://github.com/apache/spark设置maven的执行内存:export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=1g"打包:./build/mvn -...

2020-04-05 16:22:19 621

原创 Spark RDD的方式求TopN

数据www.baidu.com,url5www.baidu.com,url5www.baidu.com,url5www.baidu.com,url5www.baidu.com,url5www.google.com,url8www.google.com,url2www.google.com,url1www.twitter.com,url10www.twitter.com,url1...

2020-03-30 22:57:29 496

原创 大数据中的压缩

概述一个正常的mr程序,有三个阶段可以进行压缩:map输入,map输出(中间阶段,要求尽可能的快,压缩时间要短),reduce输出hadoop压缩格式一个简单的案例对于集中压缩方式之间的压缩比和压缩速度进行一个感观性的认识测试环境: 8 core i7 cpu8GB memory64 bit CentOS1.4GB Wikipedia Corpus 2-gram text inp...

2020-03-29 10:37:44 406

原创 查看RDD运行所需要的JVM Heap大小和Spark主要的RDD算子、关于Join的shuffle、ByKey算子

zip:拉链,分区数需要相同(分区不同Can’t zip RDDs with unequal numbers of partitions: List(4, 2));元素个数也要相同(Can only zip RDDs with same number of elements in each partition) val rddzip1 = sc.parallelize(List("ruoze......

2020-03-22 23:32:56 416

原创 Scala中的上下界、视界、协变与逆变

上下界约束符号 <: 与 >:这对符号个人觉得是里面最好理解的了,这对符号用于写范型类/函数时约束范型类型。def using[A <: Closeable, B](closeable: A) (getB: A => B): B = try { getB(closeable) } finally { closeable.close() ...

2020-03-22 09:01:20 337

原创 Scala隐式转换

什么叫做隐式转换隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型;在代码重构设计上,可以避免冗余的代码,使得代码非常优雅。例子1import java.io.Fileimport scala.io.Source/** * 隐式转换 进来一个普通的出去一个加强的 */object Context { impl...

2020-03-21 20:52:26 97

原创 MapReduce的优化

mapreduce.job.jvm.numtasks默认值: 1说明:一个jvm可连续启动多个同类型任务,默认值1,若为-1表示不受限制开启JVM 重用对于大量小文件Job,可以开启JVM 重用会减少 45%运行时间。JVM 重用理解:一个 map 运行一个 jvm,重用的话,在一个 map 在 jvm 上运行完毕后,jvm 继续运行其他 map。具体设置:mapreduce.job.jvm...

2020-03-15 18:32:59 432

原创 Hive基本调优

Reduce阶段优化调整方式:– set hive.exec.reducers.bytes.per.reducer每个reduce能够处理的数据量大小,默认是256M– set hive.exec.reducers.max最大可以开启的reduce个数,默认是999个在只配了hive.exec.reducers.bytes.per.reducer以及hive.exec.reducers...

2020-03-15 18:24:04 912

原创 Hue部署

安装文档参考https://github.com/cloudera/hue/tree/master/docs/admin-manual下载hue-3.9.0-cdh5.16.2版本tar -zxvf hue-3.9.0-cdh5.16.2-src.tar.gz -C ~/app/cd ~/app/hue-3.9.0-cdh5.16.2yum install ant asciidoc cy...

2020-03-08 15:56:54 142

原创 Flume配置链以及自定义flume拦截器

多source配置vi exec-nc-logger.confa1.sources = r1 r2a1.sinks = k1a1.channels = c1a1.sources.r1.type = execa1.sources.r1.command = tail -F /home/hadoop/data/flume/exec.loga1.sources.r2.type = ne...

2020-02-28 16:38:20 247

原创 Scala的Apply方法

object ApplyDemo { def main(args: Array[String]): Unit = { /** * 会走到object的apply方法里面去 */ val testA = ApplyTest() testA.test() println(testA) println("--------------...

2020-02-25 17:29:04 221

原创 Hive窗口函数

hive:官网地址https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics窗口函数: domain就是一个窗口(window),在窗口的基础上做统计分析(sum,avg,rank…)窗口函数对其作用的窗口的每一条记录输出一条结果,借助于over()函数进行开窗...

2020-02-23 19:59:12 160

原创 Azkaban部署使用和配置全局变量hadoop.home

编译Azkaban环境准备:jdk版本1.8以上,git下载:https://github.com/azkaban/azkaban/releases上传服务器解压修改配置gradle修改路径 vi gradle-wrapper.properties,并且把gradle-4.6-all.zip,放在当前路径,(不然要去主动下载,很费时间)进入目录执行编译命令:./gradlew ...

2020-02-23 11:05:30 700

原创 Flume用法

Flume包含三部分Source:从哪收集,一般使用:avro(序列化),exec(命令行),spooling(目录),taildir(目录和文件,包含offset,不会数据丢失),kafkaChannel:数据存哪里:(memory,kafka,file)Sink:数据输出到哪里:(hdfs,logger,avro,kafka)Flume环境配置配置jdkcd $FLUME_...

2020-02-14 09:51:00 152

原创 Hadoop mapreduce递归统计文件夹下的文件

需要配置vi mapred-site.xml <property> <name>mapreduce.input.fileinputformat.input.dir.recursive</name> <value>true</value> </property>这样就可以统计如下文...

2020-02-08 11:11:24 571

原创 Hive自定义UDF

自定义类继承UDFpackage com.ruozedata.bigdata.hadoop.hive.udf;import org.apache.hadoop.hive.ql.exec.UDF;public class RuozedataUDF extends UDF{ public String evaluate(){ return new String("老...

2020-02-07 11:24:05 140

原创 Hadoop运行瘦包

服务器提交mr任务正常任务如下hadoop jar ruozedata-hadoop.jar com.ruozedata.bigdata.hadoop.mapreduce.wc.WCDriver /wordcount/input1 /wordcount/output2需要额外依赖jar,得使用HADOOP_CLASSPATH和-libjarsexport HADOOP_CLASS...

2020-01-20 22:38:39 206

原创 Sqoop导入数据关于--split by 和 --m参数详细解析

split-by 根据不同的参数类型有不同的切分方法;如int型,Sqoop会取最大和最小split-by字段值,然后根据传入的num-mappers来 确定划分几个区域。比如select max(split_by),min(split-by) from得到的max(split-by)和min(split-by)分别为1000和1,而num-mappers(-m)为2的话,则会分成两个区域 (1...

2020-01-13 16:58:07 3181

原创 Hadoop操作HDFSAPI 错误org.apache.hadoop.ipc.RemoteException(java.io.IOException)

客户端操作HDFS的API的时候,出现如下错误org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /hdfsapiv2/order_created.txt could only be replicated to 0 nodes instead of minReplication (=1). There are 1 da...

2020-01-12 11:22:13 2967

原创 Shell脚本

定义,包含头 #!/bin/bash,字符串建议用双引号vi wordcount.sh#!/bin/bashecho "www.baidu.com"[hadoop@hadoop01 shell]$ ./wordcount.sh-bash: ./wordcount.sh: 权限不够[hadoop@hadoop01 shell]$ ll总用量 4-rw-rw-r--. 1 hado...

2020-01-11 16:31:41 102

原创 DBeaver连接hive中文注释乱码

MySQL服务停⽌止,新增字符集到my.cnf,启动MySQLsu - mysqladminservice mysql stopvi /etc/my.cnf#在[mysqld]后添加以下内容:init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character...

2020-01-08 14:59:23 3270 1

原创 Sqoop部署和操作

Sqoop介绍sqoop是把数据从RDBMS和hadoop之间进行导入导出,底层是使用MapReduce来实现的,只有Map没有Reduce部署下载CDH版本wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.16.2.tar.gz解压 tar -zxvf sqoop-1.4.6-cdh5.16.2.tar.gz -...

2019-12-27 17:03:40 138

Ext4.0中文版手册

Ext4.0中文版

2016-07-04

空空如也

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

TA关注的人

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