Hadoop常用命令及范例

hadoop中的zookeeper,hdfs,以及hive,hbase都是hadoop的组件,要学会熟练掌握相关的命令及其使用规则,下面就是一些常用命令及对hbase和hive的操作语句,同时也列出了一些范例

start-dfs.sh

NameNode 进程启动:hadoop-daemon.sh start namenode

DataNode 进程启动:hadoop-daemon.sh start datanode

HA 高可用环境中需要启动的进程:

zookeeper

zkServer.sh start 启动

zkServer.sh stop 停止

zkServer.sh status 查看状态 leader follwer

journalnode 集群命令

hadoop-daemon.sh start journalnode 启动

hadoop-daemon.sh stop journalnode 停止

ZKFC

启动 zkfc 进程: hadoop-daemon.sh start zkfc

停止 zkfc 进程: hadoop-daemon.sh stop zkfc

1shell命令 管 理和 HDFS 的文件管 理。

1)启动 Zookeeper

zkServer.sh start

2)启动 HDFS 的命令

start-dfs.sh

3)启动 Yarn 的命令

start-yarn.sh

4)显示 HDFS /data/test 目录信息

hadoop fs -mkdir /data/test

hadoop fs -lsr /data/test

5)将本地文件/tmp/log.txt 文件上传到/data/test 目录中

hadoop fs -put /tmp/log.txt /data/test

6)设置文件/data/test/log.txt 的副本数为 3

hadoop fs -setrep -w 3 /data/test/log.txt

7)显示/data/test/log.txt 文件内容

hadoop fs -cat /data/test/log.txt

8)将/data/test/log.txt 文件移动到集群/user/hadoop 目录下

hadoop fs -mkdir /user/hadoop

hadoop fs -mv /data/test/log.txt /user/hadoop

9)将/data/test/log.txt 文件下载到/home/hadoop 目录下

hadoop fs -copyToLocal /data/test/log.txt /home/hadoop/

10)关闭 HDFS 命令

stop-dfs.sh

11)停止 Zookeeper

zkServer.sh stop

2.将学生数据存储到 Hive 数据仓库中,信息包括(学号,姓名,性别,年龄,联系方式,

邮箱),创建表语法如下:

启动 hive 前切记要先启动 mysql 数据库

create table student(sno string ,name string ,sex string ,age int ,phone string, email string) row

format delimited fields terminated by ',' ;1)将本地数据“/tmp/student.dat”加载到 student 表,写出操作语句

load data local inpath '/tmp/student.dat' overwrite into table student;

2)写 HQL 语句查询全部学生信息

select * from student;

3)写 HQL 语句查询各个年龄及对应学生数量

4select age,count(*) from student group by age;

5)写 HQL 语句查询全部学生的姓名和性别

select name,sex from student;

6)写 HQL 语句查询年龄为 18 的学生姓名和联系方式

select name,phone from student where age=18;

7)写 HQL 语句查看 student 表结构

describe student;

8)写 HQL 语句删除 student

drop table student;

9)导出 生 地/home/hadoop/out 目录 ,写出 语

from student insert overwrite local directory '/home/hadoop/out' select *;

3.员工表 employee 包含两个列族 basic info,使用 shell 命令完成以下操作。

1)启动 HBase 集群

注意:在启动 hbase 集群前,需要将 zookeeper,hdfs,yarn 及历史服务器启动

zkServer.sh start

start-dfs.sh

start-yarn.sh

mr-jobhistory-daemon.sh start historyserver

启动 hbase 集群

start-hbase.sh

hbase shell

2)在 HBase 中创建 employee

create 'employee','basic','info'

3)一个员工行键为“19006”,basic 列族有 sex 列,值为“男”,添加该值

put 'employee','19006','basic:sex','nan'

4)获取行键为“19002”的员工的性别信息

get 'employee','19006','basic:sex'

5)获取行键为“19002”的员工的 info 列族所有数据

get 'employee','19006','info'

6)查询所有员工的数据

scan 'employee'

7)统计 employee 表的行数

count 'employee'

8)关闭 HBase 集群

stop-hbase.sh

********

9)单独启动和关闭 hadoop 服务10) 启动名称节点

11hadoop-daemon.sh start namenode

12) 启动数据节点

13hadoop-daemons.sh start datanode slave

14)开启 resourcemanager

15yarn-daemon.sh start resourcemanager

16)停止一个数据节点

17hadoop-daemon.sh stop datanode

18)重新开启

19hadoop-daemon.sh start datanode

HBase基本语法及示例: 1)建数据表,包含两个列族,第一个列族保留版本为 2,第二个列族保留版本为 1

create 'stu',{NAME=>'info',VERSIONS=>2},{NAME=>'grade'}

2put 添加 , 一 一 识 message

put 'stu','zhangsan','info:message','16jiruangongyiban'

put 'stu','zhangsan','grade:c++','90'

3)使用 get scan 查询数据。

get 'stu' ,'zhangsan', 'info'

get 'stu', 'zhangsan',{COLUMNS=>'info:message',VERSIONS=>2}

scan 'stu'

Hbase 语法总结:

注意,在向 hbase 的表中添加数据的时候只能一列一列的添加

添加数据:

put '行键' '列族名:列名''数值'

获取数据:

get '表名','行键'

get '表名''行键','列族名'

get '表名''行键','列族名:列名'

get '表名''行键',{COLUMNS=>'列族名:列名'VERSIONS=>版本}

扫描数据:

scan '表名'

scan '表名' {COLUMNS=>'列族名'}

scan '表名' {COLUMNS=>'列族名:列名'}

scan '表名' {COLUMNS=>'列族名:列名'VERSIONS=>版本}

修改数据表:

alter '表名',{NAME=>'已经存在的列族名'VERSIONS=>版本}

清除数据表:

truncate '表名'

disable '表名' drop '表名'

Hive 示例: 使用 DDL 完成数据定义

按照下面学生信息创建学生表和标准身高体重表并加载数据,分别创建内部表、外部表、分区表和桶表,其中分区依据是专业名称,桶表分为 3 个桶。学生信息实例:

学号 姓名 性别 爱好 年龄 学习成绩 通讯地址

实验内容 140010101 张三 男 足球,篮球,长跑等 19 C 程序:90,Java:85,DB:88 河南,郑州,

学 路 60 ,450001

内部表:

create table stu(sno int,sname string,sex string,hobby array<string>,age int,grade

map<string,int>,address struct<country:string,prrovice:string,street:string,postid:int>)row format

delimited fields terminated by ' ' collection items terminated by ',' map keys terminated by':';

加载数据:

load data local inpath 'kk.txt' overwrite into table stu;

分区表:

create table stupartition(sno int,sname string,sex string,hobby array<string>,age int,grade

map<string,int>,address struct<country:string,provice:string,street:string,postid:int>)partitioned

by (major string)row format delimited fields terminated by ' ' collection items terminated by ','

map keys terminated by':';

加载数据:

load data local inpath 'kk.txt' overwrite into table stupartition partition(major='jsj');

桶表:

create table stubucket(sno int,sname string,sex string,hobby array<string>,age int,grade

map<string,int>,address struct<country:string,provice:string,street:string,postid:int>)clustered by

(age) into 3 buckets row format delimited fields terminated by ' ' collection items terminated by

',' map keys terminated by':';

设置使用分桶属性:set hive.enforce.bucketing=true;

加载数据:

load data local inpath 'kk.txt' overwrite into table stubucket;

查看数据存储位置可以看到桶表中的数据

hadoop fs -ls /user/hive/warehouse

外部表:

create external table stuexternal(sno int,sname string,sex string,hobby array<string>,age

int,grade map<string,int>,address

struct<country:string,provice:string,street:string,postid:int>)row format delimited fields

terminated by ' ' collection items terminated by ',' map keys terminated by':' location

'/user/hive/external/stuexternal';

加载数据:

load data local inpath 'kk.txt' overwrite into table stuexternal;

标准身高体重实例: 年龄 身高范围 体重范围

19 160-170 60-65

身高体重内部表:

create table shengao(age int,highth struct<down:int,up:int>,weighth struct<min:int,max:int>)row

format delimited fields terminated by ' ' collection items terminated by '-';'

加载数据:

load data local inpath 'shengao.txt' overwrite into table shengao;

3.使用 DML 完成数据查询

查询指定学生的第一爱好和通讯邮编;查询指定学生姓名、性别和身高范围;查询有对应身高范围和体重范围的学生信息;查询软件工程专业学生总人数;查询各专业学生的

平均年龄。

查询指定学生的第一爱好和通讯邮编;

select hobby[0],address.postid from stu where sname='aa';

查询指定学生姓名、性别和身高范围;

select sex,highth from stu left outer join shengao on stu.age=shengao.age where stu.sname='aa';

查询有对应身高范围和体重范围的学生信息;

select * from stu left outer join shengao on stu.age=shengao.age where highth.up=170 and

highth.down=160 and weighth.max=65 and weighth.min=60;

查询软件工程专业学生总人数;

select count(*) from stupartition where major='rjgc';

查询各专业学生的平均年龄。

select avg(age) major from stupartition group by(major);

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值