HDFS/HBase/ Phoenix shell常用命令汇总(宝典!!!)

一、HDFS常用命令

HDFS命令的基本语法:

hdfs dfs -<命令> [选项] <参数>

1.列出指定路径下的文件和目录

hdfs dfs -ls /user/hadoop

 2.创建一个新的目录

hdfs dfs -mkdir /user/hadoop/new_doc

3. 将本地文件或目录上传到 HDFS

hdfs dfs -put local_file.txt /user/hadoop/

4. 从 HDFS 下载文件或目录到本地文件系统

hdfs dfs -get /user/hadoop/file.txt local_dir/

5. 删除 HDFS 中的文件或目录

hdfs dfs -rm /user/hadoop/file.txt

6. 移动文件或目录

hdfs dfs -mv /user/hadoop/file.txt /user/hadoop/new_location/

8. 更改文件或目录的权限。

hdfs dfs -chmod 755 /user/hadoop/file.txt

这将把 /user/hadoop/file.txt 的权限更改为 755。

9. 更改文件或目录的所有者

hdfs dfs -chown hadoop_user /user/hadoop/file.txt

这将把 /user/hadoop/file.txt 的所有者更改为 hadoop_user。

10. 更改文件或目录的所属组

hdfs dfs -chgrp hadoop_group /user/hadoop/file.txt

这将把 /user/hadoop/file.txt 的所属组更改为 hadoop_group。

11. 计算文件或目录的大小

hdfs dfs -du /user/hadoop/file.txt

这将计算 /user/hadoop/file.txt 文件的大小。

12. 从本地文件系统复制文件到 HDFS。(这里是文件 不包含目录)

hdfs dfs -copyFromLocal local_file.txt /user/hadoop/

这将把本地文件 local_file.txt 复制到 /user/hadoop/ 目录中。

13. 从 HDFS 复制文件到本地文件系统。

hdfs dfs -copyToLocal /user/hadoop/file.txt local_directory/

这将从 HDFS 的 /user/hadoop/file.txt 复制文件,并将其保存到本地文件系统的 local_directory/ 目录中。

14. 将 HDFS 中的多个文件合并为一个本地文件。

hdfs dfs -getmerge /user/hadoop/files/ merged_file.txt

这将从 HDFS 的 /user/hadoop/files/ 目录中获取多个文件,并将它们合并为一个本地文件 merged_file.txt。

15. 显示文件的末尾内容。

hdfs dfs -tail /user/hadoop/file.txt

16. 以文本格式显示文件的内容。

hdfs dfs -text /user/hadoop/file.txt

这将以文本格式显示 HDFS 中 /user/hadoop/file.txt 文件的内容。

17. 统计文件和目录的数量。

hdfs dfs -count /user/hadoop/

这将统计 /user/hadoop/ 目录下的文件和目录的数量。

18. 设置文件的副本数

hdfs dfs -setrep -w 3 /user/hadoop/file.txt

这将把 /user/hadoop/file.txt 文件的副本数设置为 3。

19. 在 HDFS 上创建一个空文件

hdfs dfs -touchz /user/hadoop/empty_file.txt

这将在 HDFS 的 /user/hadoop/ 目录下创建一个名为 empty_file.txt 的空文件。

20. 检查文件或目录的存在性。

hdfs dfs -test -e /user/hadoop/file.txt

检查 /user/hadoop/file.txt 文件是否存在

二、HBase常用命令

进入hbase shell console:

$HBASE_HOME/bin/hbase shell

2.1表的管理

1.查看表名列表

hbase:001:0> list

 2.创建表

其中t2是表名,f1、f2是t1的列族。hbase中的表至少有一个列族。它们之中,列族直接影响hbase数据存储的物理特性。

hbase:007:0> create 't2', {NAME => 'f1', VERSIONS => 2}, {NAME => 'f2'}

结果为: 

这里任何一个空格或者语法错误都会引起错误,比如:

大家一定要仔细检查。 

可以通过help命令来查看对应的语法

help 'create'

这里会给出提示,根据提示复制粘贴,之后根据自己情况修改:

3.删除表

分两步:首先disable表,然后drop表。
例如:删除表t1。

hbase(main)> disable 't1'
hbase(main)> drop 't1'

 结果如下:

4.查看表结构

hbase(main)> describe 't1'

 结果如下:

5.修改表结构

修改表结构,必须先disable表,再enable表。

 例如:修改表test1的cf的TTL为180天。

 alter 't2',{NAME=>'f1',TTL=>'15552000'}

2.2 权限管理

1.分配权限

权限表示: "RWXCA"。

其中READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
例如,给用户‘test'分配对表2有读写的权限。

 grant 'test','RW','t1'

2.查看权限

例如,查看表t2的权限列表。

user_permission 't2'

 3.3表数据的增删改查

1.添加数据

例如:给表t2的添加一行记录:

rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系统默认。

put 't2','rowkey001','f1:col1','value01'

2.查询数据

例1:查询表t2,rowkey001中的f1下的col1的值。

get 't1','rowkey001', 'f1:col1'

get 't1','rowkey001', {COLUMN=>'f1:col1'}

可以看到,cell的内容有两条:timestamp、value

例2:查询表t2,rowkey002中的f1下的所有列值

get 't1','rowkey001'

rowkey001中存在两列"f1:col1"和“f1:col2”

例3:扫描表t2的前5条数据。
还可以添加STARTROW、TIMERANGE和FITLER等高级功能。

scan 't2',{LIMIT=>5} 

对于同一个rowkey001 属于同一个列族的不同列, 有不同的value值.

3.删除数据

 例1:删除表t1,rowkey001中的f1:col1的数据。(某一个单元格cell)

delete 't1','rowkey001','f1:col1'

例2:删除表t1,rowk001的数据。(一整行数据)

deleteall 't1','rowkey001'

例3:删除表t1的所有数据。

truncate 't1'

2.4 Region管理

1.移动region

encodeRegionName为regioName后面的编码,ServerName为master-status的Region Servers列表。

move '4343995a58be8e5bbc739af1e91cd72d', 'db-41.xxx.xxx.org,60020,1390274516739'

2.开启/关闭region

 balance_switch

3.手动split

语法:split 'regionName', 'splitKey'

2.5 插入数据

首先创建一个3column family的表

create 't1', {NAME => 'f1', VERSIONS => 1}, {NAME => 'f2', VERSIONS => 1}, {NAME => 'f3', VERSIONS => 1}

插入未指定col的family

put 't1', 'r1', 'f1', 'v1'

put 't1', 'r1', 'f1', 'v2'

put 't1', 'r1', 'f2', 'v3’

对于同一行同一列族的value值,hbase实行覆盖操作。 

插入指定column的family:

put 't1', 'r1', 'f1:c1', 'v1'

put 't1', 'r4', 'f1:c1', 'v1'

手工把memstore写到hfile中

 flush 't1'

 删除所有CF3的数据

deleteall 't1','r7' 

 

注意:一次只能put一个column,一次只能delete一个column。删除整行,使用deleteall命令。 

 

三、Phoenix常用命令 

1.进入

(hadoop01是主机名,2181是zookeeper的端口)

sqlline.py hadoop01:2181

2.退出

(结尾不加分号)

!quit

3.查询所有表

(注意结尾不加分号)

!tables

4.创建表

(除了上面带感叹号的语句,其余语句都得加分号)

表名和列族名以及表名如果需要小写都得加双引号

create table "person" ("id" integer not null primary key, "cf"."name" varchar, "cf"."age" integer);

这样创建出来的列族名称和列名都是大写的

create table "person" (id integer not null primary key, cf.name varchar, cf.age integer);

注意:表名和列族名区分大小写,加了双引号就必须用小写表名去查否则查不到。列名不区分大小写,显示是大写,用小写依然查得到。

5.删除表结构
drop table "person";
6.修改表结构
alter table "person" add sex varchar;
7.查看表结构信息
!describe "person"
8.创建表某一列索引
create index "person_index" on "person"("cf"."name");
9.删除索引
drop index "person_index" on "person"
10.向表中插入数据

(注意:数据值需要用引号时只能用单引号,双引号会报错)

upsert into "person" values(1,'zhangsan',27,'男');
11.删除表中数据
delete from "person" where name='zhangsan';
12. 修改表中的数据
upsert into "person"(id,sex) values(1, '女');

语法和mySQL极其相似

13.查询数据
select * from "person" where name='zhangsan';
select sex, ,count(sex) as num from "person" where age>20 group by sex;

谢谢你的观看,希望可以帮助你学好大数据!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值