大数据技能竞赛可能用到命令集合v1.0

解压

1
tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/

配环境变量

1
vim /etc/profile
1
source /etc/profile

防火墙

1
2
3
4
5
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

主机名

1
hostnamectl set-hostname px02

分发

1
scp -r hadoop/ px03:/usr/local/hadoop-2.9.2/etc/

ssh

1
2
ssh-keygen -t rsa
ssh-copy-id 地址

时间同步

1
2
3
4
date 查看时间
tzselect 选择时间
date -s 00:00 修改时间
ntpdate master同步

zookeeper

1
2
启动zkServer.sh start
状态zkServer.sh status

hadoop

1
2
3
4
5
6
启动
master格式化 hadoop namenode -format
start-all.sh
查看
master:50070
master:18088
1
2
3
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode

wordcount案例

1
2
3
hadoop fs -put '文件' 目录
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /input/wordcount.txt /output
hadoop fs -cat /output/part-r-00000

计算PI案例

1
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar pi 5 5

HDFS

1
可记做hadoop fs -shell命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 帮助
hadoop fs -help 命令
# 查看
hadoop fs -ls 目录
# 创建目录
hadoop fs -mkdir 目录
# 查看文件
hadoop fs -cat 文件
# 追加
hadoop fs -appendToFile 源文件 目标文件
# 从本地(不是windows)剪切粘贴到HDFS
hadoop fs -moveFromLocal 文件 目录
# 从本机拷贝 等同于 -put
hadoop fs -copyFromLocal 文件 目录
# 拷贝回本地 等同于 -get
hadoop fs -copyToLocal 文件 目录
# HDFS中拷贝到另一个路径
hadoop fs -cp 文件 目录
# 移动 -mv

hive

1
2
3
4
5
6
启动
slave1下
hive --service metastore
master下
hive
测试show databases;
1
库、表等可在web页面查看

创建库表

1
2
3
4
5
6
7
8
# 创建数据库
create database test;
# 创建管理表or内部表
create table st(id int,name string)
row format delimited fields terminated by '\t';
# 创建外部表
create external table dept(deptno int,dname string,loc int)
row format delimited fields terminated by '\t';

load导数据

1
2
# 导入数据 也可以自己建
load data local inpath '文件' into table 表名;

desc表

1
2
# 查看表格式化数据 可看类型
desc formatted dept;

分区表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建分区表 单的
create table dept_partition(dno int,dname string,loc string)
partitioned by(month string)
row format delimited fields terminated by '\t';
# 加载数据
load data local inpath '/opt/dept.txt' into table dept_partition partition(month='202006');
# 查询
select * from dept_partition;
select * from dept_partition where month=202006;
# 增加分区表 可以跟多个partition,空格隔开 感觉本质是文件夹
alter table dept_partition add partition(month='202004');
# 删除
add换drop,多个partition用逗号隔开
# 创建多分区
by(month string,day string) 举一反三

表修改

1
2
3
4
5
6
7
8
9
# 重命名表
alter table st rename to st01;
# 增加、修改、替换列信息
# 增加、替换
alter table st01 add|replace columns(age int);
# 更新
alter table st01 change age sex string;
# 删除表
drop table 表名;

插入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 通过查询语句插入数据
# 创建表
create table st(
> id int,name string)
> partitioned by(month string)
> row format delimited fields terminated by '\t';
# 插入基本的数据
insert into table st partition(month='202006')values(3,'zs'),(2,'ww');
# 查询单张表插入
insert overwrite table st partition(month='202007')
> select id,name from st;
# 查询多张插入
from student
> insert overwrite table student partition(month='201707')
> select id, name where month='201709'
> insert overwrite table student partition(month='201706')
> select id, name where month='201709';
# 查询语句中创建表并加入数据
create table st03
> as select id,name from st;

insert导出

1
2
3
4
5
# insert导出 导出目录,目录里有文件 去掉local可导到HDFS
# 未格式化
insert overwrite local directory '/opt/st' select * from st05;
# 格式化
insert overwrite local directory '/opt/st' row format delimited fields terminated by '\t' select * from st05;

其他

1
2
set 变量名=值
${hiveconf:变量名}
1
set hive.exec.mode.local.auto=true;

定时任务

1
2
3
4
5
6
7
8
9
crontab -e #写一个定时任务
键入i,进入编辑模式
输入内容:
# 每十分钟执行一次
*/10 * * * * usr/sbin/ntpdate master
# 早8到晚5,每半小时执行一次
*/30 5-17 * * * usr/sbin/ntpdate master
查看定时任务
crontab -l