- 博客(56)
- 资源 (19)
- 收藏
- 关注
原创 Xmind在项目管理中运用
XMind与任务管理XMind提供了有效的管理工具,但是表现还并不是十分完美。一般我们用它来画思维导图,系统的整体组织结构图(垂直模块划分),流程图等。从2012版本之后增加了许多功能,现在xmind也非常适合用于项目管理,比如新增项目任务,给任务设置优先级,目前任务的完成情况跟踪等,而且还能够提供任务之间的关联关系,比如A任务完成之后才能开始B任务,用xmind也能很
2017-08-30 17:07:53 4876 1
转载 Shell脚本中各种括号用法
一、小括号,圆括号()1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了(cmd)结构,便将(cmd)结构,便将(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原
2017-08-28 20:15:16 3071
转载 Hive中的join操作原理和优化
Hive是基于Hadoop平台的,它提供了类似SQL一样的查询语言HQL。有了Hive,如果使用过SQL语言,并且不理解Hadoop MapReduce运行原理,也就无法通过编程来实现MR,但是你仍然可以很容易地编写出特定查询分析的HQL语句,通过使用类似SQL的语法,将HQL查询语句提交Hive系统执行查询分析,最终Hive会帮你转换成底层Hadoop能够理解的MR Job。对于最基本的HQ
2017-08-27 20:19:22 1805 2
原创 官方jdbc方式访问hive服务器
说明Hive某种意义上来说是一个数据库,也叫做数据仓库,只不过数据最终存储在hdfs上。而且sql最终都被翻译成mapreduce而已,当然查询效率也因此比较低。比较适合数据分析场合,实时性要求不高。访问hive客户端方式很多种,今天说一下jdbc方式访问hive。为了更好表达官网使用原意义,在这里代码部分只做红色备注,但是不做翻译。这样会更加准确。实战JDBCTh
2017-08-27 20:06:35 2329
原创 hive安装和shell交互全步骤
准备好服务器,Hive只在一个节点上安装即可。主机环境windows+虚拟机Linux详细步骤:1.官网下载hive的压缩包,这里是hive-0.12.tar.gz,上传tar包到linux服务器。2.安装和配置文件tar -zxvf hive-0.9.0.tar.gz -C /home/hadoop/app/ 可以看到hive-0.12文件夹,
2017-08-27 19:45:34 2470
原创 mapreduce去掉重复行
思想mapreduce可以分为map和reduce两个过程,我们知道最终结果是reduce输出的k,v中的k一定不是重复的,是排序合并之后的。我们就利用这一点在mapper阶段,不需要做任何事情,只要将输入value(一行内容)作为key输出到reduce即可。由于这里不做wordcount,所以可以写:context.write(value,NullWritable.get())。NullW
2017-08-26 20:49:20 3422
原创 Hive客户端调用的几种方式
hive命令指的是hive_home/bin/hive.sh,hive表示用来执行交互式查询和批量处理的脚本。hive可以直接敲hive命令进入interactive模式,也可以hive -e 执行简单命令或者hive -f 执行一个sql脚本文件。具体官方给出的用法如下:Hive Command Line OptionsTo get help, run "hive -H"
2017-08-26 20:21:34 7215 1
转载 Hbase的读写过程分析
Hbase各组件作用:Zookeeper 保证任何时候,集群中只有一个HMaster; 实时监控HRegion Server的上线和下线信息,并实时通知给HMaster; 存储Hbase的schema和table元数据; HMaster需要知道哪些HRegionServer是活的,可用的。及HRegionServer的位置信息
2017-08-25 10:44:09 1333
原创 Java 访问Hbase数据库
须知Hbase数据最终是在hdfs上的,具体来说应该是在hdfs上一个叫做/hbase的目录下。具体结构如下:所以java访问Hbase其实就是访问hdfs,所以环境搭建跟hadoop开发环境使用没什么不同。实战部分1.导入需要的jar包,此处在java项目引入Hbase解压后lib目录下所有jar包即可。里面提供了访问Hbase的api接口,也有与hadoop集成的客户端
2017-08-25 10:13:11 5784
转载 Hbase基础理论部分
概述HBase是一个构建在HDFS上的分布式列存储系统;HBase是基于Google BigTable模型开发的,典型的key/value系统;HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;从逻辑上讲,HBase将数据按照表、行和列进行存储。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。H
2017-08-25 08:39:46 221
原创 Hbase伪分布式快速安装+shell简单访问
Hbase0.96快速安装过程(简化版)1.将hbase-0.96压缩包解压到app目录下。2.cd到app目录下,mv hbase-0.96 hbase修改名字,3.配置hbase环境变量,切换root用户下,修改#vi /etc/profile增加 export HBASE_HOME=/home/hbase修改 export PATH=$JAVA_HOME/bin
2017-08-24 20:23:48 881
原创 KNN分类算法java实现
最近邻分类算法思想KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:1)计算测试数据与各个训练数据之间的距离;2)按照距离的递增关系进行排序;3)选取距离最小的K个点;4)确定前K个点所在
2017-08-23 13:13:46 3296
原创 centos搭建Hadoop2.4伪分布式
题前话:之前博文写过Ubuntu下搭建Hadoop,今天在写一篇centos下面Hadoop下伪分布式的安装。其实Ubuntu和Centos是两个不同的linux发行版本而已,但是操作系统也有一些差异,一些配置文件修改等都有所不同。正文(详细搭建步骤)正式搭建包括VMware虚拟机安装,操作系统centos安装都省略,主要针对hadoop的安装和配置。vmware安装比较简单,一步
2017-08-23 12:49:09 787
原创 Socket网络编程和HTTP网络应用编程的比较
题前话:平时我们指的web编程都是开发基于http应用的web项目,通过浏览器访问符合http协议的网页和应用。那java中提供的可以不用通过浏览器访问网络另一端的应用是什么呢,不用http,用到的是Socket编程。据说这东西是基于tcp或者udp协议的,编程也不复杂,原因就在于socket是java做好的一套接口,我们只需要调用,访问底层的tcp协议栈就能得到数据包的字节流,二者具体对比请
2017-08-22 10:24:54 1702
原创 mahout最新版+hadoop2.4.1运行kmeans分布式算法
1、理论须知用过mahout和hadoop集成的朋友们,都经过很多折腾,mahout这个东西是包括了好多的机器学习算法,确实我们调用起来相当方便,毕竟我们不需要为了使用一个算法重新编码。但是mahout0.10之前都只能支持到hadoop1.x版本,所以大部分使用hadoop2.x的朋友,很苦恼,虽然网上各种办法,大都折腾的很,浪费时间且错误百出,鉴于此,将本人集成的成功案例分享给大家,少走弯
2017-08-20 21:30:13 3968
转载 Ubuntu下搭建Hadoop伪分布式
一、在Ubuntu下创建hadoop组和hadoop用户 增加Hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户。 1、创建hadoop用户组 2、创建hadoop用户 sudo adduser -ingroup hadoop hadoop 回车后会提示输入新的UNIX密码,这是新建用户hado
2017-08-18 16:11:16 2055
原创 java自定义实现rpc+hadoop对rpc的实现
1、RPC的基本模型RPC的基本通信模型是基于Client/Server进程间相互通信模型的一种同步通信形式;它对Client提供了远程服务的过程抽象,其底层消息传递操作对Client是透明的。在RPC中,Client即是请求服务的调用者(Caller),而Server则是执行Client的请求而被调用的程序 (Callee)。2、自定义RPC实现下面主要是通过socket来模拟rpc
2017-08-18 09:50:07 838
原创 Java远程服务调用协议对比
一、开篇Java中比较流行的远程服务调用协议有:RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议,当然RPC也是一种,不过和RMI有些类似,不同之处在于rmi只是适用于java语言,rpc跨语言的,另外就是在于方法是如何被调用的。在RMI中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远
2017-08-18 09:16:18 2624
原创 Spring的AOP开发实战和疑问解析
Spring AOP 面向切面编程什么是aop?Spring把横切式的应用,比如事务,日志等。单独抽出来,声明给某些目标对象,然后这些被声明过得对象就具有了该横切式应用能力,或者说会执行横切应用。理解上可以参照filter和interceptor。 概念:· 通知(Advice): 在切面的某个特定的连接点(Joinpoint)上执行的动作。通知有各种类型,其中
2017-08-17 09:10:22 1373
原创 JavaEE框架面试常问问题
1.简单的谈一下SpringMVC的工作流程?流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServ
2017-08-16 16:48:30 4456
转载 Java集合的读写分离术--CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。
2017-08-16 16:18:04 862
原创 dom4j结合xpath
第一步:引用jar包 dom4j-1.6.1.jar (http://www.dom4j.org/下载最新版) jaxen-1.1-beta-6.jar (http://jaxen.codehaus.org/ 这是官网,点击下载链接好像不行,可以去csdn) 支持XPath必须的,否则会报错Java.lang.NoClassDefFoundError: org/
2017-08-16 14:10:19 869
转载 Dom4j解析xml
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它. 对主流的java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Java
2017-08-16 13:30:18 249
原创 大话JVM虚拟机结构和垃圾回收
说起来,java最激动人心的技术应该是跨平台了,当这种优良的特性变成习惯时,我们不再对此津津乐道。但是好多java程序员都忽略了jvm另一大特性:自动垃圾回收。殊不知,这段内容有多么重要,对学习java具有指导意义。我们知道好多企业面试官喜欢问这方面的问题,什么是垃圾回收,如何jvm调优,如何设置jvm参数等等。下面就这方面知识阐述下拙见一、Java虚拟机运行时结构参见《java虚拟机规范》规定
2017-08-15 16:10:28 706
转载 Java NIO技术学习之三
在上一篇中介绍了缓冲区的原理,下面来介绍NIO中另一个核心对象选择器(Selector)以及NIO的原理。在Client/Server模型中,Server往往需要同时处理大量来自Client的访问请求,因此Server端需采用支持高并发访问的架构。一种简单而又直接的解决方案是“one-thread-per-connection”。这是一种基于阻塞式I/O的多线程模型。在该模型中,Server为每个
2017-08-15 11:31:12 6185
转载 Java NIO技术学习之二
在上一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道。本文为NIO入门学习的第二篇,将会分析NIO中的缓冲区Buffer的内部原理。在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。在缓冲区中,最
2017-08-15 11:30:18 5353
转载 Java NIO技术学习之一
本文为NIO入门学习的第一篇,将会介绍NIO中几个重要的概念。I/O即输入输出,指的是计算机和外界的接口,或者是单个程序同计算机其他部分的接口。 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统每次处理一个字节,输入流(input stream)生产一个字节,输出流(output stream)消费一个字节。这种工作模式下,非常容易给流数据创建过滤器(filters),而且也
2017-08-15 11:28:51 6057
原创 趣味入门之机器学习
官方定义:机器学习机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。案例:1.
2017-08-14 14:55:33 13832
原创 协同过滤算法在JavaEE项目中应用
基于用户的协同过滤算法UserCF基于用户的协同过滤,通过不同用户对物品的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐。简单来讲就是:给用户推荐和他兴趣相似的其他用户喜欢的物品。举例说明:基于用户的 CF 的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相
2017-08-14 11:47:35 8914
原创 Dubbo官方入门实例
概览Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点:自开源后,已有不少非阿里系公司在使用Dubbo,参见:已知用户那么,Dubbo是什么?Dubbo |ˈdʌbəʊ| 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程
2017-08-13 18:27:55 6465
转载 Google大数据三宝之MapReduce
江湖传说永流传:谷歌技术有”三宝”,GFS、MapReduce和大表(BigTable)!谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年OSDI的MapReduce,和06年OSDI的BigTable。SOSP和OSDI都是操作系统领域的顶级会议,在计算机学会推荐会议里属于A类。SOSP在单数年举办,而OSDI在双数年举办。那么这篇博客就来介绍一下Map
2017-08-13 15:15:19 6573
转载 Google大数据三宝之GFS
题记:初学分布式文件系统,写篇博客加深点印象。GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理。虽然”The Google File System “ 是03年发表的老文章了,但现在仍被广泛讨论,其对后来的分布式文件系统设计具有指导意义。然而,作者在设计GFS时,是基于过去很多实验观察的,并提出了很多假设作为前提,这等于给出了一个GFS的应用场景。所以我们自己在设计分布式系统时,一定要注意
2017-08-13 15:13:50 12081
转载 Google大数据论文三宝之BigTable
2006年的OSDI有两篇google的论文,分别是BigTable和Chubby。Chubby是一个分布式锁服务,基于Paxos算法;BigTable是一个用于管理结构化数据的分布式存储系统,构建在GFS、Chubby、SSTable等google技术之上。相当多的google应用使用了BigTable,比如Google Earth和Google Analytics,因此它和GFS、MapRedu
2017-08-13 15:10:27 16855
转载 通俗易懂掌握Bayes算法
生活中很多场合需要用到分类,比如新闻分类、病人分类等等。本文介绍朴素贝叶斯分类器(Naive Bayes classifier),它是一种简单有效的常用分类算法。一、病人分类的例子让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。某个医院早上收了六个门诊病人,如下表。 症状 职业 疾病 打喷嚏 护士 感冒 打喷嚏 农夫 过敏
2017-08-13 09:17:29 10859
转载 hdfs的高可用性HA
早期的hadoop版本,NN是HDFS集群的单点故障点,每一个集群只有一个NN,如果这个机器或进程不可用,整个集群就无法使用。为了解决这个问题,出现了一堆针对HDFS HA的解决方案(如:Linux HA, VMware FT, shared NAS+NFS, BookKeeper, QJM/Quorum Journal Manager, BackupNode等); 在HA具体实现方法不同的情况下
2017-08-11 11:19:54 13783
原创 对数据库设计的三大范式的理解
三大范式,停留在理论毫无作用,主要还是看在实际项目中如何灵活应用,说白了,范式是一种约束,要求我们设计数据库表时不能随心所欲,总得来说就两个原则:减少冗余和节省空间。但是,随着大数据时代的到来,不得不说,数据库设计也不能完全遵照范式,毕竟其效率还待商榷,尤其增加了错综复杂的表之间关系,使得空间节省了,但是查询效率不敢恭维。所以,以空间换时间的做法在一些企业屡见不鲜,有的公司直接不要外键,甚至直接有
2017-08-11 09:23:54 8510
转载 数据库设计的基本规范和原则
关键字: 数据库建表原则·1. 原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。〖例〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本
2017-08-11 09:03:52 4336
转载 Oracle分区表及分区索引
Oracle分区索引索引与表类似,也可以分区;分区索引分为两类:Locally partitioned index(局部分区索引)Globally partitioned index(全局分区索引)下面就来详细解析一下这两类索引。 一:Locally partitioned index(局部分区索引)1. 概念:局部分区索引随表对索引完成相应的分区(
2017-08-10 17:06:52 8888
原创 Linux虚拟机和主机三种网络连接方式
在介绍网络模式之前,关于网络的几个简单命令的使用(注意这几个命令针对Ubuntu)ifup eth0 //启动网卡eth0ifdown eth0 //关闭网卡eth0/etc/network/interfaces //网络配置文件/etc/init.d/networking //网络服务位置/etc/init.d/networking restart //重启网络/etc/resolv.c
2017-08-10 11:06:09 3805
原创 Linux的CentOS和Ubuntu安装软件命令对比
centos属于红帽系,软件管理是rpm,追求稳定,所有有些软件并不是最新的,而是最稳定的,更新升级慢(如果有严重bug也会快速升级),娱乐性不多,适合做服务器。老手喜欢。 Ubuntu(这里说的桌面,没说服务器版,一般人用不到)属于debian系,软件管理deb,apt-get,更新频繁,软件多,有自带商店,可以从商店里直接下载,界面友好,适合新手入门二者对比图(软件安装命令)
2017-08-10 10:19:51 16614
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人