- 博客(157)
- 资源 (2)
- 收藏
- 关注
原创 [干货] Flume综述与实例
Flume是一个分布式的、可靠的数据收集、集合和移动的组件。基于流式数据模型,非常健壮、支持容错、故障转移等特性。本用实例辅助说明Flume的大部分核心概念。 安装FLumeFlume的安装非常简单,其核心就是agent。从官网下载稳定版本:wget http://apache.fayea.com/flume/1.6.0/apache-flume-1.6.0-b
2016-07-23 17:19:49 3622
原创 理解YARN Scheduler
在YARN中,资源调度器(Scheduler)是ResourceManager中的重要组件,主要负责对整个集群(CPU,内存)的资源进行分配和调度,分配以资源Container的形式分发到各个应用程序中(如MapReduce作业),应用程序与资源所在节点的NodeManager协作利用Container完成具体的任务(如Reduce Task)。Scheduler以可插拔的形式来配置,框架默认提
2016-07-23 02:02:46 3090 2
转载 8个SQL-on-Hadoop框架
数据的操作语言是SQL,因此很多工具的开发目标自然就是能够在Hadoop上使用SQL。这些工具有些只是在MapReduce之上做了简单的包装,有些则是在HDFS之上实现了完整的数据仓库,而有些则介于这两者之间。这样的工具有很多,来自于Shoutlet的软件开发工程师Matthew Rathbone最近发表了一篇文章,他列举了一些常
2016-07-22 13:30:48 1069
原创 Java实现GroupBy/分组TopN功能
介绍在Java 8 的Lambda(stream)之前,要在Java代码中实现类似SQL中的group by分组聚合功能,还是比较困难的。这之前Java对函数式编程支持不是很好,Scala则把函数式编程发挥到了机制,实现一个group by聚合对Scala来说就是几行代码的事情:val birds = List("Golden Eagle","Gyrfalcon", "American Robin"
2016-07-21 22:15:01 13830 2
原创 Hadoop HDFS高可用(HA)
版本记录:2016-07-19 凌晨 初稿在Hadoop 1.x 中,Namenode是集群的单点故障,一旦Namenode出现故障,整个集群将不可用,重启或者开启一个新的Namenode才能够从中恢复。值得一提的是,Secondary Namenode并没有提供故障转移的能力。集群的可用性受到影响表现在:当机器发生故障,如断电时,管理员必须重启Namenode才能恢复可用。在日常的维护升级
2016-07-19 09:18:05 5947 2
原创 MapReduce shuffle过程剖析及调优
MapReduce简介在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的。数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问题,并提供了很多配置项及扩展点。一个MapReduce的大致数据流如下图:更详细的MapReduce介绍参考Hadoop MapReduce原理与实例。Mapper的
2016-07-18 01:48:03 16115 1
原创 Hadoop MapReduce原理及实例
MapReduce是用于数据处理的一种编程模型,简单但足够强大,专门为并行处理大数据而设计。1. 通俗理解MapReduceMapReduce的处理过程分为两个步骤:map和reduce。每个阶段的输入输出都是key-value的形式,key和value的类型可以自行指定。map阶段对切分好的数据进行并行处理,处理结果传输给reduce,由reduce函数完成最后的汇总。例如从大量历史数据中找出往年
2016-07-16 22:14:53 40075 9
原创 深入理解HDFS:Hadoop分布式文件系统
文本详细介绍了HDFS中的许多概念,对于理解Hadoop分布式文件系统很有帮助。1. 介绍在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一是如果保证在节点不可用的时候数据不丢失。传统的网络文件系统(NFS)虽然也称为分布式文件系统,但是其存在一些限制。由于
2016-07-15 22:33:44 55862 8
原创 HDFS安全模式详解
什么是安全模式安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整个系统达到安全标准时,HDFS自动离开安全模式。如果HDFS出于安全模式下,则文件block不能进行任何的副本复制操作,因此达到最小的副本数量
2016-07-13 21:07:41 17402 2
原创 Hadoop集群搭建详细步骤(2.6.0)
本文记录在3台物理机上搭建Hadoop 2.6.0的详细步骤及碰到的问题解决。默认使用root账号操作,实际中建议使用专用的hadoop用户账号。1. 环境机器: 物理机3台,ip分别为192.168.1.130、192.168.1.132、192.168.1.134 操作系统: CentOS 6.6 Java: 1.7 Hadoop: 2.6.0请确保JDK已安装,使用java -versi
2016-07-12 22:38:05 22834 1
原创 Elasticsearch集群搭建及Python交互
本文记录Elasticsearch物理集群的安装步骤,在3台机器上部署一个集群。行文顺序为整个安装过程从头到尾,期间发现不少问题。因此,本文不适合一步步跟着做,建议您看完整篇文章,然后再开始搭建集群。1 . 环境机器: 3台物理机器,分别为130,132,134操作系统:CentOS 6.6Elasticsearch: 2.3.3 版本确保安装相应版本JDK,使用java -v
2016-07-12 17:50:10 6610 1
原创 理解Hadoop YARN架构
1. 介绍YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。 其核心出发点是为了分离资源管理与作业调度/监控,实现分离的做法是拥有一个全局的资源管理器(ResourceManager,RM),以及每个应用程序对应一个的应用管理器(ApplicationMaster,AM),应用程序由一个作业(Job)或者Job
2016-07-11 18:53:55 16173 2
原创 Eclipse导入导出Preference配置文件
Eclipse工作空间中的一些常用配置,例如字体配置,编码方式配置,代码自动提示,代码模板等。在新建工作空间事,如果一一重新配置,耗时耗力。使用导入导出可以解决这个问题。导出在已配置好的工作空间中,选择File->Export->General->Preferece:选中Export all或者根据需要选择导出的内容,导出保存为.epf结尾的文件。导入上一步导出配置文件后,在新建的工作空间中,Fil
2016-07-11 12:30:14 6062
原创 Redis安装步骤
本文详细介绍Redis的安装步骤。安装环境操作系统: Centos 6.4 ( cat /etc/redhat-release) Redis: 3.0.7下载编译从Redis官网下载:wget http://download.redis.io/releases/redis-3.0.7.tar.gz解压:tar -zxvf redis-3.0.7.tar.gzcd redis-3.0.7编译:mak
2016-07-11 00:18:17 763
原创 Hadoop单机安装详细步骤
环境准备安装Java过程简单,这里省略具体安装步骤。安装后确认相应版本的Java已安装,这里选择1.7。java -version创建Hadoop账号为Hadoop创建一个专门的账号是很好的实践:sudo adduser hadoopsudo passwd hadoop授予 Hadoop root权限 为了测试,图方便,这里给Hadoop root权限,生产环境不建议这样做。 使用root权限
2016-07-11 00:03:12 8485 1
原创 JAX-RS基本概念理解
JAX-RS,全称为Java API for RESTful Web Services.的核心概念是resource,即面向资源。JAX-RS的JavaDoc可以在这里找到。 JAX-RS的标准可以在这里找到。1. Root Resource Classes满足下列2个条件的POJO类被称为Root Resource Class:使用@Path注解至少有一个方法使用@Path或者资源方法注解(
2016-07-08 22:50:51 6237 1
原创 Greenplum简介
Greenplum: http://greenplum.org/ 原来是个商业产品,后来开源。从Slogan看:是个数据库着眼于数据仓库主要在于大规模并行基于强大的PostgreSQL,PostgeSQL提供了诸如表空间、外部表等功能,支持丰富的数据类型(包含key-value,JSON,XML,GIS,甚至支持各种集合图形的表示)。其中的FDW外部表是一个非常强大的功能,可以直接将外部文
2016-07-07 18:55:59 4860
原创 Docker安装Tomcat
下载Tomcat镜像:docker pull tomcat启动tomcat容器: docker run -it --rm tomcat查看容器IP:docker inspect --format='{{.NetworkSettings.IPAddress}}' 1386c105c56d最后一个参数是容器id,可以通过docker ps 命令获取。拿到ip后,就可以通过8080端口访问了:curl 1
2016-07-07 00:34:27 829
原创 Docker-入门
简介https://www.docker.com/Docker: world’s leading software containerization platform*.VM vs. Docket:Docker基于LXC(Linux容器),在LXC的基础上进一步封装,使得操作更简单,就像操作一个轻量级的虚拟机一样。相比虚拟机的优势:启动更快,可以在秒级启动对系统的资源利用率更高(在内核级别进行虚
2016-07-06 23:55:38 1169
原创 Linux容器LXC-入门
LXC: Linux Container。 LXC允许你在宿主操作系统内的容器运行应用。容器在网络、行为等方面都与宿主OS都隔离。LXC与虚拟化类似,但是有一些关键的不同点:虚拟化模拟硬件和操作系统,但是LXC只模拟操作系统,因此更轻量级、速度更快。LXC的仿真(模拟)是通过Linux内核的cgroups和namespaces来实现的,因此LXC只能模拟基于Linux系的操作系统.cgr
2016-07-06 18:22:28 5158 1
原创 IDEA MyBatis插件安装及使用
IDEA中的MyBatis Plugin已经由开源转向收费了,想使用这个插件,只能使用破解版。如果版本是IDEA 15的,可以从这里下载。下载之后,从IDEA的plugins安装界面中,选择从磁盘安装: 安装后重启,在项目resources目录下创建一个配置文件: 配置完成后选中配置文件右键:Run as MyBatis Generator 注意的是,IDEA无法自动生成package,因此在
2016-07-06 12:22:39 5823
原创 免费的Gif制作工具-录屏、录像
网上经常看到一些很好的动画演示图,但是如果刚好不是GIF动态图,这时候可以自己动手制作GIF。 这里介绍的ScreenToGif功能非常强大,支持录屏,摄像头录像、涂鸦录像等方式。并且编辑功能非常强大,中文支持。你可以从CSDN或者英文官网免费下载。需要注意的一个问题是,这个工具在你使用多个显示器的时候无法正常工作,会出现什么都看不到的情况。因此需要在单显示器上使用。下面是一些截图:
2016-07-06 09:38:36 767
原创 ReactiveX-入门篇
ReactiveX简介: An API for asynchronous programming with observable streams。分解一下这个句子:API: 首先它是个编程接口,不同语言提供不同实现。例如JVM语言中的RxJava。For asynchronous programming: 使用场景,异步变成环境中。With observable streams: 基于可
2016-07-06 09:23:28 8777 1
原创 领域驱动设计-笔记
本文整理自《DDD quickly》中文版,你可以在这里下载到免费的PDF版本。简介兴趣驱动: 我要在这个项目中使用苹果公司新推出的 Swift 编程语言,在服务器端要使用Hadoop,最好再尝试一下深度学习方面的技术”人月神话:强调软件开发的概念完整性。DDD(领域驱动设计)是维护软件概念完整性的良药。Evans:衡量一种技术好坏的最终标准,是这种技术是否有助于开发人员专注于研究领域问题。需
2016-07-05 15:04:06 3540
原创 MySQL CASE表达式
MySQL CASE表达式是一个流程控制结构,用在在SELECT、WHERE等语句中根据条件动态构造内容。2种MySQL CASE格式MySQL的CASE表达式有2中形式,一种更像是编程语言当中的CASE语句,拿一个给定的值(变量)跟一系列特定的值作比较,我称之为CASE类型。另一种则更像是编程语言中的if语句,当满足某些条件的时候取特定值,我称之为IF类型。CASE类型此类型的语句结构如下:CAS
2016-07-04 18:19:46 1529
原创 Phoenix资源列表
官网: https://phoenix.apache.orgPresentations: https://phoenix.apache.org/resources.html
2016-07-04 16:14:32 740
翻译 15分钟了解Phoenix
关于Phoenix:OLTP and operational analytics for Apache HadoopPhoenix is an open source SQL skin for HBase. We put SQL back in NoSQL以下部分翻译自:https://phoenix.apache.org/Phoenix-in-15-minutes-or-less.html
2016-07-04 12:55:00 1329
原创 PostgreSQL笔记整理
前言本文作为PostgreSQL的笔记整理,后续可能根据特定模块拆分独立的文章。目前只给出目录,后续持续更新。第一章、 基础知识1.1 如何获得PostgreSQL1.2 管理工具1.3 PostgreSQL数据库对象1.4 新特性1.5 数据库驱动第二章、数据库管理2.1 配置文件2.2 连接管理2.3 角色2.4 创建database2.5 权限管理2.6 扩展包机制2.7 备份与恢复2.8 基
2016-07-03 22:23:23 1056
原创 CentOS安装PostgreSQL 9.4
本文描述在CentOS 6.6中安装PostgreSQL 9.4的步骤。安装:rpm -ivh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpmyum install postgresql94-server安装后查看状态:service postgresql-9.4 status状态为s
2016-06-30 00:27:19 1012
原创 MyBatis缓存配置
Mybatis二级缓存配置在很多场合中需要用到数据库缓存。 此文档简单描述如何在spring + mybatis场合下配置缓存。1. Mybatis缓存简介Mybatis提供功能强大的缓存机制。缓存共可以分为两类:一级缓存和二级缓存。一级缓存是SqlSession级别的,二级缓存为整个应用级别,即一个数据源级别。缓存的具体实现可以有以下几种方式:[x] Mybatis内置的缓存实现[x] 扩展自
2016-06-29 17:47:31 2793
原创 mysql-proxy安装及配置
在本文描述在CentOS下安装mysql代理mysql-proxy的步骤。安装查询yum相关信息:yum info mysql-proxy安装: yum install mysql-proxy完毕后查看状态:service mysql-proxy status查看安装位置:whereis mysql-proxy配置编辑配置文件:vim /etc/mysql-proxy.cnf主要配置: 1)代理
2016-06-29 08:30:17 3129 1
原创 PostgreSQL特殊语法
本文整理了一些PostgreSQL相对于标准SQL或者MySQL的一些特殊语法。LimitPG:limit nlimit n offset mMySQL:limit n limit m,nLike/ILIKE:提供的一个扩展ILIKE:同LIKE,只是不区分大小写。 符号表示: LIKE: ~~ ILIKE: ~~ * NOT LIKE: !~~ NOT ILIKE: !
2016-06-29 08:20:15 2718
原创 MySQL分页性能优化
在对大表进行分页时,如果在服务端实现分页,大多数情况采用SQL的limit语法来实现。但是当页数越来越大时,性能很可能成为问题,尤其是需要查询表的所有字段。1. 索引与非索引字段在查询的结果集中,如果只包含索引字段,性能相比于包含非索引字段,差别很大。下面是一个简单的例子,在大约50w行的表上操作:只查询索引id字段SELECT id FROM test.bas_tablelimit 400000
2016-06-27 12:41:38 964
原创 SpagoBI数据库连接超时问题解决
在使用SpagoBI过程中,发现如果一段时间没有使用,再次登录系统的时候总会出现错误,后台日志如下:按照日志建议,在Tomcat的conf/server.xml中数据源配置autoReconnect=true, 问题依然存在。经过无数番折腾之后,守得云开见月明,有效解决方案如下: 修改conf/server.xml中的数据源配置:<Resource name="jdbc/spagobi" aut
2016-06-23 14:14:47 1414
原创 CentOS安装7z工具
步骤命令如下:wget http://nchc.dl.sourceforge.net/sourceforge/p7zip/p7zip_4.65_src_all.tar.bz2tar -jxvf p7zip_4.65_src_all.tar.bz2cd p7zip_4.65makemake install 问题解决make过程如果遇到【g++:command not found】的问题,参考这个解决方
2016-06-23 14:05:21 1210
原创 MySQL同步数据
MySQL dump工具用于导出现有数据,导出结果为SQL文件 目前dump工具支持整库dump以及单表dump。下面为单表dump操作过程:1) 选择导出目标目录确保该目录有足够的存储空间。mkdir /opt/bas_backup2)使用mysqldump命令导出表数据:mysqldump -u user-h host -P port-p schema-name table-name> /op
2016-06-23 13:57:46 1754
原创 MySQL远程导入/同步数据
在MySQL中,大表同步或者数据复制,可以使用mysqldump工具导出,然后使用mysql source命令导入。该方法的前提是能够访问到MySQL所在的机器,导出的SQL文件需要上传到目标机器。具体方法参考MySQL单表同步数据这篇文章.但是当使用云服务RDS时,往往无法访问到目标主机,这时候还可以使用如下方式: 首先使用mysqldump导出表(表结构和数据)。然后在导出数据的机器或者其他机
2016-06-23 13:42:46 2046
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人