- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 Java深入浅出之HashMap
HashMap 是使用频率最高的类型之一,同时也是面试经常被问到的问题之一,这是因为 HashMap 的知识点有很多,同时它又属于 Java 基础知识的一部分,因此在面试中经常被问到。HashMap 底层是如何实现的?在 JDK 1.8 中它都做了哪些优化?在 JDK 1.7 中 HashMap 是以数组加链表的形式组成的,JDK 1.8 之后新增了红黑树的组成结构,当链表大于 8 并且容量大于 64 时,链表结构会转换成红黑树结构,它的组成结构如下图所示:数组中的元素我们称之为哈希桶,它的
2020-05-26 14:39:01 245
原创 Java深入浅出之String
String 是如何实现的?它有哪些重要的方法?以主流的 JDK 版本 1.8 来说,String 内部实际存储结构为 char 数组,源码如下:publicfinalclassStringimplementsjava.io.Serializable,Comparable<String>,CharSequence{//用于存储字符串的值privatefinalcharvalue[];//缓存字符串的hashcode...
2020-05-25 19:31:46 302
原创 Java深入浅出之线程
线程基本介绍线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在。一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源、更加轻量化,也因此被称为轻量级的进程。线程的状态有哪些?它是如何工作的?线程的状态在 JDK 1.5 之后以枚举的方式被定义在 Thread 的源码中,它总共包含以下 6 个状态:NEW,新建状态,线程被创建出来,但尚未启动时的线程状态; RUNNABLE,就绪状态,表示可以运行的线程状态,它可能正
2020-05-25 19:11:18 147
原创 Spark深入浅出之Actor编程
package actorimport akka.actor.{Actor, ActorSystem, Props}/** * 当继承actor后,就是一个Actor,核心方法receive 方法重写 */class SayHelloActor extends Actor { /** * 1. receive 方法,会被Actor的mailbox(实现了Runnable接口)调用 * 2.当该Actor的mailbox 接收到消息,就会调用了receive * 3.t.
2020-05-25 18:05:48 386
原创 Java深入浅出之JVM内存模型
一、虚拟机的发展HotSpot VM(SUN) 以前使用范围最广的Java虚拟机JRockit VM(BEA) 号称”世界上最快的Java虚拟机”J9 VM(IBM)Dalvik VM( Google )HotSpot VM(ORACLE) 目前使用范围最广的Java虚拟机二、JVM的整体介绍三、运行时数据区这个是抽象概念,内部实现依赖寄存器、高速缓存、主内存(具体要分析 JVM 源码 C++语言实现,没必要看) 计算机的运行=指令+数据,指令用于执行方法的,数..
2020-05-24 11:35:46 592
原创 Scala加载外部配置文件速成教学,实时离线都可用。
废话不多说,直接开干。一、配置文件创建及导出 src/resources/application.properties创建 将application.properties文件移到服务器或者本地。二、文件配置读取类编写 示例如下:import java.util.Propertiesobject PropsApp { //TODO 配置文件的加载 val path = "F:\\config\\application.properties"// va...
2020-05-24 10:59:11 748
原创 Java集合框架常见面试
1.HashMap 和 ConcurrentHashMap 的区别ConcurrentHashMap对整个桶数组进行了分割分段(Segment),然后在每一个分段上都用lock锁进行保护,相对于HashTable的synchronized锁的粒度更精细了一些,并发性能更好,而HashMap没有锁机制,不是线程安全的。(JDK1.8之后ConcurrentHashMap启用了一种全新的方式实现,利用CAS算法。) HashMap的键值对允许有null,但是ConCurrentHashMap都不允许..
2020-05-23 22:45:17 200
原创 sk_iris_knn
# -*- coding:utf-8 -*-import numpy as npfrom sklearn.datasets import load_irisfrom sklearn.datasets.base import Bunchfrom sklearn import tree, metricsfrom sklearn.neighbors import KNeighborsClassifieriris_data = load_iris()X = iris_data.dataY = i.
2020-05-22 16:04:19 188
原创 Hand_iris_knn
# _*_coding:utf-8 _*_import csvimport operatorimport randomimport numpy as npdef loadDataSet(file_name, split, trainingSet=None, testSet=None): with open(file_name, 'rb') as csv_file: # 读取csv的格式 data_file = csv.reader(csv_file).
2020-05-22 16:03:48 166
原创 Scala高阶之多线程
Runnable/Callable入门级区别:Runnable无返回值,Callable线程执行完有返回值。深入源码后面会详解。Runnable示例import java.util.concurrent.{Executors, ExecutorService} object Test { def main(args: Array[String]) { //创建线程池 val threadPool:ExecutorService=Executors.newFixedT
2020-05-22 15:55:08 418
原创 spark2.0 scala2.11.8整合kafka0.10新特性pom及代码
Pom如下<?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
2020-05-22 15:46:39 652
原创 Scala之Json4s解析json
import com.alibaba.fastjson.{JSON, JSONObject}import org.apache.spark.rdd.RDD/** * Created by maokm on 2020/1/3. *//*""" |platformId;//渠道编码 | loanTerm;//贷款其次 |creditCode;//营业执照号 |riskId;//授信业务号 |status;//状态 |customerOpenId;//商户号 可以为空 | ap..
2020-05-22 15:40:46 1102
原创 Scala高阶编程之协变、逆变和不变
1、Scala的协变(+),逆变(-),协变covariant、逆变contravariant、不可变invariant2、对于一个带类型参数的类型,比如List[T],如果对A极其子类型B,满足List[B]也符合List[A]的子类型,那么久称为convariance(协变),如果List[A]是List[B]的子类型,即与原来的父子关系正相反,则称为contravariance(逆变).如果一个类型支持协变或逆变,则称这个类型为variance(翻译为可变的或变型),否则称为invariance(
2020-05-22 15:36:58 248
原创 Spark排序算法之二次排序
二次排序具体实现步骤:按照Ordered和serrializable接口实现自定义排序key 将要进行二次排序的文件假造进来生成<key,value>类型的RDD 使用sortbykey基于自定义的key进行二次排序 去除掉排序的key,只保留排序的结果源码如下import org.apache.spark.{SparkConf, SparkContext}class SecondarySortKey(val first: Int, val second: Int) ex.
2020-05-22 15:13:02 882
原创 Spark自定义Part-00001
import org.apache.spark.{SparkConf, SparkContext}/** * Created by maokm on 2017/7/20. */import org.apache.hadoop.mapred.lib.MultipleTextOutputFormatclass RDDMultipleTextOutputFormat extends MultipleTextOutputFormat[Any, Any] { override def gene.
2020-05-22 15:01:55 430
原创 Spark深入浅出之从源码看Spark布局
RDD基于工作集的应用抽象(动态感知,容错,负载均衡,弹性)1、RDD(Resilient distributed Dataset)弹性体现自动的进行内存和磁盘数据存储的切换 基于lineage的高效容错(第n个节点出错,会从n-1个节点恢复,血统容错) Task如果失败会自动进行特定次数的重试(默认4次) Stage如果失败会自动进行特定次数的重试(可以只运行计算失败的阶段),只计算失败的数据分片 Checkpoint和persist DAG,Task和资源管理无关 数据分片的高度弹.
2020-05-22 14:51:58 214
原创 Spark深入浅出之从物理执行角度看Spark
一、思考pipeline即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也会有两种方式:1、f (record) ,f作用于集合的每一条记录,每次只作用于一条记录2、f(records),f 一次性作用于集合的全部数据。Spark采用的是第一种方式,原因:1、无需等待,可以最大化的使用集群的计算资源。2、减少OOM的发生。3、最大化的有利于并发。4、可以精准的控制每一个Partition本身(Dependency)及其内部的计算(compute)。5
2020-05-21 16:14:14 179
原创 数据结构之队列的基本操作(Java基础)
/* * 队列 */public class MyCycleQueue { //底层使用数组 private long[] arr; //有效数据的大小 private int elements; //队头 private int front; //队尾 private int end; /** * 默认构造方法 */ public MyCycleQueue() { arr = new long[10]; elements = 0; front = 0;.
2020-05-21 16:09:07 288
原创 数据结构之汉诺塔(Java基础)
public class HanoiTower { /** * 移动盘子 * topN:移动的盘子数 * from:起始塔座 * inter:中间塔座 * to:目标塔座 */ public static void doTower(int topN,char from,char inter,char to) { if(topN == 1) { System.out.println("盘子1,从"+ from + "塔座到" + to + "塔座"); } el.
2020-05-21 16:08:01 303
原创 数据结构之栈的基本操作(Java基础)
public class MyStack { //底层实现是一个数组 private long[] arr; private int top; /** * 默认的构造方法 */ public MyStack() { arr = new long[10]; top = -1; } /** * 带参数构造方法,参数为数组初始化大小 */ public MyStack(int maxsize) { arr = new long[maxsize]; top .
2020-05-21 16:06:29 236
原创 SparkHbase 切分Hfile, 海量数据优化
package cn.jkjf.bigdata.utils.testimport cn.jkjf.bigdata.utils.mysql.Globalimport org.apache.hadoop.conf.Configurationimport org.apache.hadoop.fs.Pathimport org.apache.hadoop.hbase.client.{ConnectionFactory, HTable}import org.apache.hadoop.hbase..
2020-05-21 16:03:20 428
原创 生成Hfile 并给HDFSSHELL授权
package cn.jkjf.bigdata.utils.testimport java.text.SimpleDateFormatimport java.util.{Date, UUID}import cn.jkjf.bigdata.utils.hbase.HFilePartitionerimport cn.jkjf.bigdata.utils.mysql.Globalimport org.apache.hadoop.conf.Configurationimport org.apach.
2020-05-21 16:01:38 311
原创 Scala 生成一个Hfile
package cn.jkjf.bigdata.utils.hbaseimport org.apache.hadoop.conf.Configurationimport org.apache.hadoop.hbase.util.Bytesimport org.apache.spark.Partitionerclass HFilePartitioner(conf: Configuration, splits: Array[Array[Byte]], numFilesPerRegion: Int.
2020-05-21 16:00:13 267
原创 Cloudera Manager 5.14.4离线安装
安装环境 本次安装一共使用6台服务器 硬件环境:/目录500G,数据目录500G 操作系统:CentOS7 相关应用:JDK、Mysql 操作用户:root系统配置(每个节点) hostnamectl set-hostname jkbigdata01 #cat /etc/hostname jkbigdata01 修改所有服务器 重启服务器使host主...
2020-05-21 15:50:07 942 2
原创 Flume:SpoolDir实战
#source的名字agent.sources = s1# channels的名字agent.channels = c1# sink的名字# 指定source使用的channelagent.sources.s1.channels = c1# 指定sink使用的channel# source的名字agent.sources = s1# channels的名字agent.channels = c1# sink的名字agent.sinks = r1# 指定source使用的chan.
2020-05-21 14:43:47 1048
原创 Flume:TailDir实战
#source的名字agent.sources = s1# channels的名字agent.channels = c1# sink的名字# 指定source使用的channelagent.sources.s1.channels = c1# 指定sink使用的channel# source的名字agent.sources = s1# channels的名字agent.channels = c1# sink的名字agent.sinks = r1# 指定source使用的chan.
2020-05-21 14:41:37 1131
原创 logstash配置文件(ELK)
input{ kafka{+ bootstrap_servers => ["192.168.234.*:9092,192.168.234.*:9092"] group_id => "loan-log-consumer" auto_offset_reset => "latest" consumer_threads => 5 topics => ["loan-log"] type => "loan" }}filter{ if[type].
2020-05-20 19:40:51 586
原创 Oracle导出表结构到excel
SELECT a.COLUMN_NAME,a.DATA_TYPE,a.DATA_LENGTH,a.NULLABLE,b.COMMENTSfrom ALL_TAB_COLUMNS a,ALL_COL_COMMENTS bWHERE a.OWNER=b.OWNER AND a.TABLE_NAME=b.TABLE_NAME AND a.COLUMN_NAME=b.COLUMN_NAME AND a.OWNER='LOANCORE' AND a.TABLE_NAME='T_BA_REPAY_PL.
2020-05-20 19:39:24 766
原创 storm 环境搭建问题解决
Running: /data/service/jdk1.8.0_111/bin/java -client -Ddaemon.name= -Dstorm.options= -Dstorm.home=/usr/local/storm/storm -Dstorm.log.dir=/usr/local/storm/storm/logs -Djava.library.path= -Dstorm.conf.file= -cp /usr/local/storm/storm/lib/log4j-over-slf4j-1.6
2020-05-20 19:37:58 474
原创 Hadoop 文件归档
#! bin/bashPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binexport PATHexport JAVA_HOME=/usr/local/jdkexport PATH=$JAVA_HOME/bin:$PATHexport HADOOP_USER_NAME=hdfs if [ -z "$1" ]; thenyesterday=`date -d '0 day' +%Y%m%d`echo $yeste.
2020-05-20 19:33:41 332
原创 Spark读取Kafka 高低阶API
1、KafkaUtils.createDstream构造函数为KafkaUtils.createDstream(ssc, [zk], [consumer group id], [per-topic,partitions] )使用了receivers来接收数据,利用的是Kafka高层次的消费者api,对于所有的receivers接收到的数据将会保存在Sparkexecutors中,然后通过Spark Streaming启动job来处理这些数据,默认会丢失,可启用WAL日志,该日志存储在HDFS上...
2020-05-20 19:31:33 457
原创 磁盘挂载分配
umount /websphere删除/etc/fstab中的最后含有这个的一行: /dev/mapper/datavg-vg1 /websphere…………删除原有lv:lvremove /dev/datavg/vg1重新调整datavg大小:pvresize /dev/sdb创建LV:lvcreate -L 50G -n datavg-opt datavg格式化:mkfs.ext4 /dev/datavg/datavg-opt挂载:mount /dev/datavg/datavg-op.
2020-05-20 19:29:23 302
原创 算法优化之梯度下降
import matplotlib.pyplot as pltimport numpy as np#1.初始化数据X = np.linspace(0,1,num = 100).reshape(100,1)print X#模拟效果,预测值noise = np.random.random((100,1)) /10 #100行 1列 /10 缩小10倍# 2.目标系数Y = 2 * X + 3 + noise#观察效果#创建一个画布fig = plt.figure()ax = .
2020-05-20 19:27:31 189
原创 五子棋游戏(Scala版本)
package datastructureimport scala.collection.mutable.ArrayBuffer/** * 编写五子棋程序,有存盘退出和续上盘的功能 */object Sparsearray { def main(args: Array[String]): Unit = { val rowSize = 11 val colSize = 11 //创建棋盘 val chessArray = Array.ofDim[Int].
2020-05-20 19:19:59 371
原创 二叉树(Scala版本)
package datastructure/** * 二叉树demo */object BinaryTreeDemo { def main(args: Array[String]): Unit = { val root = new HeroNode(1, "宋江") val hero2 = new HeroNode(2, "吴用") val hero3 = new HeroNode(3, "卢俊义") val hero4 = new HeroNode(4, ".
2020-05-20 19:16:27 1571
json-serde-1.3.7-jar-with-dependencies.jar
2020-10-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人