自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenxiaokang的博客

不积跬步无以至千里

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

原创 Sqoop

Sqoop安装下载,解压,配置环境变量conf里的配置不需要动,如果没有安装ZooKeeper和Hbase,就把configure-sqoop里有关zk和hbase的脚本全部注释掉;如果安装了zk和hbase,就不需要改。导入,一个mysql的坑我们导入hive表的DBS表➜ sqoop git:(master) ✗ sqoop import --connect jd...

2018-08-07 12:33:13 731

原创 Hive的数据类型和常用操作

Hive数据类型和存储格式基本数据类型:TINYINT(1字节)、SMALLINT(2字节)、INT(4字节)、BIGINT(8字节)、FLOAT(4字节)、DOUBLE(8字节)、BOOLEAN(true/false)、STRING(字符序列)。 Hive也是由Java编写的,所以Hive的基本数据类型都是对Java中的接口的实现,这些基本的数据类型和Java的基本数据类...

2018-08-06 18:08:15 1621

原创 Hive安装配置

Hivehive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析。Hive的数据存储 Hive中的所有数据都存储在HDFS中,没有专门的数据存储格式(支持Text,SequenceFile,ParquetFile、RCFILE等)只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,hive就可以解析数据。hive中包含以下数据模型:DB、Ta...

2018-08-06 10:04:24 600

原创 MapReduce二次排序

MapReduce二次排序➜ student git:(master) ✗ hadoop dfs -cat /sortTwo/dataDEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.18/08/05 16:18:55 W...

2018-08-05 16:20:42 317

原创 MapReduce连接join操作

MapReduce连接操作➜ student git:(master) ✗ hadoop dfs -cat /student/student_info.txtDEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.18/08/0...

2018-08-05 15:37:43 635

原创 控制sort和作业提交

控制sort和作业提交MapReduce过程一共发生了3次排序操作,排序操作属于MapReduce的默认行为,我们不能控制是否发生排序,但可以控制排序的规则。 IntWritable类、Text类等都是WritableComparable的实现类,WritableComparable同时继承了Writable和Comparable接口。 WritableComparable实现类可以通过排...

2018-08-05 11:04:26 223

原创 Writable接口

Writable接口package cn.chen.hd.mr;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Writable;import java.io.*;public class TestWritable { public static void main(String...

2018-08-05 10:45:39 865

原创 WordCount

package cn.chen.hd.mr;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apa...

2018-08-05 10:45:06 285

原创 控制Shuffle

控制Shuffleshuffle的工作主要是将中间结果分发到Reducer上,分发的依旧是中间结果的分区(partition),也就是说同一个分区的中间结果会交由一个Reduce任务处理,而进行分区操作的是由org.apache.hadoop.mapreduce.Partitioner的子类完成。 Partitioner@InterfaceAudience.Public@Interfa...

2018-08-05 10:43:25 251

原创 MapReduce

MapReduceshuffle 一个MapReduce作业经过了input、map、combine、reduce、output五个阶段,其中combine阶段并不一定发生,map输出的中间结果被分发到reducer的过程被称为shuffle。shuffle阶段还会发生copy和sort。 Reduce任务默认会在Map任务数量完成5%后才开始启动。Map任务的执行过程...

2018-08-05 09:42:20 449

原创 HDFS详解

HDFShadoop1.x的HDFS默认块大小为64MB;hadoop2.x的默认块大小为128MB,最小化寻址开销。(配置项为hdfs-site.xml中的dfs.block.size) 减少搜寻时间,一般硬盘传输速率比寻道时间要快,大的块可以减少寻道时间;减少管理块的数据开销,每个块都需要在NameNode上有对应的记录;对数据块进行读写,减少建立网络的连接成本;减轻了namen...

2018-08-04 11:33:26 462

原创 牛客网笔记

牛客网笔记protectedprotected在同一包或子类中使用,无修饰符只能被同一包中的类访问count++package cn.chen.base;public class Demo { public static void main(String[] args) { int count = 0; int num = ...

2018-08-03 10:40:43 393

原创 WeakHashMap

WeakHashMapWeakHashMap继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHashMap的键是“弱键”。在WeakHashMap中,当某个键不再正常使用时,会被从WeakHashMap中被自动移除。更精确地说,对于...

2018-08-02 16:08:11 242 3

原创 fail-fast

fail-fastfail-fast机制是Java集合中的一种错误机制。实例容器在迭代过程中被修改时,就会抛出一个ConcurrentModificationException异常。实现方式将计数器的变化与容器关联起来:如果在迭代期间计数器被修改,那么hasNext或next将抛出ConcurrentModificationException。 private...

2018-08-02 12:45:43 208

原创 页面埋点&nginx日志采集

页面埋点&nginx日志采集采集页面(web容器:httpd/nginx负载均衡 + apache server)<===> 日志采集服务器(nginx服务器)通过某个页面跳转到我们的页面;我们页面一渲染完成加载埋点的js,执行业务逻辑采集信息;采集页面完成之后,访问log.gif,把参数拼接在args发送给采集服务器;采集服务器返回一个1*1空的图片,断开连接...

2018-08-01 17:22:53 4438 2

原创 HOF高阶函数

HOF高阶函数函数也是值,就像其他类型的值,比如整形、字符串、列表;函数也可以赋值给一个变量、存储在一个数据结构里、像参数一样传递给另一个函数。 把一个函数当做参数传递给另一个函数在纯函数式编程里很有用,它被称为高阶函数(higher-order function,HOF)。import scala.annotation.tailrecobject Hof { de...

2018-07-29 18:18:47 1016

原创 尾递归消除

尾调用使用循环方式 def factorial(n: Int): Int = { def go(n: Int, acc: Int): Int = { if (n <= 0) acc else go(n - 1, n * acc) } go(n, 1) }想不通过修改一个循环变量而实现循环功能,可以借助递归函数。我们在阶...

2018-07-29 18:02:20 1613

原创 ACID

ACID事务的ACID特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性要么都执行,要么都不执行。 通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。一致性数据库的...

2018-07-29 16:53:18 1623

原创 CAP定理

CAP定理CAP理论告诉我们:一个分布式系统不可能同时满足一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)三个基本要求,最多只能同时满足其中的两项。一致性C分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于...

2018-07-28 23:47:17 257

原创 OSI七层模型

OSI七层模型应用层 表示层 会话层传输层:TCP| |UDP网络层:IPv4、IPv6数据链路层:MTU 物理层常用命令netstat -i 提供网络接口信息。-n输出数值地址。 netstat -r 展示路由表 lo(loopback):环回接口 eth0:以太网接口 ifconfig可以获得每个接口的信息 eg:ifconfig eth0...

2018-07-27 11:38:37 200

原创 TCP连接的建立和终止

TCP连接的建立和终止三路握手服务器通过调用socke、bind和listen这三个函数准备接受外来连接(被动打开)。 客户通过调用connect发起主动打开。客户TCP发送一个SYN分节,告诉服务器客户将在(待建立的)连接中发送的数据的初始序列号。 服务器确认ACK客户的SYN,同时自己也发送一个SYN分节,含有服务器将在同一连接中发送的数据的初始序列号。服务器在单个分节中...

2018-07-27 11:34:40 192

原创 传输层协议

传输层协议UDP应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。 UDP不保证数据报会到达最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。缺乏可靠性。如果一个数据报到达了其最终目的地,但是校验和检测发现有错误,或者该数据报在网络传输图种被丢弃了...

2018-07-27 10:50:59 834

原创 SnowFlake算法

SnowFlake算法问题:如何在分布式集群中生成全局唯一的ID?方法一:UUIDUUID是通用唯一识别码 (Universally Unique Identifier),在其他语言中也叫GUID,可以生成一个长度32位的全局唯一识别码。//e493a18e-61d0-499a-87c1-650d03735edbString uuid = UUID.randomUUI...

2018-07-26 13:12:04 964

原创 JMS

JMSJMS是什么JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。 JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(J...

2018-07-26 12:40:09 629

原创 cglib实现动态代理

cglib实现动态代理代理逻辑package cn.chen.proxy.cglibproxy;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;public class TransCglib...

2018-07-25 13:47:59 177

原创 JDK提供的动态代理

JDK提供的动态代理提供接口和实现类package cn.chen.proxy.jdk;public interface UserMgr { void addUser();}package cn.chen.proxy.jdk;public class UserMgrImpl implements UserMgr { @Override publ...

2018-07-25 13:23:56 188

原创 模拟实现JDK动态代理Proxy

动态代理实现可以对任意的对象、任意的接口方法实现任意的代理Handler接口package cn.chen.proxy.compiler;import java.lang.reflect.Method;public interface InvocationHander { void invoke(Object o,Method method);}代理类实...

2018-07-25 10:45:09 314

原创 静态代理

静态代理代理对象和被代理对象实现同一个接口package cn.chen.proxy;public interface Moveable { void move();}package cn.chen.proxy;public class TankTimeProxy implements Moveable{ Moveable tank; pu...

2018-07-24 21:52:13 167

原创 GC基础

GC1960年,Lisp使用GCJava中,GC的对象是堆空间和永久区GC算法引用计数法(没有被Java采用)为每个对象标记引用数量,引用数量为0时进行空间释放。 引用和去引用伴随加法和减法,影响性能; 很难处理循环引用。标记清除(Java老年代)标记清除算法是现代垃圾回收算法的基础。分为标记和清除两个阶段。在标记阶段,通过根节点标...

2018-07-24 16:52:33 213

原创 RabbitMq四种交换机模式

RabbitMq的四种交换机模式package cn.chen.miaosha.rabbitmq;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configura...

2018-07-22 19:31:24 1347

原创 SpringBoot集成RabbitMQ

SpringBoot集成RabbitMQ添加依赖spring-boot-starter-amqp创建消息接受者创建消息发送者<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta

2018-07-22 19:30:31 368

原创 高并发下的接口优化

高并发下的接口优化 Redis预减库存减少对数据库的访问 内存标记减少对Redis的访问 请求入队缓存,异步下单,增强用户体验(MQ) Nginx水平扩展 分库分表(MyCat) Redis预减库存减少对数据库的访问 系统初始化,商品数量加载到Redis 收到请求,Redis预减库存,库存不足,直接返回,否则进入3 请求入...

2018-07-22 19:22:00 5327

原创 Ubuntu erlang编译

Ubuntu erlang编译 sudo apt-get install build-essentialsudo apt-get install libncurses5-dev    sudo apt-get install libssl-dev sudo apt-get install m4  sudo apt-get install unixodbc unixodbc-...

2018-07-22 19:20:23 364

原创 GET && POST 区别

GET && POST 区别GET -> 幂等:从服务端获取数据,调用多少次结果都一样POST -> 不幂等:向服务端提交数据,数据发生变化

2018-07-21 19:17:57 376

原创 秒杀中卖超问题

秒杀中卖超问题 数据库判断库存>0,数据库为原子操作,防止卖超; 数据库建立唯一索引,防止同一用户多次插入数据库; 验证码,防止同一用户多次请求。 ...

2018-07-21 19:17:37 827

原创 高并发下页面优化技术

高并发下页面优化技术 页面缓存(最大粒度)+URL缓存+对象缓存(最小粒度) 页面静态化(页面为html,静态,访问在客户端,ajax,js访问数据),前后端分离 静态资源优化(图片,js,css) CDN优化 并发瓶颈在数据库,我们减少对数据库的访问,最有效的方式就是缓存页面缓存: 取缓存 手动渲染模版 结果输出 对象...

2018-07-21 19:17:14 985

原创 Redis压测

Redis压测-c:模拟100并发 -n:100000请求 默认3字节➜  ~ git:(master) ✗ redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000 == SADD ==   100000 requests completed in 1.98 seconds   100 parallel clients   3 b...

2018-07-21 11:23:34 936

原创 Jmeter命令行使用

Jmeter命令行使用 生成jmx脚本 sh jmeter.sh -n -t XXX.jmx -l result.jtl 把result.jtl导入jeter  

2018-07-21 11:23:12 1121

原创 SpringBoot打war包

SpringBoot打war包 添加spring-boot-starter-tomcat的provided依赖 添加maven-war-plugin插件 修改pom.xml文件<packaging>war</packaging> <dependency>      <groupId>org.springframew...

2018-07-21 11:22:48 336

原创 两次MD5

用户端:PASS=MD5(明文+固定salt)  服务端:PASS=MD5(用户输入+随机salt) 用户端MD5:防止用户的明文密码在网络上进行传输。服务端MD5:当数据库被盗,防止反查。 package cn.chen.miaosha.util; import org.apache.commons.codec.digest.DigestUtils; ...

2018-07-18 19:42:41 1188 1

空空如也

空空如也

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

TA关注的人

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