HBase二次开发之搭建HBase调试环境,如何远程debug HBase源代码

版本

HDP:3.0.1.0

HBase:2.0.0

一、前言

之前的文章也提到过,最近工作中需要对HBase进行二次开发(参照HBase的AES加密方法,为HBase增加SMS4数据加密类型)。研究了两天,终于将开发流程想清楚并搭建好了debug环境,所以就迫不及待地想写篇文章分享给大家。

阅读更多

shell实战(二):cat EOF 追加与覆盖文件

一、前言

之前写shell脚本的时候,有这样一个需求:我需要创建一些文件,并将内容输入到文件中。如果创建一个文件内容模板,然后通过$1$2传参的形式修改某些值,这样做感觉太不方便。后来从网上找了到 cat EOF 的用法,完全符合我的使用场景。

阅读更多

shell实战(一):sed命令小结

一、简介

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

命令格式

1
sed [options] 'command' file(s)

二、sed命令

阅读更多

HBase配置AES加密

版本:

HDP:3.0.1.0

HBase:2.0.0

一、前言

为了避免第三方非法访问我们的重要数据,我们可以给HBase配置加密算法,目前HBase只支持使用aes加密算法,用于保护静态的HFile和WAL数据。

阅读更多

zookeeper ACL 权限控制

版本说明:

zookeeper:3.4.6

一、概述

zooKeeper使用acl(Access Control List)来控制对其znode(zooKeeper数据树的数据节点)的访问。 不过,zookeeper的acl并不像HDFS系统的acl一样,可以递归控制权限。zookeeper的acl不是递归的,仅适用于特定的znode。比如/app这个znode,设置一些权限,只能某用户可以访问,但是/app/status的权限是与/app没有关系的,默认是world:anyone:cdrwa

阅读更多

注解@RequestParam与@RequestBody的使用场景

一、前言

一直有这么一个疑问:在使用postman工具测试api接口的时候,如何使用 json 字符串传值呢,而不是使用 x-www-form-urlencoded 类型,毕竟通过 key-value 传值是有局限性的。假如我要测试批量插入数据的接口呢,使用 x-www-form-urlencoded 方法根本就不适用于这种场景。

那么如何通过postman工具使用json字符串传值呢,这里就引申出来了spring的两个注解:

  • @RequestParam
  • @RequestBody

总而言之,这两个注解都可以在后台接收参数,但是使用场景不一样。继续往下看 ↓

阅读更多

Java版SMS4加密解密算法

前言

最近工作中需要实现HBase自定义扩展sms4加密,今天就先来说一下Java版的SMS4加密解密算法的具体实现。

一、概述

1.1 基本概念

本算法是一个分组算法,由加解密算法和密钥扩展算法组成。该算法的分组长度为128比特(Bit),密钥长度为128比特(Bit),也就是16个字节(Bytes)。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。在SMS4的基础类中,你会看到加密和解密的基础函数是同一个(本篇文章中的sms4KeyExt()方法),只是需要一个int型的标志位来判断是加密还是解密。

阅读更多

Apache Kylin目录详解

一、Kylin二进制源码目录解析

  • bin: shell 脚本,用于启动/停止Kylin,备份/恢复Kylin元数据,以及一些检查端口、获取Hive/HBase依赖的方法等;
  • conf: Hadoop 任务的XML配置文件,这些文件的作用可参考配置页面

阅读更多

PostgreSQL本地/远程登陆配置

PostgreSQL版本:9.6.12

关于PostgreSQL与PostGIS使用,可参看这篇文章。本篇文章主要介绍如何实现本地与远程登陆,并对其认证方式进行总结。

阅读更多

PostgreSQL与PostGIS的基础入门

PostgreSQL版本:9.6.12

PostGIS版本:2.4.6

一、概述

1.1 PostgreSQL概述

PostgreSQL是一个功能强大的对象关系型数据库管理系统(ORDBMS)。用于安全地存储数据,支持最佳做法,并允许在处理请求时检索它们。

阅读更多