Java海洋
从事JAVA 开发,大数据开发10多年,目前在一家互联网公司做技术负责人
展开
-
flume 性能优化
如图1所示,一个flume-ng agent主要包括source,channel和sink三部分,三部分运行在Java JVM中,JVM一般运行在linux'操作系统上,因此,这些因素都可能影响最终的性能。flume-ng性能优化与架构设计,简单来讲,也主要包括以上部分。1, 主键的参数设计1.1 source的配置有时候不需要每台主机均安装flume agent,可以和s转载 2016-09-22 14:26:39 · 3064 阅读 · 0 评论 -
多数据中心kafaka,flume使用情况
作为互联网公司,网站监测日志当然是数据的最大来源。我们目前的规模也不大,每天的日志量大约1TB。后续90%以上的业务都是需要基于日志来完 成,之前,业务中对实时的要求并不高,最多也就是准实时(延迟半小时以上),因此,我们使用Flume将数据收集到HDFS,然后进行清洗和分析。后来,根据业务需要,我们有了两个Hadoop集群,并且部署在不同的地方(北京和西安),而所有的日志收集服务器在北京,转载 2016-06-22 13:47:14 · 3453 阅读 · 1 评论 -
Flume学习(一)Flume初始
一、FLUME介绍Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。设计目标:(1) 可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数转载 2014-10-15 10:57:48 · 8741 阅读 · 1 评论 -
flume的source, channel, sink 列表
Flume SourceSource类型说明Avro Source支持Avro协议(实际上是Avro RPC),内置支持Thrift Source支持Thrift协议,内置支持Exec Source基于Unix的command在标准输出上生产数据JMS Source从JMS系原创 2016-05-09 17:44:16 · 2577 阅读 · 0 评论 -
本机连接Kafka超时错误信息的解决办法
[kafka-producer-network-thread | producer-1] ERROR com.zlikun.mq.ProducerTest - send error !org.apache.kafka.common.errors.TimeoutException: Expiring 2 record(s) for zlikun_topic-3: 30042 ms has pass原创 2017-06-16 20:51:37 · 35462 阅读 · 4 评论 -
kafka原理分析
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的应用以及发展,“Kafka剖析”专栏将会从架构设计、实现、应用场景、性能等方面深度解析Kafka。背景介绍Kafka创建转载 2016-05-11 15:25:41 · 4244 阅读 · 0 评论 -
Storm学习(一)Storm介绍
场景伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高。举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计这个大哥就要骂娘了。再举一个推荐的例子,如果用户昨天在淘宝上买了一双袜子,今天想买一转载 2014-10-31 11:09:19 · 4697 阅读 · 1 评论 -
HBase总结(十五)HBase数据恢复
每个HRegionServer中都会有一个HLog对象,HLog是一个实现Write Ahead Log的类,每次用户操作写入Memstore的同时,也会写一份数据到HLog文件,HLog文件定期会滚动出新,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知,HMaster首先处理遗留的HLog文件,将不同原创 2014-10-14 11:10:43 · 5057 阅读 · 0 评论 -
HBase总结(二十)HBase常用shell命令详细说明
进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户hbase(main)>whoami表的原创 2014-12-23 11:49:24 · 7793 阅读 · 0 评论 -
Hbase总结(四)- Hbase与传统数据库的区别
在说HBase之前,我想再唠叨几句。做互联网应用的哥们儿应该都清楚,互联网应用这东西,你没办法预测你的系统什么时候会被多少人访问,你面临的用户到底有多少,说不定今天你的用户还少,明天系统用户就变多了,结果您的系统应付不过来了了,不干了,这岂不是咱哥几个的悲哀,说时髦点就叫“杯具啊”。其实说白了,这些就是事先没有认清楚互联网应用什么才是最重要的。从系统架构的角度来说,互联网应用更加看重系统性转载 2014-10-08 11:09:13 · 65035 阅读 · 14 评论 -
Hbase总结(十)Hhase性能调优
因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果。所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正。配置优化zookeeper.session.timeout默认值:3分钟(180000ms)说明:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonSe原创 2014-10-11 15:12:38 · 6402 阅读 · 1 评论 -
HBase总结(十六)HBase原理讲解
前提是大家至少了解HBase的基本需求和组件。从大家最熟悉的客户端发起请求开始讲起吧,这样大家能够深有体会的逐步了解原理。比如我们发起了一条PUT请求,客户端首先需要查找到需要响应请求的REGIONSERVER。 记录region->regionserver映射是由HBASE系统表.META.记录的。所以我们只要知道. META.表的位置就能知道每个region响应的key的范围 和r转载 2014-10-14 15:36:23 · 5313 阅读 · 0 评论 -
HBase phoenix二级索引
1. 为什么需要用二级索引?对于HBase而言,如果想精确地定位到某行记录,唯一的办法是通过rowkey来查询。如果不通过rowkey来查找数据,就必须逐行地比较每一列的值,即全表扫瞄。对于较大的表,全表扫描的代价是不可接受的。但是,很多情况下,需要从多个角度查询数据。例如,在定位某个人的时候,可以通过姓名、身份证号、学籍号等不同的角度来查询,要想把这么多角度的数据都放到rowkey中几乎转载 2017-02-17 17:52:37 · 5614 阅读 · 1 评论 -
HBase总结(十九)数据导入方式
*). Client API实现借助HBase的Client API来导入, 是最简易学的方式.Configuration config = HBaseConfiguration.create(); // 配置hbase.zookeeper.quorum: 后接zookeeper集群的机器列表 config.set("hbase.zookeeper.quorum", "tw-nod转载 2014-12-09 21:55:28 · 17431 阅读 · 0 评论 -
Hbase总结(五)-hbase常识及habse适合什么场景
当我们对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,如果我们使用的传统数据库,肯定留有多余的字段,10个不行,20个,但是这个严重影响了质量。并且如果面对大数据库,pt级别的数据,这种浪费更是严重的,那么我们该使用是什么数据库?hbase数个不错的选择,那么我们对于hbase还存在下列问题:1.Column Family代表什么?原创 2014-10-08 15:38:53 · 61473 阅读 · 6 评论 -
HBase总结(十四)LINUX下用Eclipse构建HBase开发环境
1:从HBase集群中复制一份Hbase部署文件,放置在开发端某一目录下(如在/app/hadoop/hbase096目录下)。2:在eclipse里新建一个java项目HBase,然后选择项目属性,在Libraries->Add External JARs...,然后选择/app/hadoop/hbase096/lib下相关的JAR包,如果只是测试用的话,就简单一点,将所有的JAR选上。原创 2014-10-13 17:39:10 · 6208 阅读 · 0 评论 -
HBase总体介绍
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; //循环遍历map的方法 public class CircleMap原创 2012-02-22 17:57:59 · 6203 阅读 · 1 评论 -
HBase开发错误记录(一):java.net.UnknownHostException: unknown host: master
windows下开发HBase应用程序,HBase部署在linux环境中,在运行调试时可能会出现无法找到主机,类似异常信息如下:java.net.UnknownHostException: unknown host: master解决办法如下:在C:\WINDOWS\system32\drivers\etc\hosts文件中添加如下信息:192.0.0.1 ma原创 2014-11-06 14:48:49 · 16943 阅读 · 4 评论 -
HBase总结(十一)hbase Java API 介绍及使用示例
问题导读1.java api与数据模型是如何对应的?2.那两个类与HBase数据库有关系?3.HTable可以用来做什么?4.如何添加列族、列、列值?5.hbase查询有几种方式?几个相关类与HBase数据模型之间的对应关系java类HBase数据模型HBaseAdmin数据库(DataBa原创 2014-10-11 17:24:53 · 79871 阅读 · 1 评论 -
Hbase总结(三)-Hbase与Hive的区别与联系
本帖最后由 howtodown 于 2014-5-27 02:48 编辑问题导读:hive与hbase的底层存储是什么?hive是产生的原因是什么?habase是为了弥补hadoop的什么缺陷?共同点:1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储区别:2.Hive是建立在Hadoop之上为了减少Ma原创 2014-10-08 09:28:05 · 10938 阅读 · 0 评论 -
Hbase总结(一)-hbase命令
下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:名称命令表达式创建表create '表名称', '列名称1','列名称2','列名称N'添加记录 put '表名称', '行名称', '列名称:', '值'查看记录原创 2014-10-07 15:51:04 · 6727 阅读 · 0 评论 -
HBase0.98.0入门
1.比较不错的HBase0.98.0入门地址:http://my.oschina.net/vigiles/blog/215885#OSC_h2_122.HBase增删改查基础:http://javacrazyer.iteye.com/blog/1186881原创 2015-03-06 18:03:51 · 3010 阅读 · 0 评论 -
hbase总结(二)-hbase安装
本篇介绍两种HBase的安装方式:本地安装方式和伪分布式安装方式。安装的前提条件是已经成功安装了hadoop,而且hadoop的版本要和hbase的版本相匹配。我将要安装的hbase是hbase-0.94.11版本,需要的hadoop是hadoop-1.2.1版本。hbase下载地址:http://mirror.bit.edu.cn/apache/hbase/hbase-0原创 2014-10-07 22:18:32 · 10846 阅读 · 0 评论 -
HBase总结(十二)Java API 与HBase交互实例
HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要原创 2014-10-11 17:37:41 · 45675 阅读 · 8 评论 -
Hbase总结(八)Hbase中的Coprocessor
1.起因(Why HBase Coprocessor)HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。比如,在旧版本的(统计数据表的总行数,需要使用Counter方法,执行一次MapReduce Job才能得到。虽然HBase在数据存储层中集成了MapReduce,能够有效用于数据表的分布式计算。然而在很多情况下,做一些简单原创 2014-10-11 11:28:33 · 38046 阅读 · 3 评论 -
Hbase总结(六)hbase37个笔试题
以下试题是摘自互联网的基础上自己加了选项说明解释便于自己以后看时方便节省时间1. HBase来源于哪篇博文? CA The Google File SystemB MapReduceC BigTableD Chubby2. 下面对HBase的描述哪些是正确的? B、C、DA 不是开源的B 是面向列的C 是分布式原创 2014-10-10 15:05:55 · 43898 阅读 · 3 评论 -
HBase总结(七)LSM理解
讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来:哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是your Mr.RightB树存储引擎是B树(关于B树的由来转载 2014-10-10 15:11:55 · 12101 阅读 · 0 评论 -
HBase总结(十三)HBase Shell 常用命令及例子
下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:名称命令表达式创建表create '表名称', '列名称1','列名称2','列名称N'添加记录 put '表名称', '行名称', '列名称:', '值'原创 2014-10-13 11:30:56 · 66034 阅读 · 4 评论 -
HBase总结(九)Bloom Filter概念和原理
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,Bloom转载 2014-10-11 11:50:22 · 9363 阅读 · 0 评论 -
HBase总结(十八)Hbase rowkey设计一
hbase所谓的三维有序存储的三维是指:rowkey(行主键),column key(columnFamily+qualifier),timestamp(时间戳)三部分组成的三维有序存储。1.rowkey,我们知道rowkey是行的主键,而且hbase只能用个rowkey,或者一个rowkey范围即scan来查找数据。所以 rowkey的设计是至关重要的,关系到你应用层的查询效率。我们知道原创 2014-10-30 15:53:24 · 41703 阅读 · 6 评论 -
使用Sqoop把Oracle表导入Hive
安装环境:Hive: hive-0.11.0Hadoop: Hadoop 1.2.1Sqoop: sqoop-1.4.4.bin__hadoop-1.0.0Oralce driver: ojdbc6.jar 软件下载:Hive: http://apache.dataguru.cn/hive/Hadoop: http://apache.转载 2014-11-01 21:47:54 · 2947 阅读 · 0 评论 -
Zookeeper应用详解记录
引子云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群。服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点?并且保证信息的一致性和可靠性?众所周知,分布式协调服务很难正确无误的实现,它们很容易在竞争条件和死锁上犯错误。如何在这方面节省力气?Zookeeper是一个不错的选择。Zookeeper原创 2014-06-22 22:06:34 · 6737 阅读 · 0 评论 -
大数据和统计的区别
大数据和统计的区别主要有两个方面:其一是数据分析时不再进行抽样,而是采用population(n=all);其二是分析方法,侧重所有变量之间的相关性,而不再根据背景学科理论筛选变量,进行假设检验。这两点具体来说区别如下:大数据的应用,解决了一般统计方法上主要误差来源:抽取样本以及假设检验中使用的前提假设。一般统计方法中依据的中值定理和大数定律阐明我们可以通过增大样本容量,且原创 2016-04-07 14:01:06 · 11509 阅读 · 0 评论 -
eclipse window下连接Hadoop2.0报错:local host is: "win/127.0.0.1"; destination host is: "10.2.3.1":50070;
eclipse连接远程Hadoop错误信息:Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.; Host Details : local host is:原创 2016-04-19 20:17:07 · 9491 阅读 · 2 评论 -
ambari动态添加删除节点
在运行中的ambari hadoop集中中动态添加或删除节点1. 下线节点1) namenode节点上dfs.exclude文件,看配置文件怎么配置的,里每行添加一个服务器名,如我要下线server7,server8,server9,则如下:server7server8resourcemanager节点上yarn.exclude文件里每行添加一个服务器名,如我要下线se转载 2016-06-15 16:59:20 · 6253 阅读 · 0 评论 -
ambari安装Hadoop总结
1. namenode hostname 不能有下划线,否则识别不了,要卸载重新安装,安装文件可以不删,要卸载2.单个数据节点并无数据量的限制,整个集群能存多少数据取决于名称节点的内存有多大,所存储的单个文件的大小取决于整个集群所有数据节点的存储容量之和有多大可以通过配置 $HADOOP_HOME/conf/hdfs-site.xml 文件里的 dfs.datanode.du.re原创 2016-06-15 17:25:12 · 2607 阅读 · 0 评论 -
手动增加Journal Node节点
以hadoop用户执行以下操作:1.修改etc/hadoop/hdfs-site.xml,在dfs.namenode.shared.edits.dir 配置项中增加相应的新的journal的地址和端口.2.把etc/hadoop/hdfs-site.xml分发到集群中各服务器.3.把现有journal中的数据目录拷贝到新journal服务器.4.在新journal服务器中执行had原创 2016-08-26 16:50:17 · 6577 阅读 · 0 评论 -
hadoop 四种压缩格式
1 gzip压缩优点:压缩率比较高,而且压缩/解压速度也比较快;hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样;有hadoop native库;大部分linux系统都自带gzip命令,使用方便。缺点:不支持split。应用场景:当每个文件压缩之后在130M以内的(1个块大小内),都可以考虑用gzip压缩格式。譬如说一天或者一个小时的日志压缩成一个gzip 文件...原创 2016-09-22 15:39:41 · 9251 阅读 · 1 评论 -
用MapReduce把hdfs数据写入HBase中
1.使用Map+Reduce方式public class MapReduceImport { /** * Mapper */ static class HMapper extends MapperLongWritable, Text, LongWritable, Text> { Text v2 = new Text();转载 2017-03-01 09:20:50 · 5521 阅读 · 0 评论 -
hadoop 学习总结1
最近在学习云计算,研究Haddop框架,费了一整天时间将Hadoop在Linux下完全运行起来,看到官方的map-reduce的demo程序WordCount,仔细研究了一下,算做入门了。 其实WordCount并不难,只是一下子接触到了很多的API,有一些陌生,还有就是很传统的开发相比,map-reduce确实是一种新的编程理念,为了让各位新手少走弯路,我将WordCount中的很原创 2013-07-05 16:28:21 · 1656 阅读 · 0 评论