大数据入门

Big Data

Linux学习

Linux目录结构

linux目录结构


Centos配网

CSDN


linux命令


ls

list directry

ls- 选项 -路径(list)

ls -a显示所有目录包含隐藏文件

ls -l 列表显示文件

ls -h人性化显示文件大小


pwd

print work directory

显示当前所在路径,从根目录开始的绝对路径


cd

change directry

cd 切到主目录(root)

cd + 目录

cd… 切上级目录


Hadoop

hdfs shell


ls

hadoop fs -ls / hdfs根目录下的文件

hadoop fs -ls -R / 递归显示文件列表


mkdir

hadoop fs mkdir /dir1 创建文件夹 /dir1

hadoop fs mkdir -p /dir1/aaa/bbb -p可以递归创建 /dir1/aaa/bbb


put

hadoop fs -put /root/1.txt /dir1/asd 1.txt文件(或者是一个目录)放到asd,asd不存在也会自动创建


get

Hadoop fs -get /文件 /本地路径


mv

hadoop fs -mv /路径 /目标路径 只能hdfs内部移动


rm

hadoop fs -rm -r(删除文件目录) -skipTrash(直接彻底删除)


cp

hadoop fs -cp /文件 /目标路径


cat

hadoop fs -cat aaa.txt 查看aaa.txt


Mapreduce测试
hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 2 10   

计算圆周率


读写速度测试
hadoop jar /export/server/hadoop- 2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 -fileSize 10MB

分布式文件系统 -写测试(读换成 -read,清除测试文件换 -clean) 10个文件 -文件大小 10mb

jar自动读hdfs /benchmarks/testdfsio/io_data 下的十个文件

Hive


启动


正常启动

进beeline打开hive服务指令:

hive --service hiveserver2 &



cd /export/server/spark-2.3.0-bin-hadoop2.7/bin

./beeline

!connect jdbc:hive2://node1:10000

尝试—beeline -u jdbc:hive2://hadoop00:10000


调试
#启动metastore服务

hive --service metastore & 

#启动hiveserver服务
hive --service hiveserver2 & 



cd /export/onekey

./start-all.sh

./stop-all.sh



cd /export/server/spark-2.3.0-bin-hadoop2.7/bin

./beeline

!connect jdbc:hive2://node1:10000

测试

use ods_didi;

select * from t_user_order limit 5;

查看metastore运行状况和id
nohup hive --service metastore > metastore.log 2>&1 & jobs

查看hiveserver2 运行状况和id

nohup hive --service hiveserver2 > hiveserver2 .log 2>&1 & jobs

runjar可能和metastore冲突,kill线程id

kill -s 9 PID

查看hive端口

netstat -anop|grep 10000

查看webUIi端口

netstat -anop|grep 10002

建库

默认存储路径50070上 /user/warehouse/ 下面

指定路径创建到hdfs根目录下root下

create database myhive2 location ‘/myhive22’ ;


查看数据库

查看myhive desc database myhive;


删除数据库

删除数据库

drop database myhive;

强制删除数据库,包含下面的表

drop database myhive cascade


建表


查看表

desc stu; 查看 stu 的基本信息,可看分区列

desc formatted stu; 查看 stu 表的详细结构信息,TYPE查看内外表

show create table stu; 查看表的创建语句


删除表

drop table stu ;


插入数据

inset 插入后在50070会生成小文件记录;(所以该方法仅作测试用)

查看生成文件的记录

hadoop fs **-cat**  /user/hive/warehouse/mydemo.db/stu/**part-00000-8c52fbfa-2f34-4f07-8e0a-fe1f340e56c5-c000**

load加载数据

create table if not exists stu2(id int,name string) row  format delimited fields terminated by '**\t**';

(tab)

load data local inpath ‘/export/data/hivedatas’ into table stu2;

load data local inpath 虚拟机路径 overwrite覆盖已有数据)into table 表名 ;

local表示从本地加载,不加local表示从hdfs加载


mysql

mysql -uroot -p

use hive;


外部表

create external table student(-----)row format delimited fields terminated by ‘\t’ location ‘/hive_table/student’ ;

location ☞hdfs位置

使用external关键字修饰为外部表

外部表删除只会删除在hive存储的元数据不会删除hdfs的数据,如果在hive重新创建原表,会直接加载hdfs的数据

所以外部表数据用于共享,内部表数据作为中间表


一级分区表

–创建一级分区表

create table score(sid string,cid string, sscore int) **partitioned by** (month string) row format delimited fields terminated by '\t';

–数据加载

load data local inpath '/export/data/hivedatas/score.txt' 

into table score **partition** (month='202006');

分区表对数据进行分类,按202006分类存储数据,但是仍在一个表里


多级分区表

–创建多级分区表

create table score2(sid string,cid string, sscore int) **partitioned by** (year string,month string, day string) 
row format delimited fields terminated by '\t'; 

–数据加载

load data local inpath ‘/export/data/hivedatas/score.txt’ into table score2 partition(year=‘2020’,month=‘06’,day=‘01’);

按年月日多级分区存储,desc 可查询分区信息


分区操作

查看分区

show partitions score;

添加分区

alter table score add partition(month=‘202008’);

alter table score add partition(month=‘202009’) partition(month = ‘202010’);

删除分区mn

alter table score drop partition(month = ‘202010’);


内连接

隐式内连接:
select * from A,B where 条件;

select * from teacher t , course c where t.tid = c.tid;

显示内连接:
select * from A inner join B on 条件;

输出 A B 字段的交集


外连接

左外连接:left outer join
select * from A left outer join B on 条件;

输出 A 和AB字段交集(以表为主).

右外连接:right outer join
select * from A right outer join B on 条件;

输出 B 和AB字段交集(以表为主)

满外连接:full outer join
select * from A full outer join B on 条件;

select * from teacher t full join course c on t.tid = c.tid;

输出 A B 满足的所有记录


数学函数

指定精度取整函数: round
语法: round(double a, int d)
说明:返回指定精度d的double类型
举例: hive> select round(3.1415926,4);
3.1416

取随机数函数: rand
语法: rand(),rand(int seed)
说明:返回一个0到1范围内的随机数。如果指定种子seed,则会返回固定的随机数

字符串连接函数-带分隔符:concat_ws
语法: concat_ws(string SEP, string A, string B…)
说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符
举例:
hive> select concat_ws(‘,’,‘abc’,‘def’,'gh’);
abc,def,gh

字符串截取函数:substr,substring
语法:
substr(string A, int start, int len),
substring(string A, intstart, int len)
返回值:
string 说明:返回字符串A从start位置开始长度为len的字符串
举例:
hive> select substr(‘abcde’,3,2);
cd
hive>select substring(‘abcde’,-2,2);
de


分组排名函数

partition by id 按照id分组

rank() over() as a 相同名次相同编号,总号不变

dense_rank() over() as b 相同名次不同编号,总号顺减

row_number() over() as c 相同名次不同编号,总号不变


行转列函数

行转列是指多行数据转换为一个列的字段。

Hive行转列用到的函数:
concat_ws(sep, str1,str2) --以分隔符拼接每个字符串
collect_set(col) --将某字段的值进行去重汇总,产生array类型字段

select deptno,concat_ws(“|”,collect_set(ename)) as ems from emp group by deptno;。


开窗函数

从开头累加到当前行
select user_id,createtime,pv,
sum(pv) over(partition by user_id order by createtime rows between unbounded preceding and current row) as pv2
from user_access;

从前3行累加到当前行
select user_id,createtime,pv, sum(pv) over(partition by user_id order by createtime rows between 3 preceding and current row) as pv4
from user_access;

从前3行累加到后一行
select user_id,createtime,pv, sum(pv) over(partition by user_id order by createtime rows between 3 preceding and 1 following) as pv5 from user_access;

可以计算sum()-max()-avg()-min()


zeppelin

启动

192.168.88.3:8090

类似annoconda jupter

清除缓存

ctrl + shift +delete

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值