自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 IDEA的使用

1,首先启动cd /opt/modules/idea-IC-141.178.9/bin/idea.sh 12122,导入scala插件3,导入spark源码4,创建scala工程

2016-12-16 10:25:52 379

原创 UML类图几种关系的总结

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)         1. 泛化(Generalization)        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特

2016-11-22 18:15:16 266

原创 Java的接口与Scala的trait特质

今天说一说Java中的接口和Scala中的trait。一直就把特质当做半个接口用,因为确实挺像的,但仔细看,还是有很大区别的。1.接口不会有构造器,特质可以有构造器,并且在实现类继承特质的时候,先要调用特质的构造器。trait构造器的调用顺序小结:class B{}trait C extends E{}trait D extends E{}A extends B w

2016-10-26 21:12:26 4802 3

原创 Spark运行架构

Spark传入中国也有两三年的时间了,之后必然也会是比较火的东西,scala也是一样,所以又好好梳理了一下Spark的运行基本架构,画了一个简版的图,可以凑合着看一下,其实我挺佩服大牛们的那些牛技术博客,但是每次一贴图就感觉自己画的好low啊,上各种颜色,我是不会看颜sai的人,哈哈,不过没关系,看得懂是目的,哈哈~~

2016-10-25 17:02:52 323

原创 Zookeeper的作用以及选举机制

zookeeper:其实,我觉得要是深度理解zookeeper的工作状态挺难的,也非常深,我学完之后又看了很多大牛的博客,觉得自己理解的也不好,只能说是对zookeeper有个浅显的概念,或者浅显都称不上,觉得只是硬生生的记住了一些概念的东西,没有做过调优的工作,实在是不能写出什么东西,但是也勉强记一些我能理解的吧,毕竟这些枯燥的概念也是比较磨练心性的,能坐下来好好看一些概念不容易。后面我再贴

2016-10-17 14:41:57 9767

原创 Hadoop调度器小解

Hadoop 调度器之前对调度器其实了解并不是很多,貌似要涉及到比较多额算法,所以也不是很懂,现在也只能理解一下大概的工作概念而已,这些算法是大牛们干的事情啊,高深的东西,我望尘莫及啊。。。(默默的流泪中)FIFO 调度器集成在 JobTracker 中的原有调度算法被称为 FIFO。在 FIFO 调度中,JobTracker 从工作队列中拉取作业,最老的作业最先。

2016-10-17 13:32:44 290

原创 mr运行过程中的一些参数

mr运行过程中的一些参数说明:jar包:/home/grid/hadoop-0.20.2/hadoop-0.20.2-examples.jar      安装hadoop时从源代码拷贝过来的,我们可以直接使用[grid@h1 hadoop-0.20.2]$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out   

2016-10-17 11:55:32 766

原创 Sqoop迁移工具的使用

概述sqoop是Apache顶级项目,主要用来在Hadoop和关系数据库中传递数据。通过sqoop,我们可以方便的将数据从关系数据库导入到HDFS,或者将数据从HDFS导出到关系数据库。sqoop架构:sqoop架构非常简单,其整合了Hive、Hbase和Oozie,通过map-reduce任务来传输数据,从而提供并发特性和容错。sqoop的进一步发展可

2016-10-15 09:53:28 528

原创 案例十二:多文件输出MultipleOutputs

案例十二:多文件输出MultipleOutputs好几天没写什么了,今天写点工作当中比较常用的东西吧--MultipleOutputs多路径输出,这个用的也比较多,比如可以输出分区的数据,方便hive里建表,也可以分类数据,都比较方便了。下篇再说一下多格式输出。主要用到MultipleOutputs这个类。直接上代码。先贴一下数据

2016-10-06 20:33:38 493

原创 案例十三:多格式文件输出MultipleOutputs

案例十二:多文件输出MultipleOutputs好几天没写什么了,今天写点工作当中比较常用的东西吧,多路径输出,下篇再说一下多格式输出。主要用到MultipleOutputs这个类。直接上代码。下面是结果,有两个都在/out/222,分别是FormatText和Fo

2016-10-06 20:03:03 657

原创 HQL加载数据的几种方法小结

HQL加载数据的几种方法小结:对于没有创建分区的表(这里都以外部表为例)而言:create external table if not exists test (id int,name string) comment 'This is for test.' row format delimited fields terminated by '\t' locati

2016-09-25 10:35:27 1448

原创 HIVE中表之间相互联系的方式小结

HIVE中表之间相互联系的方式小结:今天总结了一下hive中表与表之间发生关联的方式,大概的有以下几种,日后再补充:先建立两张表:user+job表的数据结构:--------------------------------------------------user:user_id name1 张三2 李四3 王五create external table

2016-09-24 19:21:25 1234

原创 Navicat for mysql的乱码问题+linux下mysql乱码问题

Navicat for mysql的乱码问题或者linux下mysql乱码问题从hdfs到处数据到mysql或者从mysql导入数据到hdfs总是乱码,于是我就把基本上可能出现的问题就都总结了一下:1.首先确认linux下的mysql不乱码。如果乱码以下方法解决:(我只说一下永久性更改的方法,一次性的方法可以百度)a.linux和window不一样,所以需要先找

2016-09-22 14:43:06 5223

转载 napreduce调优三

MapReduce任务的优化相信每个程序员在编程时都会问自己两个问题“我如何完成这个任务”,以及“怎么能让程序运行得更快”。同样,MapReduce计算模型的多次优化也是为了更好地解答这两个问题。MapReduce计算模型的优化涉及了方方面面的内容,但是主要集中在两个方面:一是计算性能方面的优化;二是I/O操作方面的优化。这其中,又包含六个方面的内容。

2016-09-11 18:06:16 391

转载 mapreduce调优二

map阶段优化参数:io.sort.mb(default 100)当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。而是会利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。每一个map都会对应存在一个内存buffer,map会将已经产生的部分结果先写入到该

2016-09-11 18:04:20 251

翻译 mapreduce调优一

Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式。         在医学领域,没

2016-09-11 18:01:44 349

原创 HDFS读写文件的java代码

对HDFS操作可以通过命令行,-put,-mkdir,-rm等等,也可以通过java代码来实现,总结一下读写的两个操作,其他的功能可以通过FileSystem类的方法获取。HDFS读文件的操作:可以通过简单的URL读取,也可以通过FileSystem读取,代码如下://通过URL读取public class URLText {static{URL.s

2016-09-11 17:06:15 773

原创 MapReducer工作流程小结

自己画了一个Mapreduce的工作流程,比较简易~~

2016-09-11 16:21:02 442

原创 HDFS一些概念的理解

HDFS(Hadoop Distribute File System)分布式文件系统概念好多,枯燥不易理解,多看几遍!!1.HDFS数据存放策略:分块存储+副本存放。2.数据拓扑结构(即数据备份):默认存放3份,可以通过修改配置文件hdfs-site.xml修改备份数量,如果本机在集群中,第一份就会存放到本节点即本机上,如果不在集群中,就通过负载均衡存放到一个相应的随机

2016-09-11 15:15:01 6031

原创 MapReduce算法形式十一:自定义排序(即重写shuffle过程的排序规则)

案例十一:自定义排序(即重写shuffle过程的排序规则)这个案例有点难理解,但学会了非常方便,shuffle的排序过程是自然排序的(数值小大,其他字符Unicode),如果不改变shuffle的排序过程只能是写新的集合再写比较器,过程难免多了很多步骤,这个自定义排序过程重写了shuffle的排序过程,可以按照各自需求来排序,倒序,正序等等都可以。

2016-09-11 12:26:33 4009

原创 MapReduce算法形式十:自定义实体类

案例十:自定义实体类自定义实体类其实就是把每行需要的信息放在一起封装了对象,并且该对象必须实现Writable接口,重写write和readFields的方法,读写的顺序和类型都必须一致才行,这样该实体类就相当于IntWritable或者LongWritable之类的数据类型一样了,可以作为map和reduce的参数进行相互传递使用,当然了按照需求重写toStrin

2016-09-11 12:24:17 534

原创 MapReduce算法形式九:组合key或组合value

案例九:组合key或组合value对于map和reduce输出的值不一定非得是单一的值,可以是组合的,可以使实例对象(记得重写toString写成需要的格式)等等吧。也比较容易理解。我很喜欢这个方法,很实用。

2016-09-11 12:22:52 912

原创 MapReduce算法形式八:setCombinerClass

案例八:setCombinerClasscombineClass运行在reduceClass之前,相当于一个小型的reduceClass,key值相同的value合并成集合,然后再交给reduce处理,这样可以减少map和reduce时间传输的数量,减少reduce的压力,对运行时间可能有一定的优势。

2016-09-11 12:21:54 1327

原创 MapReduce算法形式七:多个mapreduce任务

案例七:多个mapreduce任务以两个job为例:第一个mapreduce的输出结果作为第二个mapreduce的输入,这样在执行任务的时候两个job分别写执行流程,并且运行代码的时候应该是三个path,而不是4个,就这点注意就行了

2016-09-11 12:13:32 1084

原创 插曲--关于数组和集合的转换

插个东西,今天先不写mr,下午再写,刚刚搞了一个问题,觉得自己真是学了不少,长见识了,之前只知道数组和集合之间可以互相转换,今天写mr的时候,有一个功能是要求列出三个数组中的共同元素,于是我很 xx 的写下了三层for循环:String[] s1 = {"a","b","c","d"};String[] s2 = {"b","c","d","e"};String[] s3

2016-09-11 10:40:15 253

原创 MapReduce算法形式五:TOP—N

案例五:TOP—N这个问题比较常见,一般都用于求前几个或者后几个的问题,shuffle有一个默认的排序是正序的,但如果需要逆序的并且暂时还不知道如何重写shuffle的排序规则的时候就用以下方法就行,java中说到排序无非就是比较器,然后结合着集合,这样基本上就能解决我的需求了,但是有个问题需要注意,就是虽说集合是不定长的,但是呢,面对大数据而言,就可能会出现内存溢出的问题,所以最好不要讲

2016-09-10 14:45:27 443

原创 MapReduce算法形式四:mapjoin-reduce端的

案例四:mapjoin(对个map共同输入,一个reduce)这个方法主要解决的是,几个表之间的比较,类似于数据库的内外连接,还有一些左右连接之类的,简而言之就是,A表没有的B表有,B表有的A没有或者AB共有的,类似于这样的问题,话说呢,这就是一种思想,哒哒哒~不仅明白,因为用的也比较多。

2016-09-10 14:44:52 299

原创 MapReduce算法形式三:cleanup

案例三:cleanup其实这个案例可以不用写这么复杂,不用cleanup也能写,但是为了,突显,突显,突显(重要的事说四遍)cleanup的重要性,琢磨了半天,恩,这样写既可以突显cleanup又显示出我对大集合的各种热爱(哪天把集合的遍历方法搞一下,光Map就有四五种),总而言之呢,写得是复杂了点,但是灰常满意~~还是忘了说了,cleanup干嘛的,说白了就是吃reduce剩下的

2016-09-10 14:44:18 962

原创 MapReduce算法形式二:去重(HashSet)

案例二:去重(shuffle/HashSet等方法)shuffle主要针对的是key去重HashSet主要针对values去重

2016-09-10 14:43:41 403

原创 MapReduce算法形式二:去重(shuffle)

案例二:去重(shuffle/HashSet等方法)shuffle主要针对的是key去重HashSet主要针对values去重

2016-09-10 14:42:32 280

原创 MapReduce算法形式一:WordCount

MapReduce算法形式一:WordCount这种形式可以做一些网站登陆次数,或者某个电商网站的商品销量啊诸如此类的,主要就是求和,但是求和之前还是要好好清洗数据的,以免数据缺省值太多,影响真实性。废话不多说,上代码吧,我把注释一行行的都写了~~可可可可~先封装了数据行的对象:public class Log {  private String time;

2016-09-10 14:41:29 292

原创 理解yarn平台,理解万岁,肤浅理解也万岁~

理解yarn平台,理解万岁,肤浅理解也万岁~从Hadoop1到Hadoop2很大程度上解放了Jobtracker资源调度的问题,这就得多亏了yarn平台了。我知道的,除了我们的大豆瓣用的是Mesos,咱们国家可以说应该是99.99%都使用的是yarn,当然了,国外使用的大多是Mesos。(然而我对Mesos并不理解啥,只知道他和yarn一样的作用吧)Hado

2016-09-10 14:40:10 327

原创 判断字符串是不是数字的方法

判断字符串是不是数字的方法判断字符串是不是数字?方法一:/*** 用于验证获取的字符串是不是数字* @param str* @return*/public static boolean isNumeric(String str) {  for (int i = 0; i   // 验证字符串中的字符是不是数字    if (!

2016-09-10 14:39:09 370

原创 搭建集群时遇到各种奇葩问题的大招~~

用自己电脑搭建hadoop集群的时候总是会遇到各种奇葩的问题,因为虚拟机总是会比真实的环境差很多的,有些奇葩的问题真是让我郁闷不行不行的~~像这个问题,搭了三遍的集群遇见各种奇葩问题,最后找了一个终极大招:但是,但是,前提是,新搭的集群,如果HDFS里面已经有数据了,那就别用了,因为会把你的hadoopdata都清理掉的。如果,如果,真的确认自己搭建过程没有任何问题,并且配置文件正

2016-09-03 16:20:39 184

原创 解决集群搭建找不到datanode的问题

解决"no datanode to stop"问题当我停止Hadoop时发现如下信息:    no datanode to stop原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,有两

2016-09-03 16:19:35 1172

原创 搭建集群后再namenode上查看进程发现除了三个基本进程还可能有别的进程,例如本来在子节点出现的进程出现在了主节点上

搭建集群后再namenode上查看进程发现除了三个基本进程还可能有别的进程,例如本来在子节点出现的进程出现在了主节点上,namenode按正常来说是有三个进程的:namenode,resourcemanager,secondarynamenode,子节点上有两个进程:nodemanager,datanode,但是可能会出现本来出现在子节点上的进程出现在主节点上了,如下(请忽略3123进

2016-09-03 16:17:51 802

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除