工具篇-大数据组件的一些快捷Shell操作
一、Hbase
先来个中文的概括

1. HBase shell窗口进入
执行hbase shell
2. HBase表的创建
# 语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
# 例如:创建表user,有两个family name:id,f2,且版本数前者为3,后者为1
hbase(main)> create 'user',{NAME => 'id', VERSIONS => 3},{NAME => 'f2', VERSIONS => 1}
3. HBase表的删除
先disable表
再drop表
hbase(main)> disable 't1'
hbase(main)> drop 't1'
4. HBase表的清空
hbase(main)> truncate 't1'
5. 统计HBase表行数
count '表名'
6. 显示所有HBase表
list
7. 查看HBase表结构
describe 't1'
结果为
Table t1 is ENABLED
t1
COLUMN FAMILIES DESCRIPTION
{NAME => 'T', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => '2073
600 SECONDS (24 DAYS)', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'true', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN
=> 'false', COMPRESSION => 'SNAPPY', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}
8. 复制HBase表结构
7可以查看到hbase表的结构,把红色部分复制下来加上create '表名'即可
create 't2',{NAME => 'T', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => '2073600 SECONDS (24 DAYS)', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'true', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'SNAPPY', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}
二、MongoDB
1. 选择db库
use DB_NAME
2. 显示集合collections
show collections
3. 删除集合collections
db.COLLECTION_NAME.drop()
4. 查看数据库
> db.stats();
{
"db" : "test", //当前数据库
"collections" : 3, //当前数据库多少表
"objects" : 4, //当前数据库所有表多少条数据
"avgObjSize" : 51, //每条数据的平均大小
"dataSize" : 204, //所有数据的总大小
"storageSize" : 16384, //所有数据占的磁盘大小
"numExtents" : 3,
"indexes" : 1, //索引数
"indexSize" : 8176, //索引大小
"fileSize" : 201326592, //预分配给数据库的文件大小
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"ok" : 1
}
4. 查看数据表
> db.表名.stats();
{
"ns" : "库名.表名",
"count" : 1,
"size" : 56,
"avgObjSize" : 56,
"storageSize" : 8192,
"numExtents" : 1,
"nindexes" : 1,
"lastExtentSize" : 8192,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 8176,
"indexSizes" : {
"_id_" : 8176
},
"ok" : 1
}
5. 用户验证登录
mongo --host 192.168.0.16 --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
三、Redis
可以参考:https://www.cnblogs.com/hylazphp/p/10153481.html
1. 进入shell
redis-cli -h localhost -p -n <db>
2. 读取set
smembers 'key'
3. 读取set到大小
scard 'key'
4. 查看所有key
keys *
5. hashMap查看所有值
hgetall
6. 查看key的ttl
ttl 'key' #查看的结果是当前还剩余多少毫秒
7. 设置当前key的ttl
expire 'key' 10000
8. 清空当前数据库的所有key
flushdb
9. 查看当前的redis连接数
info clients
10. 查看redis允许的最大连接数
config get maxclients
11. 查看命令使用情况
info commandstats
cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX
其中,第一个XXX是命令的名称,第二个XXX是命令调用次数,第三个XXX是命令消耗的CPU时间总量(以微秒为单位),第三个XXX是每次调用命令消耗的CPU时间的平均值(以微秒为单位)。
info的命令有很多,可以参考:如何监控Redis的工作状态——INFO命令详解
12. 实时打印出 Redis 服务器接收到的命令,调试用
monitor
13. AOF 持久化
为了打开 AOF 持久化的功能,我们只需要将 redis.conf 配置文件中的appendonly配置选项设置为yes即可,如果不进行持久化redis重启数据就没了。涉及 AOF 持久化的几个常用配置如下所示:
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
appendonly:是否打开 AOF 持久化功能
appendfilename:AOF 文件名称
appendfsync:同步到硬盘的频率
14. redis库中的数据导出导入
法一:可以使用redis-load、redis-dump方法,该方法没用过,自行百度嘿嘿
法二:使用redis-dump-load 1.1包,官网:https://pypi.org/project/redis-dump-load/1.1/
也可以参见博客:https://www.234du.com/1174.html
导出:
redisdl.py -H ip -p 6379 -d 0 -o /tmp/db0.json
导入:
redisdl.py -l -H ip -p 6379 -d 12 /tmp/db0.json
四、Docker
1. 查看当前正在运行的容器
docker ps 或者 sudo docker ps
2. 进入到容器中运行命令
比如,1中拿到了容器的ID xxxx,则可以执行
docker exec -it xxxx /bin/bash 或者 sudo docker exec -it xxxx /bin/bash
3. 本地镜像上传镜像仓库
docker push [OPTIONS] NAME[:TAG]
4. COPY和ADD命令
Dockerfile中的COPY指令和ADD指令都可以将主机上的资源复制或加入到容器镜像中,COPY指令和ADD指令的唯一区别在于是否支持从远程URL获取资源。它们的注意事项如下:
- 源路径可以有多个
- 源路径是相对于执行build的相对路径
- 源路径如果是本地路径,必须是build上下文中的路径
- 源路径如果是一个目录,则该目录下的所有内容都将被加入到容器,但是该目录本身不会
- 目标路径必须是绝对路径,或相对于WORKDIR的相对路径
- 目标路径如果不存在,则会创建相应的完整路径
- 目标路径如果不是一个文件,则必须使用/结束
- 路径中可以使用通配符
示例:
ADD http://example.com/big.tar.xz /usr/src/things/
5. Dockfile中其他一些命令
注释: 以#开头默认是注释;
FROM:
Dockerfile第一条指令应该是FROM。FROM指定一个已经存在的镜像,后续指令都是将基于该镜像进行,这个镜像被称为基础镜像(base iamge)。
MAINTAINER:
告诉Docker该镜像的作者及作者的邮箱地址
RUN:
RUN指令会在shell里使用命令包装器/bin/sh -c 来执行。每条RUN指令都会创建一个新的镜像层,如果该指令执行成功,就会将此镜像层提交,然后继续执行Dockerfile中的下一个指令。
ENV:
ENV key value
用来设置环境变量,后续的RUN可以使用它所创建的环境变量
WORKDIR:
用来指定当前工作目录
6. Docker build命令
docker build -t runoob/ubuntu:v1 .
-t:镜像的名字及标签,通常 name:tag 或者 name 格式, -f指定Dockfile文件路径,.表示当前目录,docker build 会将这个路径下所有的文件都打包上传给 Docker 引擎,其他的参数参见:Docker命令大全。
五、Zookeeper
1. 连接远程zookeeper服务
./zkCli.sh -server ip:port
工具篇-大数据组件的一些快捷Shell操作的更多相关文章
- 基于ambari搭建hadoop生态圈大数据组件
Ambari介绍1Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应.管理和监控.Ambari已支持大多数Hadoop组件,包括HDFS.MapReduce.H ...
- 大数据组件原理总结-Hadoop、Hbase、Kafka、Zookeeper、Spark
Hadoop原理 分为HDFS与Yarn两个部分.HDFS有Namenode和Datanode两个部分.每个节点占用一个电脑.Datanode定时向Namenode发送心跳包,心跳包中包含Datano ...
- 论各类BI工具的“大数据”特性!
市面上的BI工具形形色色,功能性能包装得十分亮丽,但实际应用中我们往往更关注的是朴实的技术特性和解决方案.对于大数据,未来的应用趋势不可抵挡,很多企业也正存在大数据分析处理展现的需求,以下我们列举市面 ...
- 零基础入门到精通:Python大数据与机器学习之Pandas-数据操作
在这里还是要推荐下我自己建的Python开发学习群:483546416,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python ...
- 前端见微知著工具篇:Bower组件管控
在上一篇文章中,我们提到了利用Grunt可以完成的内容,其中最主要的功能就是利用各种Node的组件来搭配出一个自动化高亮,自动化运行等的Web前端开发环境.但是Bower也是一个专门来管理各种依赖组件 ...
- mysql 开发进阶篇系列 35 工具篇 mysqldump(数据导出工具)
一.概述 mysqldump客户端工具是用来备份数据库或在不同数据库之间进行数据迁移.备份内容包含创建表或装载表的sql语句.mysqldump目前是mysql中最常用的备份工具. 三种方式来调用my ...
- docker容器与大数据组件的冲突点
1.容器里面安装spark,外面的程序(安装spark主机的容器)会连接不上集群.理由:这个组件用的akka,连接上集群,会提示: akka.ErrorMonitor: dropping messag ...
- hadoop大数据组件启动
1.1.启动集群 sbin/start-dfs.sh注:这个启动脚本是通过ssh对多个节点的namenode.datanode.journalnode以及zkfc进程进行批量启动的. 1.2.启动Na ...
- 小记---------CDH版大数据组件--clouderManager UI界面
启动 /opt/cm-5.14.0/etc/init.d/clouder-scm-server start /opt/cm-5.14.0/etc/init.d/clouder-scm-agent st ...
随机推荐
- 我们为什么要在 PHPStorm 中标记目录
问题来源 (1)要开发的项目位于PHPStorm打开的项目的二级目录下,使用PHPStorm来开发Laravel项目 提供的教程在代码自动定位和智能提醒方面,存在无效的情况: (2)使用gulp作为项 ...
- DB2日期转格式化字符串
DB2 应该有个 TO_CHAR 的函数. 用来把 日期 转换为 字符串 1 2 3 4 5 6 7 8 9 10 db2 => SELECT db2 (cont.) => TO ...
- 基于etcd插件的CoreDNS动态域名添加
前提条件:已经有一个可用的etcd环境. 一.CoreDNS简介 CoreDNS是一个DNS服务器,和Caddy Server具有相同的模型:它链接插件.CoreDNS是云本土计算基金会启动阶段项目. ...
- CodeForces 687A NP-Hard Problem (二分图)
题意:给定 n 条边,然后让你把它分成两组,每组都有所有边的一个端点. 析:一开始我是先判定环,以为就不能成立,其实不是这样的,有环也行.用dfs进行搜索,并标记每一个端点,如果标记过并且和以前不一样 ...
- HDU 1071 The area (数学定积分)
题意:求阴影部分面积. 析:没什么可说的,就是一个普通的定积分. 代码如下: #include <cstdio> #include <iostream> using names ...
- CI框架入门教程
1. URL常用的相关函数 url相关函数在辅助类url中第一,要使用它们必须先加载$this->load->helper('url')或者自动装载 site_url('控制器/方法 ...
- swift -pop的简单动画
//1.新建空文件 命名Podfile //2.写入 pod ‘pop’,’~>1.0’ 保存 //3.打开终端,进入项目路径 执行pod install //4.新建桥接头文件 导入#im ...
- (博弈 sg入门)kiki's game -- hdu -- 2147
链接: http://acm.hdu.edu.cn/showproblem.php?pid=2147 题意: 在一个n*m的棋盘上,从 (1,m),即右上角开始向左下角走. 下棋者只能往左边(lef ...
- JVM GC 机制与性能优化
目录(?)[+] 1 背景介绍 与C/C++相比,JAVA并不要求我们去人为编写代码进行内存回收和垃圾清理.JAVA提供了垃圾回收器(garbage collector)来自动检测对象的作用域),可自 ...
- ZSTU4274 约素 2017-03-22 17:11 66人阅读 评论(0) 收藏
4274: 约素 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1807 Solved: 467 Description 判断一个正整数n的约数个数 ...
