- 博客(100)
- 收藏
- 关注
原创 思考与总结01: 关于MyBatis 以及 业务接口的编写
文章目录####关于在查询当中使用in list操作xml:select * from temp_tablewhere <if test="list != null and list.size() > 0" > b.`dept` in <foreach collection="list" index="index&a
2018-11-03 18:15:42 291
原创 浅聊GC日志
-XX:+PrintGC 参数-XX:+PrintGC(或者-verbose:gc)开启了简单GC日志模式,为每一次新生代(young generation)的GC和每一次的Full GC打印一行信息。下面举例说明:[GC 246656K->243120K(376320K), 0.0929090 secs][Full GC 243120K->241951K(629760K), ...
2018-05-18 16:28:20 269
原创 WatchService 简单使用
简介WatchService 看作是文件监控器,通过操作系统原生文件系统来运行。 针对单点多appkey的情况,可以注册开启多个监控器。 每个监控器可看作是后台线程,通过监控文件发出的信号来实现监控。实现方法WatchService 用来观察被注册了的对象所有的变化和事件Watchable 被观察者,与WatchService结合使用, java.nio.file.P...
2018-04-04 10:37:38 8721
原创 再谈异常 Java 异常解析
简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。 ...
2018-02-09 15:31:43 306
原创 Hadoop 源码解析 No.1 NameNode
Hadoop 源码解析 No.1 NameNode注:本人使用的版本是 2.9,并且确保你的机器上已经安装了Source在新版的Hadoop 当中 启动模式已经从 $bin/hadoop ⇒ $bin/hdfs我们打开这个文件:if [ "$COMMAND" = "namenode" ] ; thenCLASS='org.apache.hadoop.hdfs.server.namenode.N
2017-12-26 12:26:38 326
原创 LintCode 171 乱序字符串
昨天做的一题很有意思的字符串题目。 用到了 HashMap 当中的 Entry 链表,顺便又复习了一下 HashMap,对应的方法在代码当中已经有注释。import java.util.*;public class Anagrams { /** * 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。 * 如果一个字符串是乱序字符串,那么他存在一个字母集合
2017-12-14 10:01:08 483
原创 面经-美团点评-离线大数据平台-Hadoop研发
时间:12.07 一面:项目 在实习中用到的大数据知识,特别是平台方面。我聊到了自己在福州实习的时候用到的 flume + kafka 内容。Java 基础数据结构: HashMap 和 HashTable 的区别:看过源代码所以聊了源代码里面的实现。 还有 HashMap 当中的 哈嘻因子作用是什么,其实哈希因子的内容我忘了,就说了如果设置的太大或者太小会有什么结果。Java 并发,我
2017-12-08 18:05:09 1190 1
原创 关于CaffeOnSpark 集群效率低下的问题解决方案
在我之前的文章上可以看到关于CaffeOnSpark的搭建教程。 这里假设大家已经把整个集群启动。我的配置:node: 四台计算机: 三台Ubuntu 16.04 8Gb内存 Gtx1080 一台 CentOs 7 8Gb 内存 Gtx970 作为master 不参与工作配置的节点数量不应该过大,否则集群之间的数据传递是一个很大的问题。Executor数量造成数据倾斜在官方的Git上用的
2017-11-16 17:23:39 484
原创 CaffeOnSpark 安装笔记 可以正常运行
CaffeOnSpark 安装环境 平台:Ubuntu 16.04对于CaffeOnSpark的安装,默认的前提是已经在机器上安装CUDA, Hadoop 和 Spark 集群,并且它们可用的。关于Hadoop和Spark的版本,官方文档有严格定义: Hadoop 2.6 Spark 1.6 或者是: Hadoop 2.7 Spark 2.0
2017-11-08 13:57:17 715
原创 CaffeOnSpark 安装遇到的一系列问题
入职虹软第一天:任务搭建一个搭建一个CaffeOnSpark的测试集群 ,状态:未完成。遇到的问题: 1在搭建 Hadoop 集群的时候,按照配置执行完两个重要的配置:core-site.xml 和 hdfs-site.xml 然后运行命令: ./bin/hdfs namenode -format 出现这样的错误: 提示 Error: JAVA_HOME is not set and co
2017-10-25 14:04:19 2327 4
原创 Flume 三大组件 & 逻辑结构
Flume 主要由三个重要的组件构成: Source :完成对日志数据的收集,分成transtion 和 even 打入到 channel 中。 Channel :主要提供一个队列的功能,对 source 提供中的数据进行简单的缓存。 Sink:取出 channel 中的数据,进行相应的存储文件系统,数据库,或者提交到远程服务器。简单点: Source:收集信息 Channel:传递信息
2017-10-22 19:23:48 9865
原创 LeetCode By Scala Container With Most Water
题目:Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find tw
2017-08-30 12:57:07 555
原创 IDEA 编译:Saprk 2.2 上的WordCount
本地编译IDEA需要添加scala插件,本机环境需要有scala环境 本地: Scala 2.12 集群: Spark 2.11 Scala 2.11.8在IDEA上创建Scala项目 最简单的WordCount代码 :import org.apache.spark.{SparkConf, SparkContext}object WordCount { def main(args: Ar
2017-08-10 10:22:39 1095
原创 MapReduce 实现 InnerJoin 操作: 在Reduce端实现Join
InnerJoin表1 DEP.txt: (去除第一行列名) ID 地名 1 北京2 天津3 河北4 山西5 内蒙古6 辽宁7 吉林8 黑龙江表2 EMP.txt : (去除第一行列名)ID 年份 数量1 2010 1962
2017-08-03 17:59:02 1688 1
原创 MapReduce 实现 倒序索引
倒序索引 简介“倒排索引”是文档检索系统中最常用的数据结构,被广泛地应用于全文搜索引擎。它主要是用来存储某个单词(或词组)在一个文档或一组文档中的存储位置的映射,即提供了一种根据内容来查找文档的方式。由于不是根据文档来确定文档所包含的内容,而是进行相反的操作,因而称为倒排索引(Inverted Index)。关于倒序索引更加详细的介绍MapReduce实现倒序索引Hadoop 将数据传给 map
2017-08-02 17:08:34 1454
原创 Spark 2.2.0 启动时报Error while instantiating / java.net.ConnectException
我的机器: 已经安装好Hadoop Java Scala HiveMaster:192.168.244.129Slave1.hadoop:192.168.244.128Slave2.hadoop:192.168.244.130在之前的工作中比如:Hadoop Hive 等环境都已经配置正确在启动用一下命令启动Spark集群时无问题:./sbin/start-all.sh使用JPS查看:132
2017-07-25 21:21:47 16415 3
原创 Hadoop学习笔记:MapReduce任务Namenode DataNode Jobtracker Tasktracker之间的关系
一、基本概念 在MapReduce中,一个准备提交执行的应用程序称为“作业(job)”,而从一个作业划分出的运行于各个计算节点的工作单元称为“任务(task)”。此外,Hadoop提供的分布式文件系统(HDFS)主要负责各个节点的数据存储,并实现了高吞吐率的数据读写。 在分布式存储和分布式计算方面,Hadoop都是用主/从(Master/Slave)架构。在一个配置完整的集群上,想让Hadoop
2017-07-20 11:08:49 1331
原创 Eclipse 运行WordCount实例 (连接Linux下的Hadoop集群)
在Eclipse连接运载在Linux上的Hadoop之前,请先保证Hadoop是运行状态。 本人的hadoop配置文件: core-site.xml 19 <configuration> 20 <property> 21 <name>hadoop.tmp.dir</name> 22 <value>file:/usr/local/hadoop-2.8.
2017-07-19 20:01:01 1603
原创 Zookeeper 3.4.9 全分布模式解析(附:安装以及配置教程)
在我的上一篇博客中讲了如何玩Hadoop,今天我们就来装zookeeper咯!首先,如果要玩这个就必须先在机器上装好JDK,要求是java6以上的。附:ZooKeeper下载地址安装以及配置:本机配置: Ubuntu 16.04 64bit 一共有三台java version "1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131
2017-07-14 19:07:55 1165
原创 Hadoop 2.8.0 全分布模式下遇见的坑
我这里设置了三台机子: 全是Ubuntu 16.04192.168.244.120 Master192.168.244.128 Slave1.Hadoop192.168.244.130 Slave2.Hadoop备注:机子上已经全部安装了,JDK1.8,Hadoop-2.8.0 ,ssh 并且设置好无密码登录。 以下是我碰见的所有坑:java.io.EOFException: End of
2017-07-14 10:17:00 1969
原创 Ubuntu-16.04 下 Hadoop-2.8.0环境搭建
学习如何在Linux上部署Hadoop集群第一步:在Ubuntu16.04下部署JDK环境Hadoop的前提是需要有Java环境。 建议安装JDK1.6以上的版本以供使用。 JDK下载地址 :我这里使用的是1.8 Linux-64的。 注意:结尾是tar.gz结尾的!下载完成之后把包考入Ubuntu系统:sudo tar -zxcf /home/Desttop/jdk-8u131-linux-x6
2017-07-11 14:49:50 2051 1
原创 题解LeetCode UglyNumber - FindFirstCommonNode - GetNumberOfK
UglyNumber丑数:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。public static int uglyNumber_Solution(int index) { if (index < 7) return index;
2017-06-14 21:10:02 391
原创 基于Jsoup实现的简单网络爬虫
之前是完全不会爬虫的,但是新项目中需要从网页上爬一大堆的数据,所以就花了一天时间学习了下。主题部分还是很简单的。 * 既然想要写博文,那我就要写的细致点,对自己对读者都是一种负责!什么是爬虫?我所理解的爬虫就是从互联网上获取Url,顺着Url一个一个的去访问页面 一个页面会有很多的链接,对于每个链接可以判断是否使我们想要的,再对子链接进行操作、访问等等。for each 链接 in 当前网页
2017-06-02 16:47:05 4319
原创 Java LinkedHashMap 源码剖析
##LinkedHashMap简介LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,可以使节点的输出顺序与输入顺序相同。LinkedHashMap可以用来实现LRU算法(这会在下面的源码中进行分析)。LinkedHashMap同样是
2017-04-30 12:20:20 224
原创 Java HashTable 源码剖析
##Hashtable简介HashTable同样是基于哈希表实现的,同样每个元素都是key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阈值)时,同样会自动增长。Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。##Hashtable源码剖析
2017-04-30 12:19:41 223
原创 Java HashMap 源码剖析
###HashMap简介 HashMap是基于哈希表实现的,每一个元素都是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阈值)时,同样会自动增长。HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap实现了Serializable接口,因此它支持序列化,实现了Cloneabl
2017-04-30 12:18:28 250
原创 Java Vector 源码剖析
##Vector简介 Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。Vector没有实现Serializable接口,因此它不支持序列化,实现了Cloneable接口,能被克隆,实现了RandomAccess
2017-04-30 12:17:20 293
原创 Java LinkedList简介 源码剖析
##LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当作链表来操作外,它还可以当作栈,队列和双端队列来使用。LinkedList同样是非线程安全的,只在单线程下适合使用。LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。##LinkedList源码剖析Li
2017-04-30 12:15:51 347
原创 Java ArrayList简介 源码剖析
##ArrayList简介ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能在单线程环境下,多线程环境下可以考虑用collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArra
2017-04-30 12:14:45 386
原创 Java 垃圾收集器与内存分配策略(一):对象“死亡判断”和四种引用
这里讨论的JVM虚拟机中的垃圾回收区域是指在线程共有的部分:Java堆(Java Heap) 与 方法区。在判断一个对象已经死亡的方法有两种:引用计数算法可达性分析算法引用计数算法在对象中添加一个引用计数器,每当有一个地方应用对象,计数器数值 +1;如果某个引用失效时,计数器数值 -1; 如果计数器数值为0就说明对象不可能再被使用。这种方法实现简单,判定的效率也很高,但是目前主流的Java虚拟
2017-04-25 23:59:17 318
原创 2017-4-18 去哪儿 南京面试(一面 挂)
面试地点是在南京。总结一下应该是自己没有准备好。我:一上来面试官让我自我介绍,我简单说了点然后说自己看了点JVM虚拟机和内存管理的知识买了本虚拟机的书准备好好学习一下。 面试官:学了多少了? 我:我画个图给你看下吧。 面试官同意了。 然后我把JVM虚拟机从线程私有到线程共享、JVM虚拟机栈,本地方法栈,程序计数器,Java堆,方法区这几个的作用和什么时候发生OOM什么时候发生SOF等
2017-04-18 15:54:19 717 1
转载 Java 中的Synchronized解析
感谢作者写出此文解惑。原帖地址:http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.htmlJava语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执
2017-04-13 20:31:21 272
转载 计算机网络之面试常考
整理一下计算机网络部分的面试常考点,参考书籍:《计算机网络》第五版 谢希仁的那本,希望对大家有所帮助 OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。 五层协议 (5层):物理层、数据链路层、网络层
2017-04-09 15:28:19 257
转载 Java中的String对象为什么是不可变的?
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者, 对于Str
2017-04-09 15:00:12 765 1
转载 Java中的try-catch-finally-return的执行顺序
1、try块中没有抛出异常,try、catch和finally块中都有return语句12345678910111213141516public static int NoException(){ int i=10; try{ System.out.println("i in try block is:"+i); return
2017-04-09 14:56:37 390
原创 Java 解析XML文档(DOM & SAX)
要处理XML文档,就要像解析(parse)。就要用到解析器。 解析器的工作原理是这样的:它读入一个文件,确认这个文件具有正确的格式,然后将其分解成各种元素,使得程序员能够访问这些元素。Java库提供了两种XML解析器:像文档对象模型解析器(Document Object Model,DOM),这样的树形解析器,它将读入的XML文档转换成树形结构。像XML简单API解析器(Simple API
2017-04-09 00:05:25 588
原创 Java中的垃圾回收机制
垃圾回收机制及其意义Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数据结构的一般情况下
2017-04-08 15:40:24 390
转载 Java 中的 JVM 工作原理以及流程
作为一名Java使用者,掌握JVM的体系结构也是必须的。说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被
2017-04-08 10:50:33 3267
原创 Androdi中的SQLite数据库介绍
Android中的SQLite数据库这部分内容其实我不是很想写,主要是太多了,而且写出来怕不够详细。Android中的数据存储和IO有很多的内容,三言两语怎么说得完。。。好吧我就是比较懒。。。SQLite作为Android中提供的一个轻量型数据库有很多自身的特点:开源!写在第一个,最大的优点好吧。跨平台,去哪儿都能用!弱类型的字段,哈哈哈这个后面会说到,就是在同一列中的数据可以是不同类型的。
2017-04-05 21:30:31 256
原创 Android 如何从SD卡中读取数据?
现在的Android在SD卡上的文件需要用到专门的方法来读取。之前提到的FileInputStream不好用,我们下面会提到,所以写了两个方法来实现在SD卡上存取数据。首先你需要在AndoridMainfest.xml中添加权限SD卡中的创建和删除文件权限<user-permission android:name="android.permission.MOUNT_ONMOUNT_FILESYST
2017-04-05 11:32:26 5860 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人