- 博客(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
785
原创 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
1691
原创 Hive安装配置
Hivehive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析。Hive的数据存储 Hive中的所有数据都存储在HDFS中,没有专门的数据存储格式(支持Text,SequenceFile,ParquetFile、RCFILE等)只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,hive就可以解析数据。hive中包含以下数据模型:DB、Ta...
2018-08-06 10:04:24
638
原创 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
352
原创 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
683
原创 控制sort和作业提交
控制sort和作业提交MapReduce过程一共发生了3次排序操作,排序操作属于MapReduce的默认行为,我们不能控制是否发生排序,但可以控制排序的规则。 IntWritable类、Text类等都是WritableComparable的实现类,WritableComparable同时继承了Writable和Comparable接口。 WritableComparable实现类可以通过排...
2018-08-05 11:04:26
251
原创 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
906
原创 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
328
原创 控制Shuffle
控制Shuffleshuffle的工作主要是将中间结果分发到Reducer上,分发的依旧是中间结果的分区(partition),也就是说同一个分区的中间结果会交由一个Reduce任务处理,而进行分区操作的是由org.apache.hadoop.mapreduce.Partitioner的子类完成。 Partitioner@InterfaceAudience.Public@Interfa...
2018-08-05 10:43:25
293
原创 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
483
原创 HDFS详解
HDFShadoop1.x的HDFS默认块大小为64MB;hadoop2.x的默认块大小为128MB,最小化寻址开销。(配置项为hdfs-site.xml中的dfs.block.size) 减少搜寻时间,一般硬盘传输速率比寻道时间要快,大的块可以减少寻道时间;减少管理块的数据开销,每个块都需要在NameNode上有对应的记录;对数据块进行读写,减少建立网络的连接成本;减轻了namen...
2018-08-04 11:33:26
533
原创 牛客网笔记
牛客网笔记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
426
原创 WeakHashMap
WeakHashMapWeakHashMap继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHashMap的键是“弱键”。在WeakHashMap中,当某个键不再正常使用时,会被从WeakHashMap中被自动移除。更精确地说,对于...
2018-08-02 16:08:11
266
原创 fail-fast
fail-fastfail-fast机制是Java集合中的一种错误机制。实例容器在迭代过程中被修改时,就会抛出一个ConcurrentModificationException异常。实现方式将计数器的变化与容器关联起来:如果在迭代期间计数器被修改,那么hasNext或next将抛出ConcurrentModificationException。 private...
2018-08-02 12:45:43
234
原创 页面埋点&nginx日志采集
页面埋点&nginx日志采集采集页面(web容器:httpd/nginx负载均衡 + apache server)<===> 日志采集服务器(nginx服务器)通过某个页面跳转到我们的页面;我们页面一渲染完成加载埋点的js,执行业务逻辑采集信息;采集页面完成之后,访问log.gif,把参数拼接在args发送给采集服务器;采集服务器返回一个1*1空的图片,断开连接...
2018-08-01 17:22:53
4542
2
原创 HOF高阶函数
HOF高阶函数函数也是值,就像其他类型的值,比如整形、字符串、列表;函数也可以赋值给一个变量、存储在一个数据结构里、像参数一样传递给另一个函数。 把一个函数当做参数传递给另一个函数在纯函数式编程里很有用,它被称为高阶函数(higher-order function,HOF)。import scala.annotation.tailrecobject Hof { de...
2018-07-29 18:18:47
1077
原创 尾递归消除
尾调用使用循环方式 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
1667
原创 ACID
ACID事务的ACID特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性要么都执行,要么都不执行。 通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。一致性数据库的...
2018-07-29 16:53:18
1676
原创 CAP定理
CAP定理CAP理论告诉我们:一个分布式系统不可能同时满足一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)三个基本要求,最多只能同时满足其中的两项。一致性C分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于...
2018-07-28 23:47:17
285
原创 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
228
原创 TCP连接的建立和终止
TCP连接的建立和终止三路握手服务器通过调用socke、bind和listen这三个函数准备接受外来连接(被动打开)。 客户通过调用connect发起主动打开。客户TCP发送一个SYN分节,告诉服务器客户将在(待建立的)连接中发送的数据的初始序列号。 服务器确认ACK客户的SYN,同时自己也发送一个SYN分节,含有服务器将在同一连接中发送的数据的初始序列号。服务器在单个分节中...
2018-07-27 11:34:40
230
原创 传输层协议
传输层协议UDP应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。 UDP不保证数据报会到达最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。缺乏可靠性。如果一个数据报到达了其最终目的地,但是校验和检测发现有错误,或者该数据报在网络传输图种被丢弃了...
2018-07-27 10:50:59
862
原创 SnowFlake算法
SnowFlake算法问题:如何在分布式集群中生成全局唯一的ID?方法一:UUIDUUID是通用唯一识别码 (Universally Unique Identifier),在其他语言中也叫GUID,可以生成一个长度32位的全局唯一识别码。//e493a18e-61d0-499a-87c1-650d03735edbString uuid = UUID.randomUUI...
2018-07-26 13:12:04
1011
原创 JMS
JMSJMS是什么JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。 JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(J...
2018-07-26 12:40:09
833
原创 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
206
原创 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
216
原创 模拟实现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
353
原创 静态代理
静态代理代理对象和被代理对象实现同一个接口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
185
原创 GC基础
GC1960年,Lisp使用GCJava中,GC的对象是堆空间和永久区GC算法引用计数法(没有被Java采用)为每个对象标记引用数量,引用数量为0时进行空间释放。 引用和去引用伴随加法和减法,影响性能; 很难处理循环引用。标记清除(Java老年代)标记清除算法是现代垃圾回收算法的基础。分为标记和清除两个阶段。在标记阶段,通过根节点标...
2018-07-24 16:52:33
243
原创 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
1385
原创 SpringBoot集成RabbitMQ
SpringBoot集成RabbitMQ添加依赖spring-boot-starter-amqp创建消息接受者创建消息发送者&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-sta
2018-07-22 19:30:31
391
原创 高并发下的接口优化
高并发下的接口优化 Redis预减库存减少对数据库的访问 内存标记减少对Redis的访问 请求入队缓存,异步下单,增强用户体验(MQ) Nginx水平扩展 分库分表(MyCat) Redis预减库存减少对数据库的访问 系统初始化,商品数量加载到Redis 收到请求,Redis预减库存,库存不足,直接返回,否则进入3 请求入...
2018-07-22 19:22:00
5413
原创 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
395
原创 GET && POST 区别
GET && POST 区别GET -> 幂等:从服务端获取数据,调用多少次结果都一样POST -> 不幂等:向服务端提交数据,数据发生变化
2018-07-21 19:17:57
408
原创 秒杀中卖超问题
秒杀中卖超问题 数据库判断库存>0,数据库为原子操作,防止卖超; 数据库建立唯一索引,防止同一用户多次插入数据库; 验证码,防止同一用户多次请求。 ...
2018-07-21 19:17:37
862
原创 高并发下页面优化技术
高并发下页面优化技术 页面缓存(最大粒度)+URL缓存+对象缓存(最小粒度) 页面静态化(页面为html,静态,访问在客户端,ajax,js访问数据),前后端分离 静态资源优化(图片,js,css) CDN优化 并发瓶颈在数据库,我们减少对数据库的访问,最有效的方式就是缓存页面缓存: 取缓存 手动渲染模版 结果输出 对象...
2018-07-21 19:17:14
1022
原创 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
979
原创 Jmeter命令行使用
Jmeter命令行使用 生成jmx脚本 sh jmeter.sh -n -t XXX.jmx -l result.jtl 把result.jtl导入jeter
2018-07-21 11:23:12
1163
原创 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
372
原创 两次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
1212
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人