2021-02-09 12:16:51    42    0    0

一. Hbase自带count命令

使用hbase shell自带的count命令,可以统计行数较小的表。

  1. count 'tableName'


二. 使用mapreduce提交任务统计

  1. $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter tableName

有时候MapReduce也会非常的慢,这时可以考虑使用更高级的coprocessor。

2021-02-09 12:02:34    40    0    0

一. 使用内置分区算法

  • HexStringSplit treats keys as hexadecimal ASCII
  • DecimalStringSplit treats keys as decimal ASCII
  • UniformSplit treats keys as arbitrary bytes

  • 创建表示例预分区

  1. create 'a',{NAME=>'score'},{NAME=>'info'},{NUMREGIONS=>10, SPLITALGO=>'HexStringSplit'}
  2. create 'b',{NAME=>'score'},{NAME=>'info'},{NUMREGIONS=>10, SPLITALGO=>'DecimalStringSplit'}
  3. create 'c',{NAME=>'score'},{NAME=>'info'},{NUMREGIONS=>10, SPLITALGO=>'UniformSplit'}
2021-02-09 12:01:50    26    0    0

一. 使用示例

最后面的数字表示启动的线程数量,每次执行都会删除之前创建的同名表。

  1. hbase pe --nomapred --valueSize=100 --rows=10000 --autoFlush=true --presplit=21 --families=5 --columns=5 randomWrite 10


二. 参数说明

2021-02-09 11:00:02    50    0    0

1 . 删除 zk 中的数据

  1. zookeeper-client
  2. [zk: localhost:2181(CONNECTED) 2] rmr /hbase-unsecure/table/TestTable

2 . 删除 HDFS 上的数据

  1. sudo -u hdfs hadoop fs -rm -r -f /apps/hbase/data/data/default/TestTable

3 . 删除 meta 表数据

  • 首先找出有哪些rowkey。
2021-02-08 00:03:24    63    0    0

一. 完整示例

  • pom.xml
  1. <dependency>
  2. <groupId>com.beust</groupId>
  3. <artifactId>jcommander</artifactId>
  4. <version>1.78</version>
  5. </dependency>
  • 完整代码
    下面给出了一个完整的代码逻辑,还有更多的用法见后面小节。
2021-01-29 18:08:58    20    0    0

redis的集群模式既解决了单点故障,又解决了扩容问题。在集群模式下,Redis接收任何键相关命令时首先计算键对应的槽,再根据槽找出所对应的节点,如果节点是自身,则处理键命令;否则回复MOVED重定向错误,通知客户端请求正确的节点。

一. 集群连接

1.1 集群模式连接集群(正确)

  • 使用 -c 参数连接集群
  1. $ redis-cli -c -p 6380
  2. 127.0.0.1:6380> set 1 1
  3. -> Redirected to slot [9842] located at 127.0.0.1:6381
  4. OK
  5. 127.0.0.1:6381>
2021-01-26 10:17:59    20    0    0

在使用CentOS时,如果中途升级或内核版本,或者某些依赖需要安装不同版本的内核,或者某些版本的内核无法启动,这时需要修改默认的启动内核版本,操作步骤如下

查看可用内核列表

  1. $ sudo cat /boot/grub2/grub.cfg | awk -F'--class' '/^menuentry/{print $1}'
  2. menuentry 'CentOS Linux (3.10.0-1062.12.1.el7.x86_64) 7 (Core)'
  3. menuentry 'CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)'
  4. menuentry 'CentOS Linux (0-rescue-12d6d6c50a4740ee992241dd6aac5df8) 7 (Core)'


2021-01-20 21:19:57    33    0    0

  我们来看一下,假设A检测到网络是空闲的,开始发数据包,尽力传输,当数据包还没有到达B时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B首先发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发生了错误,就会重传这个数据包。但如果碰撞信号会返回到A时,数据包已经发完,则A不会重传这个数据包。


2021-01-13 21:15:50    40    0    0

一. 使用心得

AutoHotkey 官网地址 https://www.autohotkey.com/,从官网可看到ahk可以干非常多的事情,可以让事情变得非常高效,官网给出的quickstart也非常简单,非常容易上手,我要分享的有两点:充分利用 Alt 键、常用APP一键切换,一键直达指定应用。

1.1 充分地利用 Alt 键

在Windows下的默认配置中,Alt 键的作用并不是那么大,在使用AutoHotkey之前,我用Alt键的地方主要有:

  • Ctrl + Alt + Delete 调出任务管理器。
  • Alt + F4 关闭窗口,也不是很好用,因为F4键太远了。
  • Alt + Tab 最近的两个窗口来回切换,这个可能是用的最多的了。

所以,Alt 并没有充分利用起来,然后Alt又占据了非常优秀键盘位置,离大拇指最近。所以你可以使用 AutoHotkey 把Alt键充分利用起来。

2021-01-12 20:16:55    127    0    0

一. dnsmasq安装

  1. # centos
  2. sudo yum -y install dnsmasq
  3. # ubuntu
  4. sudo apt-get -y install dnsmasq
  5. # 关掉默认的解析服务避免端口冲突
  6. sudo systemctl stop systemd-resolved.service
  7. sudo systemctl disable systemd-resolved.service
  8. # 启动服务
  9. sudo systemctl start dnsmasq
  10. sudo systemctl enable dnsmasq
  11. sudo systemctl status dnsmasq
  • dnsmasq的解析顺序如下:
    • 寻找 /etc/hosts 文件。
    • 寻找 dnsmasq 的缓存。
    • 寻找 dnsmasq 配置的上游dns服务器地址。