- 博客(23)
- 收藏
- 关注
原创 HDFS的快照原理和Hbase基于快照的表修复
前一篇文章《HDFS和Hbase误删数据恢复》主要讲了hdfs的回收站机制和Hbase的删除策略。根据hbase的删除策略进行hbase的数据表恢复。本文主要介绍了hdfs的快照原理和根据快照进行的数据恢复。
2015-09-21 15:49:24
4946
原创 HDFS和Hbase误删数据恢复
1.hdfs的回收站机制 客户有时会误删一下数据,是在生产环境下,误删数据会造成非常严重的后果。 2.hbase表删除恢复如果disable+drop误删了hbase表数据,数据不会放到回收站中,hbase有自己的一套删除策略。fs.trash.interval=0 以分钟为单位的垃圾回收时间,垃圾站中数据超过此时间,会被删除。如果是0,
2015-09-07 14:59:44
11264
原创 集群磁盘损坏导致hadoop文件丢失的概率计算
在与客户沟通的时候,经常会有客户询问关于hadoop的安全问题。由于hadoop的底层的磁盘不做raid或者仅仅是做raid 0,客户认为磁盘损坏容易造成数据丢失。你跟客户阐述采用3副本机制,客户也会说:即使3副本也会有3块不同节点的磁盘同时损坏的可能啊!这时候我会跟客户举例子算一下三个不同节点的磁盘同时损坏的概率。为了简单起见,我们假如数据节点上的文件都小于64MB,这样这些文件的每一个
2015-09-07 14:33:41
2612
原创 hadoop常用的压缩算法总结和实验验证
hadoop常用压缩算法性能总结,包括snappy、gzip、bzip2、LZ4、LZO、deflate等算法
2015-08-24 23:13:39
2641
转载 linux的环境变量文件enviroment 、profile、bashrc和bash_profile的区别
(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。 (2)/etc/environment:是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。(3)/etc/bashrc: 为每一个运行
2015-08-24 22:35:55
759
原创 Programming in scala学习笔记(三)Classes and Objects
1. 任何方法中传入的形参都是val的,是不能在方法中改变它的。 2. 如果函数体很小的话可以去掉大括号注意上面的private,默认不加是public 3. 分号分隔语句如果语句在同一行的话,可以用分号分隔 4. Singleton ObjectsScala跟java不一样,没有static成员,然而,scala有Object,Object的
2015-08-23 23:34:01
714
原创 Programming in scala学习笔记(二)Next steps in scala
《Programming in scala 2nd edition 》Next steps in scala 章节学习笔记
2015-08-20 17:26:06
1219
原创 Programming in scala学习笔记(一)First step in scala
《Programming in scala 2nd Edition》First step in scala学习笔记
2015-08-19 10:58:08
671
原创 kafka集群启动脚本
用的kafka版本是0.8.0的,里面没有集群启动的脚本,所以写了一个集群启动的脚本如下:#!/bin/bashBROKERS="test6 test5 test10"KAFKA_HOME="/usr/lib/kafka"for broker in $BROKERSdo echo "INFO:starting kafka server on ${broker}" ssh $br
2015-08-06 10:50:45
2868
原创 脚本ssh连接自动填密码(expect)
Linux ssh下执行ssh命令远程登录其他机器,总是需要输入密码,如果人工去登录,输入密码那还可以,但是让程序自动化登录远程ssh服务器,并执行命令着就比较麻烦了。Linux下有个程序是expect,它可以模拟键盘,输入文本。机器上一般是没有这个命令的,需要安装expectsudo apt-get install expectyum install expect经常看到一
2015-08-06 10:07:56
7493
1
原创 MapReduce的Map side join
当有一个大表join小表的时候,可以选择用Map side join。该方式只用到了map阶段,不需要reduce。适用场景:1-小表很小,可以放在内存中,不会导致JVM的堆溢出;2-内连接或者大数据在左边的左外连接。
2015-06-10 14:33:49
1051
原创 写日志文件的代码
直接上代码:package com.inspur.log;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintWriter;import java.util.Calendar;public class WriteL
2015-06-10 10:54:19
760
原创 MapReduce的Reduce side Join
reduce side join是所有join中用时最长的一种join,但是这种方法能够适用内连接、left外连接、right外连接、full外连接和反连接等所有的join方式。reduce side join不仅可以对小数据进行join,也可以对大数据进行join,但是大数据会占用大量的集群内部网络IO,因为所有数据最终要写入到reduce端进行join。如果要做join的数据量非常大的话,就不得不用reduce join了。
2015-06-10 10:03:39
1491
原创 一目了然的几种join方式举例
inner join,left outer join,right outer join,antijoin,cartesian product
2015-06-09 10:47:48
805
原创 hbase的bulk loading代码和执行方法
bulk loading的优缺点这里就不再赘述,在本博客的其他文章已经进行过详细的分析: Hbase Bulk Loading与HBase API方式分析和对比bulk loading的过程主要分为两部分,一部分为数据生成,一部分为数据加载。我们先来看看执行bulk loading的shell脚本,然后再分析代码。CLASSPATH=./bulkload.jar:/etc/
2015-06-05 15:27:37
1976
原创 hbase建表时region预分区的方法
如果知道hbase数据表的key的分布情况,就可以在建表的时候对hbase进行region的预分区。这样做的好处是防止大数据量插入的热点问题,提高数据插入的效率。步骤:1.规划hbase预分区比如,要分成多少region,每个region的startkey和endkey是多少,然后将规划的key写到一个文件中;
2015-06-05 13:43:05
45944
2
转载 maven安装
1.首先到Maven官网下载安装文件,下载文件为apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;2.进入下载文件夹,找到下载的文件,运行如下命令解压tar -xvf apache-maven-2.2.1-bin.tar.gz解压后的文件夹名为apache-maven-3.0.33.使用mv命令将apache-maven-3.0
2015-06-04 10:46:30
416
原创 Hbase Bulk Loading与HBase API方式分析和对比
往hbase中批量加载数据的方式有很多种,最直接方式是调用hbase的API用put方法插入数据;另外一种是用MapReduce的方式从hdfs上加载数据,调用TableOutputFormat 类在reduce中直接生成put对象写入HBase(这种方式可以看作多线程的调用hbase API方式);但是这两种方式效率都不是很高。Bulk Load 方式调用MapReduce的job直接将数据输出成hbase table内部的存储格式的文件HFile,然后将生成的StoreFiles 加载集群的相应节点。
2015-06-04 10:29:17
1295
原创 HDFS NFS Gateway使用
hadoop的hdfs支持nfs挂载,挂载的思路是这样的。首先在集群中选择一个节点作为nfs的server,然后在集群外的节点作为nfs的客户端上进行挂载。集群外的节点为nfs的客户端,集群里面的nfs server的节点是nfs的服务器端,同时也是hdfs的客户端。
2015-06-03 16:11:30
2275
原创 hive-TextInputformat自定义分隔符
前言在一次利用sqoop将关系型数据库Oracle中的数据导入到hive的测试中,出现了一个分割符的问题。oracle中有字段中含有\n换行符,由于hive默认是以’\n’作为换行分割符的,所以用sqoop将oracle中数据导入到hive中导致hive中的数据条目跟原始数据库不一致,当时的处理方式是数据在导入到HDFS之前,用sqoop的参数将字段中的换行符都替换掉。Sqoop在将数据从
2015-06-03 11:38:27
7945
原创 Hbase 统计表行数的3种方式总结
有些时候需要我们去统计某一个hbase表的行数,由于hbase本身不支持SQL语言,只能通过其他方式实现。可以通过一下几种方式实现hbase表的行数统计工作:1.count命令最直接的方式是在hbase shell中执行count的命令可以统计行数。
2015-06-02 14:53:26
34988
原创 如何在linux shell中嵌入hbase命令
我们经常在shell脚本程序中用--------------------------------------hbase shell 【hbase命令】EOF---------------------------------------其中,EOF也可以换成其他任意的字符,大小写不论,只要成对出现即可。比如,可以:---------------------------
2015-06-02 14:36:46
4273
转载 求所有最大公共子序列的算法实现
本文给出了传统的DP(dynamic programming,动态规划)算法进行求解的过程,并用c语言实现。另外参考一篇论文实现了其中的一种打印所有最大公共子序列的算法,这个算法比起传统的算法而言,时间复杂度大大降低.
2014-07-29 16:22:38
668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人