在 <HBase 中加盐之后的表如何读取:协处理器篇> 文章中介绍了使用协处理器来查询加盐之后的表,本文将介绍第二种方法来实现相同的功能. 我们知道,HBase 为我们提供了 hbase-mapreduce 工程包含了读取 HBase 表的 InputFormat.OutputFormat 等类.这个工程的描述如下: This module contains implementations of InputFormat, OutputFormat, Mapper, Reducer, etc w…
我们介绍了避免数据斑点的三种比较常见方法: 加盐-盐腌 哈希-散列 反转-反转 其中在加盐(Salting)的方法里面是这么描述的:给Rowkey分配一个随机指针以使其和之前排序不同.但是在Rowkey前面加了随机重叠,那么我们怎么将这些数据替换来呢?我将分三篇文章来介绍如何读取加盐之后的表,其中每篇文章提供一种方法,主要包括: 使用协处理器读取加盐的表 使用Spark读取加盐的表 使用MapReduce读取加盐的表 关于协处理器的入门及实战,参见请这里.本文使用的各组件版本:Hadoop的2.…
我们知道,HBase 为我们提供了 hbase-mapreduce 工程包含了读取 HBase 表的 InputFormat.OutputFormat 等类.这个工程的描述如下:This module contains implementations of InputFormat, OutputFormat, Mapper, Reducer, etc which are needed for running MR jobs on tables, WALs, HFiles and other HB…
转自: https://blog.csdn.net/finad01/article/details/45952781 ------------------------------------------------------------------------------------------ hbase数据加盐(Salting)存储与协处理器查询数据的方法       用HBase存储数据时,如果不加任何处理,用户数据往往会集中在几个region中,从而导致数据处理的性能问题,写性能会不断…
一.什么是彩虹表? 彩虹表(Rainbow Tables)就是一个庞大的.针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码.越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是100G以上. 二.上哪找彩虹表去? 现在有很多大牛已经把自己的彩虹表共享出来了,所以你可以去下载.还有一种方法就是自己通过工具生成. 不过自己生成有点不切合实际,生成小的彩虹表吧数据少,可以破解密码的位数少(复杂程度低),而且费时费力,4核4GB内…
对于hbase当前noSql数据库的一种,最常见的应用场景就是采集的网页数据的存储,由于是key-value型数据库,可以再扩展到各种key-value应用场景,如日志信息的存储,对于内容信息不需要完全结构化出来的类CMS应用等.注意hbase针对的仍然是OLTP应用为主. 对于hive主要针对的是OLAP应用,注意其底层不是hbase,而是hdfs分布式文件系统,重点是基于一个统一的查询分析层,支撑OLAP应用中的各种关联,分组,聚合类SQL语句.hive一般只用于查询分析统计,而不能是常见的…
src\shared\helpers\LocalizedResourcesHelper.ts…
两种方式加载hbase中的表到hive中,一是hive创建外部表关联hbase表数据,二是hive创建普通表将hbase的数据加载到本地 1. 创建外部表 hbase中已经有了一个test表,内容如下 hbase(main):012:0* scan 'test' ROW COLUMN+CELL 001 column=info:age, timestamp=1526563694645, value=18 001 column=info:name, timestamp=1526563629119,…
摘要: 在密码学中,加盐是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串.这个在散列中加入字符串的方式称为“加盐”.其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性. 1. 什么是加盐? 在密码学中,加盐是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串.这个在散列中加入字符串的方式称为“加盐”.其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性.而Phoeni…
md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加密 /// </summary> /// <param name="input">加密字符串</param> /// <remarks>2015.08.26</remarks> public static Guid ToMD5(s…
我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就是加点“佐料”.其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列.而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后散列,再比较散列值,已确定密码是否正确. 这里的“佐料”被称作“Salt值”,这个值是由系统随机生成的,并且只有系统…
转自:http://blog.csdn.net/blade2001/article/details/6341078 我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就是加点“佐料”.其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列.而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后…
我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就是加点“佐料”.其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列.而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后散列,再比较散列值,已确定密码是否正确. 这里的“佐料”被称作“Salt值”,这个值是由系统随机生成的,并且只有系统…
kylin的clube合并后清理hbase中产生的相关历史表 kylin 的clube 历史的每次构建,都会产生一个hbase的表:虽然可以设置按照一定策略合并,但是合并后hbase 历史表不会被自动删除,造成hbase的 Region 越来越多 . 需要通过以下命令来执行无用数据的清理工作. ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.storage.hbase.util.StorageCleanupJob --delete true 然后再cron…
公司最近在搞一个hbase删除数据,由于在建表的时候是通过region来对每日的数据进行存储的,所以要求在删除的时候直接通过删除region的来删除数据(最好的方案是只删除region中的数据,不把region删掉,但是百度了很久没找到只删除region中数据的解决方法,实在遗憾,最终也就通过删除region来删除数据了 这样的弊端是在hbase 中执行scan全表的时候 会报错,找不到某某region,只能通过rowkey来查询别的数据 真的很烦~~~ 以后有时间在来研究这个region吧)…
0x00 背景 大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害.保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错.接下来我希望可以详细的阐述如何恰当的对密码进行hash,以及为什么要这样做. 0x01 重要提醒…
0.时序数据库 时间序列(Time Series):是一组按照时间发生先后顺序进行排列的数据点序列,通常一组时间序列的时间间隔为一恒定值(如1秒,5分钟,1小时等). 时间序列数据可被简称为时序数据.实时监控系统所收集的监控指标数据,通常就是时序数据 .时序数据具有如下特点: 每一个时间序列通常为某一固定类型的数值 数据按一定的时间间隔持续产生,每条数据拥有自己的时间戳信息 通常只会不断的写入新的数据,几乎不会有更新.删除的场景 在读取上,也往往倾向于读取最近写入的数据. OpenTSDB是其中…
什么是哈希加盐法? 废话少说:对于MD5这种加密算法,同样的密码每次加密后得到的密文是一样的,所以黑客可以利用已知的密码库(彩虹库)对目标数据库密文进行对比进行攻击. 怎样解决:哈希加盐法,以下是网上给出的方案.http://blog.csdn.net/cryeyes/article/details/5375810 方案一:将用户密码与固定salt字串进行拼接,再进行Hash计算得到密文. 此方案的缺点很明显,通过密码库进行对比,直接可获得很多[用户密码 + salt]的字串,即可推断出salt…
该文档是用Hbase默认配置文件生成的,文件源是 hbase-default.xml hbase.rootdir 这个目录是region server的共享目录,用来持久化HBase.URL需要是'完全正确'的,还要包含文件系统的scheme.例如,要表示hdfs中的'/hbase'目录,namenode 运行在namenode.example.org的9090端口.则需要设置为hdfs://namenode.example.org:9000/hbase.默认情况下HBase是写到/tmp的.不…
我们知道,一张 HBase 表包含一个或多个列族.HBase 的官方文档中关于 HBase 表的列族的个数有两处描述: A typical schema has between 1 and 3 column families per table. HBase tables should not be designed to mimic RDBMS tables. 以及 HBase currently does not do well with anything above two or thre…
传统的关系型数据库有CRUD增删改查操作,同样对于NoSQL列式数据库也有CRUD操作.本文对HBase中常用的Scan.GET.PUT.DELETE操作的用法做个总结. Put操作 Put相当于传统数据库的add操作,就是在数据库中添加一条或多条记录. Put操作分为两类,一类是一次操作一条记录,另外一类是一次操作多条数据. HBase提供一个Put类,通过该类的对象就可以在HBase中添加数据. Put类提供的构造函数如下: Put(byte[] row) Put(byte[] row,Ro…
1:为什么大批量数据集写入Hbase中,需要使用bulkload BulkLoad不会写WAL,也不会产生flush以及split. 如果我们大量调用PUT接口插入数据,可能会导致大量的GC操作.除了影响性能之外,严重时甚至可能会对HBase节点的稳定性造成影响.但是采用BulkLoad就不会有这个顾虑. 过程中没有大量的接口调用消耗性能 可以利用spark 强大的计算能力 上面是一个总的执行流程图, 数据生成,HFile转换以及HFile加载, 下面是HFile 的格式, 就是个key val…
一.前言 业务使用HBase已经有一段时间了,期间也反馈了很多问题,其中反馈最多的是HBase是否支持SQL查询和二级索引,由于HBase在这两块上目前暂不支持,导致业务在使用时无法更好的利用现有的经验来查询HBase.虽然HBase本身不支持SQL,但业界还是有现成的方案来支持,如Hive.Impala.Phoenix等.众多方案各有各的优势,本文主要对Phoenix作一个大概的介绍. Phoenix中文翻译为凤凰, 其最早是Salesforce的一个开源项目,Salesforce背景是一个搞…
如果你是一个 web 开发工程师,可能你已经建立了一个用户账户系统.一个用户账户系统最重要的部分是如何保护密码.用户账户数据库经常被黑,如果你的网站曾经被攻击过,你绝对必须做点什么来保护你的用户的密码.最好的用来保护密码的方式是采用加盐密码散列 (salted password hasing). 本文将解释为什么要这样做. 互联网上充斥着大量的误导信息,有许许多多的关于如何正确做密码散列的矛盾的观点,有些甚至是误解.密码散列是一个简单的事情,但是仍然有很多人做错了.在这篇文章中,我不仅将解释正确…
转自:https://blog.csdn.net/DavidHuang2017/article/details/80283469 一.什么是加盐? 1.背景 现在很多公司后台以hash值形式存储用户密码(虽然本文以MD5哈希函数为例,但becrypt函数最常用的),用于哈希函数存在碰撞的特性,当后台数据库被攻击然后获取到用户密码哈希值时,还是能通过一定的方法(比如彩虹表攻击)破解用户密码. 举个例子:http://www.cmd5.com/ 能破解. 2.加盐原理简介 简单来说:由原来的H(p)…
转自:http://support.huawei.com/ecommunity/bbs/10242721.html Zookeeper在HBase中的应用 HBase部署相对是一个较大的动作,其依赖于zookeeper cluster,hadoop HDFS. Zookeeper作用在于: 1.hbase regionserver 向zookeeper注册,提供hbase regionserver状态信息(是否在线). 2.hmaster启动时候会将hbase系统表-ROOT- 加载到 zook…
为什么要在密码里加点“盐” 盐(Salt) 在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”. 以上这句话是维基百科上对于 Salt 的定义,但是仅凭这句话还是很难理解什么叫 Salt,以及它究竟起到什么作用. 第一代密码 早期的软件系统或者互联网应用,数据库中设计用户表的时候,大致是这样的结构: mysql> desc User; +----------+--------------+------+-----+----…
了解: MD5加密,是属于不可逆的.我们知道正常使用MD5加密技术,同一字符,加密后的16进制数是不变的,自从出现彩虹表,对于公司内部员工来说,可以反查数据,获取不可能的权限,所以出现了salt算法. 代码如下: package com.md5.demo; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 普通的…
1         背景 涉及身份验证的系统都需要存储用户的认证信息,常用的用户认证方式主要为用户名和密码的方式,为了安全起见,用户输入的密码需要保存为密文形式,可采用已公开的不可逆的hash加密算法,比如SHA256, SHA512, SHA3等,对于同一密码,同一加密算法会产生相同的hash值,这样,当用户进行身份验证时,也可对用户输入的明文密码应用相同的hash加密算法,得出一个hash值,然后使用该hash值和之前存储好的密文值进行对照,如果两个值相同,则密码认证成功,否则密码认证失败.…
HBase本身提供了很多种数据导入的方式,通常有两种常用方式: 使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase 另一种方式就是使用HBase原生Client API 本文就是示范如何通过MapReduce作业从一个文件读取数据并写入到HBase中. 首先启动Hadoop与HBase,然后创建一个空表,用于后面导入数据: hbase(main):006:0> create 'mytable','cf' 0 row(s) in 10.…