自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

金啊豆嘞的博客

交流分享

  • 博客(87)
  • 资源 (5)
  • 收藏
  • 关注

原创 Kafka和Flume连接

Kafka Source即将flume作为kafka的消费者,kafka后面对接flume。flume从kfaka里面读取数据。配置文件如下:a1.sources = r1a1.channels = c1a1.sinks = k1a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSourcea1.sources.r1.kafka.bootstrap.servers = node01:9092,node02:9092,node0

2021-09-13 16:47:17 1012

原创 Kakfa消费者分区消费

消费者的各种消费过程自动提交offset手动提交offset处理完每个分区里面的数据之后,然后就进行一次提交手动指定某些分区里面的数据进行消费例如:有一个topic test,里面有三个分区,需求:只需要消费其中两个分区里面的数据这里是第三种消费方式的处理代码。package edu.hfuu.kafka.consumer;import org.apache.kafka.clients.consumer.ConsumerRecord;import org.apache.kafka.c

2021-09-07 18:17:52 250

原创 Kafka的StreamAPI

需求将topic1中的数据写入到topic2中,中间需要做到将小写转换为大写。第一步:使用终端创建topic1和topic2;第二步:调用生产者API或在终端往topic1中写入数据;第四步:打开topic2的消费着终端,验证是否转换成功;第三步:编写StreamAPI,并运行。import org.apache.kafka.common.serialization.Serdes;import org.apache.kafka.streams.KafkaStreams;import org

2021-09-07 15:51:07 311

原创 Kafka生产者和消费者

Java实现kafka生产者代码参考 https://kafka.apache.org/10/documentation.html#consumerapi有示例import org.apache.kafka.clients.producer.KafkaProducer;import org.apache.kafka.clients.producer.ProducerRecord;import java.util.Properties;public class MyProducer {

2021-09-07 15:43:02 130

原创 Flume负载均衡串联

负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。同一个请求只能交给一个进行处理,避免数据重复。如何分配请求就涉及到了负载均衡算法:轮询(round_robin)、随机(random)、权重flume串联跨网络传输数据avro sink (avro是一种协议)avro source使用上述两个组件指定绑定的端口ip就可以满足数据跨网络的传递,通常用于flume串联架构中。flume串联启动时,通常从远离数据端开始启动。配置文件如下:agent1:#ag

2021-09-06 09:53:32 151

原创 Flume采集文件到HDFS

采集文件到HDFS采集需求:**业务系统使用 log4j 生成的日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到 hdfs **根据需求,首先定义一下三大要素:采集源:即source——监控文件内容更新:exec ‘tail -F file’下沉目标,即sink——HDFS文件系统:hdfs sinksource 和sink之间的传递通道——channel,可用file channel也可以用内存channel配置文件编写:# Name the components on t

2021-09-06 09:10:39 412

原创 Flume监控目录变化并采集到HDFS

采集目录到HDFS(监控文件目录变化)采集需求:服务器的某特定目录下,会不断产生新的文件,每当有新文件出现,就要把文件采集到HDFS中去。根据需求,首先定义一下3大要素:采集源,即Source——监控文件目录:spooldir下称目标,即Sink——HDFS文件系统:hdfs sinksource 和 sink 之间的传递通道——channel,可用file channel,也可以用内存channel配置文件编写:#Name the components on this agenta1

2021-09-06 08:53:11 354

原创 Java序列化和反序列化

序列化Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反序列化把文件存储对象字节转换为对象序列化相关类把对象变成字节:ObjectOutputStream把字节变成对象:ObjectInputStream序列化操作遇到问题:要进行序列化类必须实现Serializable接口,只有实现了这个接口之后,这个类对象才可以进行序列化操作,如果没有实现,报错。

2021-09-05 09:44:43 91

原创 Java实现CRUD操作

Java实现CURD操作,最基础的版本import org.junit.Test;import java.sql.*;public class JDBCDemo01 { public static void main(String[] args) {// testSelect();// testInsert();// testUpdate(); testDelete(); } //删除 public

2021-08-30 10:02:16 2082

原创 Mysql 8.0 以上版本创建链接的方式

package com.hfuu.jdbc;import org.junit.Test;import java.sql.*;public class JDBCDemo01 { public static void main(String[] args) { testSelect(); } public static void testSelect() { Connection connection = null; Sta.

2021-08-29 21:00:17 196

原创 Linux安装RPM、YUM

RPM查询命令(rpm -qa)1)基本语法rpm -qa (功能描述:查询所安装的所有rpm软件包)2)经验技巧由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包3)案例实操(1)查询firefox软件安装情况[root@hadoop101 Packages]# rpm -qa |grep firefoxfirefox-45.0.1-1.el6.centos.x86_648.1.3 RPM卸载命令(rpm -e)1)基本语法(1)rpm -e RPM

2021-08-26 22:16:46 129

原创 Linux用户、权限管理、解压

创建用户 useradd zhangsan查看用户 cat /etc/passwd设置密码 passwd zhangsan切换用户 su zhangsan (不切环境变量,临时的)切换用户 su – zhangsan (切环境变量,推荐)完了需要退出:exit删除用户 userdel lisi (不删除该用户的家目录删除用户 userdel -r lisi (同时删除家目录)提升用户的权限vim /etc/sudoers增加配置如下:创建组 groupadd bigdata查看

2021-08-26 21:38:39 215

原创 多线程安全问题

线程安全当使用多个线程访问同一资源(可以是同一个变量、同一个文件、同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题,但是如果多个线程中对资源有读和写的操作,就容易出现线程安全问题。要解决上述多线程并发访问一个资源的安全性问题:也就是解决重复票与不存在票问题,Java中提供了同步机制。(synchronized)来解决。(1)编写例子演示线程安全问题模拟 3个售票员 卖 30张票第一步 创建资源类,在资源类定义属性和操作方法第二步 在资源类操作方法进行 判断 干活第

2021-08-25 10:40:55 329

原创 StringBuilder 和 StringBuffer

可变字符序列因为String对象是不可变对象,虽然可以共享常量对象,但是对于频繁字符串的修改和拼接操作,效率极低。参考: String JVM结构分析StringBuilder 和 StringBuffer都是为了改进String的内存空间问题。StringBuilder:是线程不安全的,推荐;StringBuffer: 是线程安全的;常用的API,StringBuilder、StringBuffer的API是完全一致的(1)append(xx):拼接,追加(2)insert(int i

2021-08-24 20:48:49 75

原创 Java字符串JVM结构分析

1、字符串String类(型)本身是final声明的,即不能继承String类。2、字符串对象也是不可变对象,意味着一旦修改,即产生新的对象。3、String对象内部是用字符数组保存的。JDK1.9之前有一个char[] value数组,JDK1.9之后byte[]数组"abc" 等效于 char[] data={ 'a' , 'b' , 'c' }。4、因为字符串对象设计为不可变,所以字符串有常量池来保存很多常量对象。常量池在方法区。如果细致的划分:(1)JDK1.6及其之前:方法区

2021-08-24 20:00:53 227

原创 Java单例模式

设计模式之一,单例模式一个类,对外只提供一个对象!a. 构造器私有化(不让外界new对象)b. 在本类内实例化对象,然后让外界可以获取到① 懒汉式在创建对象的时候才创建对象② 饿汉式不管你要不又要,类加载的时候就已经将对象创建好了示例如下:public class Single { private Single(){ //将构造方法私有 } //方式一 private static final Single SINGLE = new Single()

2021-08-23 17:00:28 70

原创 实现Comparable接口和Comparator接口

声明一个Employee员工类,包含编号、姓名、薪资,实现Comparable接口,要求,按照薪资比较大小,如果薪资相同,按照编号比较大小。声明一个测试类TestEmployee类,在main中创建Employee[]数组,长度为5,并且存储5个员工对象,现在要求用冒泡排序,实现对这个数组进行排序,遍历结果。练习1:声明一个Employee员工类,包含编号、姓名、薪资,实现Comparable接口,要求,按照薪资比较大小,如果薪资相同,按照编号比较大小。声明一个测试类TestEmployee类,在m

2021-08-23 14:00:56 519

原创 Java接口

接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。引用数据类型:数组,类,接口。在JDK8之前,接口中只运行出现:(1)公共的静态的常量:其中public static f

2021-08-23 13:23:44 257

原创 HashCode

Hash值和Java对象的HashCode参考:https://www.zhihu.com/question/21801702 到底什么是哈希值,哈希值到底是怎么生成的,有什么用?https://blog.csdn.net/weixin_29587015/article/details/114193650 java对象的哈希值_对象的哈希值...

2021-08-22 21:36:02 82

转载 Java面向对象之多态

7.2 多态7.2.1 引入多态是继封装、继承之后,面向对象的第三大特性。生活中,比如求面积的功能,圆、矩形、三角形实现起来是不一样的。跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态。7.2.2 定义多态: 是指同一行为,具有多个不同表现形式。7.2.3 前提【重点】继承父类或者实现接口【二选一】方法的重写【意义体现:不重写,无意义】父类引用指向子

2021-08-22 21:29:18 240

原创 JVM内存的管理

方法区:类的信息、常量、静态变量、动态编译生成的字节码信息虚拟机栈:Java语言实现的方法的局部变量本地方法栈:非Java语言实现的方法的局部变量,即native方法执行时的内存区域堆:new出来的对象程序计数器:记录每一个线程目前执行到哪一句指令;注:native:本地的,原生的用法:​ 只能修饰方法​ 表示这个方法的方法体代码不是用Java语言实现的。​ 但是对于Java程序员来说,可以当做Java的方法一样去正常调用它,或者子类重写它。...

2021-08-22 21:22:27 59

原创 Java面向对象继承

一、继承私有变量:父类中的成员,无论是公有(public)还是私有(private),均会被子类继承。子类虽会继承父类私有(private)的成员,但子类不能对继承的私有成员直接进行访问,可通过继承的公有方法进行访问。重名问题:子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用super 关键字,修饰父类成员变量。如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。必须保证父子类之间方法的名称相同,参数列表也相同。

2021-08-22 21:16:24 81

原创 一个递归实例

递归方法(Recursion)递归:指在当前方法内调用自己的这种现象。递归的分类:递归分为两种,直接递归和间接递归。直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。实例:public class Recursion { //打印3次 Hello,world publ

2021-08-22 11:14:44 40

原创 Java面向对象

一、对象名中存储的是什么呢?答:对象地址,直接打印对象名和数组名都显示“类型@对象的hashCode值”,所以说类、数组都是引用数据类型,引用数据类型的变量中存储的是对象的地址,或者说指向堆中对象的首地址。二、实例变量有默认值,而局部变量没有默认值,必须先声明,赋值,再使用。三、可变参数格式:修饰符 返回值类型 方法名(【非可变参数部分的形参列表,】参数类型... 形参名){ }要求:(1)一个方法只能有一个可变参数(2)可变参数必须是形参列表的最后一个(3)其实这个书写“等价于”

2021-08-22 11:11:02 52

原创 一个冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放到前面,大数放到后面。​ 即第一趟,首先比较第1个和第2个元素,将小数放到前面,大数放到后面。​ 然后比较第2个和第3个元素,将小数放到前面,大数放到后面。​ 如此继续,直到比较最后两个数,将小数放到前面,大数放到后面。​ 重复第一趟步骤,直至全部排序完成。/*{6,3,8,2,9,1} 第一轮: 第1次:arr[0]与arr[1]比较,6>3成立,就交换,{3,6,8,2,9,1} 第2

2021-08-21 20:30:29 256

原创 一个二分查找

二分查找:主要就是建立 left、right、mid,用 mid 与待查找的元素比较,并调节下标。class BinSearch{ public static void main(String[] args){ //二分查找:要求素组元素必须可以比较大小,且数组必须是有序的 //使用二分查找在数组中查找 value 是否存在,并显示index int[] arr = {2, 4, 5, 6, 8, 19, 20, 34, 35, 50}; int value = 34;

2021-08-21 19:47:01 51

原创 Java问题整理

一、字符编码问题当cmd命令行窗口的字符编码与.java源文件的字符编码不一致,使用javac命令,指定源文件字符编码:javac -encoding utf-8 HelloWorld.java二、基本数据类型long类型:要加 L 表示,精度为科学记数法的小数点后15~16位;float类型:要加 F 表示,精度为科学记数法的小数点后6~7位。三、变量使用注意1、先声明后使用2、使用之前必须初始化四、Unicode字符0:48A:65a:97五、进制问题(1)十进制:正常表示

2021-08-21 14:21:48 88

原创 Spark机器学习

转换器:有一个transform方法,(相当于直接填入数据,转换器输出结果)估计器:有一个fit方法,相当于训练数据,然后训练完毕之后可以调用transform方法,来测试数据。评估器:根据某种效果评价指标来评价给定模型表现。缩放:scaling归一化:StandardScaler将一组特征值归一化成平均值为0而标准差为1的一组新值。withStd标志表示将数据缩放到单位标准差,而withMean标志(默认情况下为false)表示将使数据在缩放之前进行中心化(变量减去它的均值)。注意:稀疏向量中心

2021-07-02 17:16:44 87

原创 Spark处理复杂类型的数据

import org.apache.spark.sql.{SparkSession, functions}import org.apache.spark.sql.functions.{array_contains, col, explode, size, split, struct}import org.junit.Testclass complexType { val spark = new SparkSession.Builder() .appName("chemaDemo1")

2021-05-17 22:54:46 282

原创 Spark的重划分(分区)与合并

Spark的分区与合并操作通常是一个重要的优化方法,它根据一些经常过滤的列对数据进行分区,控制跨集群数据的物理布局,包括分区方案和分区数。不管是否有必要,重新分区都会导致数据的全面洗牌。如果将来的分区数大于当前的分区数,或者当你想要基于某一组特定列来进行分区时,通常只能重新分区。合并分区:合并操作(coalesce)不会导致数据的全面洗牌,但会尝试合并分区。示例代码如下:/** * 分区与合并 * 另一个重要的优化是根据一些经常过滤的列对数据进行分区,控制跨集群数据的物理布局,包括分

2021-05-17 16:49:43 888

原创 弹性分布式数据集(RDD)

RDD以分区(partition)的形式分布在集群中的多个机器上,每个分区代表了数据集的一个子集。分区定义了Spark中数据的并行单位。Spark框架并行处理多个分区,一个分区内的数据对象是顺序处理的。创建RDD的几种方法在本地对象集合上调用SparkContext的parallelize方法。示例如下:第一个参数代表待并行化的对象集合,第二个参数代表分区的个数。当要对一个分区内的对象进行计算时,Spark从驱动程序里获取对象集合的一个子集。在分布式文件系统(如HDFS)上的文件或目录上创建R

2021-05-16 21:08:12 114

原创 Java 8 StreamAPI操作示例

文章目录创建Stream的四种方式Stream的中间操作Stream的终止操作Collectors实用类创建Stream的四种方式创建Stream主要有四种方式,如下。// 创建 Stream 方式一: 通过集合 @Test public void test1(){ List<Apple> apples = AppleData.getApples();// default Stream<E> stream(): 返回一个顺序

2021-05-15 11:55:50 208 1

原创 数据仓库的基本概念

基本概念英文名为Data Warehouse,简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。数据仓库是存数据的,企业的各种数据往里面存,主要目的是为了分析有效数据,后续会基于它产出供分析挖掘的数据,如企业的分析性报告和各类报表等。可以理解为:面向分析的存储系统。主要特征数据仓库是面向主题的(SUbject-Oriented)、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Varia

2021-05-09 15:15:10 485 3

原创 SQL基础教程-集合运算、内联结、外联结、交叉联结

使用SQL语句执行一些集合运算,如并集、联结等。-- 创建数据关系表CREATE TABLE Product2(product_id CHAR(4) NOT NULL,product_name VARCHAR(100) NOT NULL,product_type VARCHAR(32) NOT NULL,sale_price INTEGER ,purchase_price INTEGER ,regist_date DATE ,PRIMARY KEY (product_id));-- 使

2021-05-07 10:43:05 105

原创 SQL基础教程-函数、谓词、CASE表达式

使用SQL语句对函数、谓词、CASE表达式进行演示。函数:如日期函数、转换函数、字符串函数、算术函数等;谓词LIKE 谓词——字符串的部分一致查询BETWEEN谓词——范围查询IS NULL、IS NOT NULL——判断是否为NULLIN 谓词——OR 谓词的简便用法,及使用子查询作为 IN 谓词的参数EXIST 谓词CASE 表达式具体操作如下。/* 常用函数*/SELECT CURRENT_DATE;SELECT CURRENT_TIME;SELECT CONC

2021-05-06 19:31:09 142

原创 SQL基础教程-视图、子查询、关联子查询

本片主要是使用SQL语句执行视图、子查询、关联子查询等操作。可以通过视图等select语句保存数据,不占用磁盘空间;另外可以将频繁使用的select语句保存成视图,方便以后直接使用。子查询就是查询结果作为单一值,出现在上层查询某处作为条件等;关联子查询是在分组可以在细分的组内进行比较(多组多个值,每组一个值),注意结合条件(如where子句)一定要写在子查询中。DELETE FROM product;-- 使用事务操作,插入数据START TRANSACTION;INSERT INTO

2021-05-06 09:05:10 252

原创 SQL基础教程-数据插入、删除、更新、事务、回滚操作

使用SQL语句实现对数据的更新,如增、删、改等基本操作;另外也简单实现了事务的操作及事务回滚操作。-- 创建数据关系表CREATE TABLE ProductIns(product_id CHAR(4) NOT NULL,product_name VARCHAR(100) NOT NULL,product_type VARCHAR(32) NOT NULL,sale_price INTEGER DEFAULT 0,purchase_price INTEGER ,regist_date DA

2021-05-05 21:17:41 829

原创 SQL基础教程-聚合查询、分组、HAVING、排序

使用SQL语句对表进行聚合、分组、排序查询。主要有聚合函数、GROUP BY、HAVING、ORDER BY等操作。/* 聚合与排序 */SELECT COUNT(*) FROM product; -- 将列名作为参数时,会得 NULL 之外的数据行数SELECT COUNT(purchase_price) FROM product; SELECT SUM(sale_price) FROM product; -- 聚合函数会将 NULL 排除在外。但 COUNT(*) 例外,并不会

2021-05-05 21:14:31 278 1

原创 SQL基础教程-查询基础、算术运算符、逻辑运算符

使用SQL语句,执行如下操作。SELECT 语句基础列的查询为列设定别名从结果中删除重复行根据WHERE语句来选择记录算术运算符和比较运算符算符运算符需要注意的NULL对字符串使用不等号时的注意事项不能对NULL使用比较运算符逻辑运算符NOT运算符AND运算符和OR运算符-- 基础查询SELECT product_id, product_name, purchase_price FROM Product; SELECT * FROM Produc

2021-05-05 21:11:51 168

原创 SQL基础教程-创建数据库、数据表

使用SQL语句创建数据库,并创建一个数据表。-- 创建数据库CREATE DATABASE shop;-- 创建数据关系表CREATE TABLE Product(product_id CHAR(4) NOT NULL,product_name VARCHAR(100) NOT NULL,product_type VARCHAR(32) NOT NULL,sale_price INTEGER ,purchase_price INTEGER ,regist_date DATE ,PRI

2021-05-05 21:06:42 467

计算机操作系统实验_动态分区分配方式模拟

1、代码完整,注释很详细,复制到编译器即可运行 2、含有说明文字及题目要求实现思想等。 要求: 1.空闲分区通过空闲区链进行管理,在内存分配时,优先考虑低地址部分的空闲区。 2.分别采用首次适应算法、最佳适应算法和最坏适应算法模拟内存空间的动态分配与回收,每次分配和回收后显示出空闲区链的详细情况(说明:在申请不成功时,需要打印当前内存的占用情况信息)。 3.进程对内存空间的申请和释放可由用户自定义输入。 4.参考请求序列如下: (1) 初始状态下可用内存空间为640KB; (2) 进程1申请130KB; (3) 进程2申请60KB; (4) 进程3申请100KB; (5) 进程2释放60KB; (6) 进程4申请200KB; (7) 进程3释放100KB; (8) 进程1释放130KB; (9) 进程5申请140KB; (10) 进程6申请60KB; (11) 进程7申请50KB; (12) 进程6释放60KB。 测试用例格式如下: 输入: 动态分区分配算法选择 可用内存空间容量 序号/进程号/申请或释放操作/申请或释放的容量 其中: (1 ) 动态分区分配算法:1----首次适应,2----最佳适应。

2018-12-01

神经网络office插件NNX

神经网络Office插件NNX 使用方法: 1)点击打开Bp.xla文件,会提示是否运行宏,选择确定,会进入Excel并产生名为"Bp神经网络"的菜单项。 2)如经常使用,可在Excel菜单中选择“工具”->“加载宏”->“浏览”,选定Bp.xla文件并确定,就可与Excel自动提示而不必每次提示,想取消时将“加载宏”下Bp前的打勾标记去除即可。 注意事项: 1)基本步骤是按菜单中的“新建网络”->“训练样本”->和“预测”进行,可以保存和打开以前训练好的网络模型并了解权值。 2)训练数据前需要打开或输入样本数据的Excel工作表; 3)为防止病毒,请不要使用非法来源的副本。

2018-08-21

计算机组成原理-第二版-唐朔飞著-课后习题详解

计算机组成原理-第二版-唐朔飞著-课后习题详解,最新版的计算机组原理指导用书,课后习题解答详解,清晰电子版,不是影音扫描版本,超清晰,下来就能用,考研必备参考书

2018-08-20

空空如也

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

TA关注的人

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