自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 大数据的简要介绍

大数据【介绍】1)大数据是什么2)大数据特点3)大数据能做什么(海量数据背景下)4)大数据项目流程1)大数据是什么指数据集的大小超过了现有典型数据库软件和工具的处理能力的数据2)大数据特点①海量化(Volume):数据量从TB到PB②多样化(Variety):数据类型复杂,超过80%的数据是非结构化的③快速化(Velocity):数据量在持续增加(两位数的年增长率)数据的处理速度要求高④高价值(Value):在海量多样数据的快速分析下能够发挥出更高的数据价值3)大数据能做什么(海量

2020-10-04 21:25:31 80807 5

原创 Zookeeper的常用shell

注:节点操作必须使用绝对路径创建:create [-s 序列] [-e 临时节点] 路径数据例:create -e /abc 123 (临时节点:会话结束,节点消失,不能有子节点)cteate -s /def 456(序列节点:在给定的文件名后追加序列号 序列号依次递增)cteate/ghi 789 (永久节点:和会话没有关系,可以有子节点)修改:set 路径 数据例:set /abc 321查询:ls 路径 ...

2020-10-20 20:25:41 17374

原创 ZooKeeper集群角色

Leader:Zookeeper集群工作的核心。事务请求(写操作)的唯一调度和处理者,保证集群事务处理的顺序性;集群内部各个服务器的调度者。对于create,setData,delete等有写操作的请求,则需要统一转发给leader处理,leader需要决定编号、执行操作,这个过程称为一个事务。Follower:处理客户端非事务(读操作)请求,转发事务给Leader;参与集群Leader选举投票。此外,针对访问量比较大的zookeeper集群,还可新增观察者角色。..

2020-10-20 20:13:07 17391

原创 zookeeper集群搭建

搭建前提1.需要安装好jdk2.检测集群时间是否同步3.检测防火墙是否关闭4.检测主机 ip映射有没有配置步骤:第一步:将安装包解压 tar -zxvf zookeeper-3.4.5.tar.gz mv zookeeper-3.4.5 zookeeper(更名可有可无,我这里更名是为了后面路径写起来方便)第二步:修改环境变量(注意:有几台服务器修改几台) vi /etc/profile.d/zookeeper.sh(在profile.d里创建zookeeper.sh并编辑)

2020-10-20 19:47:58 17273

原创 ZooKeeper概述和特性

ZooKeeper概述Zookeeper是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题。Zookeeper本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树种节点进行有效管理。从而用来维护和监控存储的数据的状态变化。通过监控这些数据状态变化,从而可以达到基于数据的集群管理。ZooKeeper特性全局数据一致:集群中每个服务器保存一份相同的数据副本,client无论连接到哪个服务器,展示的数据都是一致的,这是最重要的特征

2020-10-19 21:16:23 17144

原创 HDFS适用和不适用场景

HDFS适用场景1、 海量数据存储2、 高容错3、 商用廉价的硬件4、 存储大文件5、 一次写入多次读取HDFS不适用场景1、 查询时效性要求低延迟的场景2、 大量小文件。3、 需要频繁修改数据的场景4、 多个用户同时操作一个文件...

2020-10-19 20:17:45 18075

原创 数据校验

数据校验1、 数据第一次写入成功后,会进行数据校验,获得校验和。2、 数据读取前,对数据进行校验,获得校验和,计算得到的校验和与第一次上传后的校验和进行对比。3、 两个校验和相同表示数据相同,可以提读取数据4、 两个校验和不相同表示数据不相同,节点去其他节点读取5、 数据节点周期进行校验和计算,防止数据丢失。...

2020-10-19 20:15:26 17408

原创 HDFS读取数据的流程

HDFS读取数据的流程1、客户端通过调用FileSystem对象的open()来读取希望打开的文件。2、 Client向NameNode发起RPC请求,来确定请求文件block所在的位置; 3、 NameNode会视情况返回文件的部分或者全部block列表,对于每个block,NameNode 都会返回含有该 block 副本的 DataNode 地址; 这些返回的 DN 地址,会按照集群拓扑结构得出 DataNode 与客户端的距离,然后进行排序,排序两个规则:网络拓扑结构中距离 Client 近

2020-10-19 20:14:22 17206

原创 HDFS写入数据的流程

HDFS写入数据的流程1、 client发起文件上传请求,通过RPC与NameNode建立通讯,NameNode检查目标文件是否已存在,父目录是否存在,返回是否可以上传;2、 client请求第一个block该传输到哪些DataNode服务器上;3、 NameNode根据配置文件中指定的备份数量及机架感知原理进行文件分配,返回可用的DataNode的地址如:A,B,C;4、 client请求3台DataNode中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B

2020-10-19 20:13:03 17180

原创 NameNode和DataNode的作用

NameNode的作用1、 维护目录树,维护命名空间。2、 负责确定指定的文件块到具体的Datanode结点的映射关系。(在客户端与Datanode之间共享数据)3、管理Datanode结点的状态报告

2020-10-19 20:09:09 20897

原创 数据副本存放机制

HDFS数据副本存放第一个副本在客户端所在的节点(客户端也是集群内的节点),若客户端在集群外,那么根据一定的计算规则选一个节点。第二份副本,在与第一份相同机柜,且不在同一个服务器的节点上。第三份与第一份第二份不在同一个机柜,且逻辑距离(网络拓扑)最近的机柜选择一个节点存储。...

2020-10-19 20:07:42 18022

原创 Hadoop集群安装部署

前期准备 1. 创建三台虚拟机2. 服务器主机名和IP配置(三台)3. 修改每个主机的/etc/hosts文件,添加IP和主机名的对应关系(三台)4. 管理节点到从节点配置无密码登录5. 配置jdk 1.8(三台)6. 关闭防火墙(三台)(永久关闭)7. 关闭selinux(三台) vi /etc/selinux/config SELINUX=enforcing --> SELINUX=disabled 重启系统安装流程1. 传软件包到管理节点,在管理节点解

2020-10-19 19:59:25 16706 1

原创 secondarynameNode如何辅助管理FSImage与Edits文件

由于editlog记录了集群运行期间所有对HDFS的相关操作,所以这个文件会很大,集群关闭后再次启动时会将Fsimage和editlog加载到内存中,进行合并,恢复到集群的。 由于editlog文件很大所以,集群再次启动时会花费较长时间。 为了加快集群的启动时间,所以使用secondaryNameNode辅助NameNode合并Fsimage和editlog原理如下:secondaryNameNode通知NameNode切换editlog secondaryNameNode从Name.

2020-10-14 21:21:36 17051 2

原创 Fsimage,Edits详解

NameNode元数据解析第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载edits和fsimages文件到内存 客户端对元数据进行增删改的请求 namenode记录操作日志,更新滚动日志。 namenode在内存中对数据进行增删改查。fsimage保存了最新的元数据检查点,在HDFS启动时加载fsimage的信息,包含了整个HDFS文件系统的所有目录和文件的信息。 对于文件来说包括了数据块描述信息、修改时间、访问时间等。 对于目录来

2020-10-14 20:52:27 17152

原创 传统数据与大数据的区别

传统数据与大数据的对比传统Linux系统与大数据linux系统安装的区别传统数据1.系统硬盘(与数据硬盘100%隔离)1)两块硬盘做一个RAID12)引导分区: 200M3)交换分区:内存的两倍空间4)根分区: /(剩下所有的空间)2.数据硬盘1)多个硬盘制作一个逻辑卷,即将多个物理磁盘制作成一个大的逻辑硬盘大数据1.系统硬盘1)两块硬盘做一个RAID12)引导分区: 200M3)交换分区: 可以不设置或设置的很小。因为在大数据中需要将其关闭4)根分区: / (剩下的所有的空

2020-10-14 20:16:52 18935

原创 查询每门课程成绩最好的前两名

建表语句点击详见– 查询每门课程成绩最好的前两名SELECT sc.c_id,sc.s_score FROM score sc WHERE (SELECT COUNT(*) FROM score WHERE sc.c_id = score.c_id AND sc.s_score<score.s_score)<2 ORDER BY sc.c_id ASC,sc.s_score DESC;...

2020-10-12 17:35:27 65068 1

原创 centOS6.9配置静态ip的3种方法

第一种:安装centOS系统时

2020-10-12 17:35:04 68202

原创 HDFS的shell

HDFS文件夹的增删改查上传aa文件夹到/:hadoop fs -mkdir /aa修改aa为bb: hadoop fs -mv /aa /bb删除bb文件夹:hdfs dfs -rmr /bb查询/目录下有哪些内容:hdfs dfs -ls /HDFS文件的增删改查上传文件abc.txt到/:hadoop fs -put abc.txt /修改abc.txt为abcdef.txt:hadoop fs -mv /abc.txt /abcdef.txt查询abcdef.txt中有什么

2020-10-12 17:31:43 16884

原创 centOS6.9硬盘挂载

centOS6.9硬盘挂载首先添加硬盘,添加后开机输入lsblk -f查看是显示已添加的硬盘我这里是sdb,这里我添加了一块20G的硬盘接着这里的sdb和上面的sda的样子不一样,所以需要通过分区来完成输入fdisk /dev/sdb (因为/dev是装设备文件的所以添加的硬盘要在这里面找,光驱同样也在这里)进入这里后开始分区输入m后输入n添加一个分区接着输入p给分区添加编号这里我设置了1号给第一个分区,然后就是设置磁盘的起始值1,从1开始下来就是结尾值这里我设置1300这

2020-10-11 16:21:10 18144 1

原创 查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩

建表语句点击详见– 查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩SELECT st.s_id,st.s_name,sc.c_id,sc.s_score FROM student st LEFT JOIN score sc ON sc.s_id=st.s_idLEFT JOIN course c ON c.c_id=sc.c_idWHERE (SELECT COUNT(1) FROM student st2 LEFT JOIN score sc2 ON sc2

2020-10-09 08:59:34 70891 3

原创 查询选修“张三“老师所授课程的学生中,成绩最高的学生信息及其成绩

建表语句点击详见– 查询选修"张三"老师所授课程的学生中,成绩最高的学生信息及其成绩SELECT st.*,c.c_name,sc.s_score,t.t_name FROM student stINNER JOIN score sc ON sc.s_id=st.s_idINNER JOIN course c ON c.c_id=sc.c_id INNER JOIN teacher t ON t.t_id=c.t_id AND t.t_name="张三"ORDER BY sc.

2020-10-09 08:06:26 61644 1

原创 求每门课程的学生人数

建表语句点击详见– 求每门课程的学生人数SELECT c.c_id,c.c_name,COUNT(1) FROM course cINNER JOIN score sc ON sc.c_id=c.c_idGROUP BY c.c_id

2020-10-09 08:04:58 59734 2

原创 查询课程编号为01且课程成绩在80分以上的学生的学号和姓名

建表语句点击详见– 查询课程编号为01且课程成绩在80分以上的学生的学号和姓名SELECT st.s_id,st.s_name,sc.s_score FROM student stINNER JOIN score sc ON sc.s_id=st.s_id AND sc.c_id="01" AND sc.s_score>=80

2020-10-09 08:03:48 71886

原创 查询不及格的课程

建表语句点击详见– 查询不及格的课程SELECT st.s_id,c.c_name,st.s_name,sc.s_score FROM student stINNER JOIN score sc ON sc.s_id=st.s_id AND sc.s_score<60INNER JOIN course c ON c.c_id=sc.c_id

2020-10-09 08:02:33 59886

原创 查询任何一门课程成绩在70分以上的姓名、课程名称和分数

建表语句点击详见– 查询任何一门课程成绩在70分以上的姓名、课程名称和分数SELECT st2.s_id,st2.s_name,c2.c_name,sc2.s_score FROM student st2LEFT JOIN score sc2 ON sc2.s_id=st2.s_idLEFT JOIN course c2 ON c2.c_id=sc2.c_id WHERE st2.s_id IN(SELECT st.s_id FROM student st LEFT J

2020-10-09 08:01:38 61183 1

原创 查询所有学生的课程及分数情况

建表语句点击详见– 查询所有学生的课程及分数情况SELECT st.s_id,st.s_name,c.c_name,sc.s_score FROM student stLEFT JOIN score sc ON sc.s_id=st.s_idLEFT JOIN course c ON c.c_id =sc.c_idORDER BY st.s_id,c.c_name

2020-10-09 08:00:13 59212

原创 HDFS

HDFSHDFS全称 Hadoop Distribute File System 即 Hadoop分布式文件系统

2020-10-09 07:53:19 57232

原创 hadoop-机架感知配置

机架感知配置第一步:机架感知需要人为进行配置,编写Python脚本“RackAware.py”。内容为服务器IP与交换机的对应关系。#!/usr/bin/python #-*-coding:UTF-8 -*- import sys rack = { "192.168.10.100":"NODE-SW001", "192.168.10.101":"NODE-SW002", "192.168.10.102":"NODE-S

2020-10-09 07:52:31 57102

原创 查询课程名称为“数学“,且分数低于60的学生姓名和分数

建表语句点击详见– 查询课程名称为"数学",且分数低于60的学生姓名和分数SELECT st.s_id,st.s_name,sc.s_score FROM student stINNER JOIN score sc ON sc.s_id=st.s_id AND sc.s_score<60INNER JOIN course c ON c.c_id=sc.c_id AND c.c_name ="数学" ...

2020-10-08 09:07:18 63231

原创 查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩

建表语句点击详见– 查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩SELECT st.s_id,st.s_name,AVG(sc.s_score) FROM student stLEFT JOIN score sc ON sc.s_id=st.s_idGROUP BY st.s_id HAVING AVG(sc.s_score)>=85...

2020-10-08 09:06:07 81995

原创 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列

建表语句点击详见– 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列SELECT c.c_id,c.c_name,AVG(sc.s_score) FROM course cINNER JOIN score sc ON sc.c_id=c.c_id GROUP BY c.c_id ORDER BY AVG(sc.s_score) DESC,c.c_id ASC...

2020-10-08 09:04:22 78637 3

原创 查询1990年出生的学生名单

建表语句点击详见– 查询1990年出生的学生名单SELECT st.* FROM student st WHERE st.s_birth LIKE "1990%";

2020-10-08 09:03:02 63523

原创 查询同名同性学生名单,并统计同名人数

建表语句点击详见– 查询同名同性学生名单,并统计同名人数SELECT st.*,COUNT(1) FROM student st GROUP BY st.s_name,st.s_sex HAVING COUNT(1)>1

2020-10-08 09:02:12 68168

原创 查询名字中含有“风“字的学生信息

建表语句点击详见– 查询名字中含有"风"字的学生信息SELECT st.* FROM student st WHERE st.s_name LIKE "%风%";

2020-10-08 09:00:08 60718

原创 查询男生、女生人数

建表语句点击详见– 查询男生、女生人数SELECT st.s_sex,COUNT(1) FROM student st GROUP BY st.s_sex

2020-10-08 08:03:46 65931

原创 查询出只有两门课程的全部学生的学号和姓名

建表语句点击详见– 查询出只有两门课程的全部学生的学号和姓名SELECT st.s_id,st.s_name FROM student st LEFT JOIN score sc ON sc.s_id=st.s_idINNER JOIN course c ON c.c_id=sc.c_id GROUP BY st.s_id HAVING COUNT(1)=2

2020-10-08 08:02:25 60923 1

原创 查询每门课程被选修的学生数

建表语句点击详见– 查询每门课程被选修的学生数SELECT c.c_id,c.c_name,COUNT(1)FROM course c LEFT JOIN score sc ON sc.c_id=c.c_idGROUP BY sc.c_id

2020-10-08 08:00:59 65607

原创 查询各科成绩前三名的记录

建表语句点击详见– 查询各科成绩前三名的记录SELECT a.* FROM ( SELECT st.s_id,st.s_name,c.c_id,c.c_name,sc.s_score FROM student st LEFT JOIN score sc ON sc.s_id=st.s_id INNER JOIN course c ON c.c_id=sc.c_id AND c.c_id='01' ORDER BY sc.s_score DESC LIMIT 0,3) aUNION ALL

2020-10-08 07:59:53 60872 2

原创 查询学生平均成绩及其名次

建表语句点击详见查询学生平均成绩及其名次SELECTst.s_id,st.s_name,ROUND((CASE WHEN AVG(sc.s_score) IS NULL THEN 0 ELSE AVG(sc.s_score) END),2) "avg" FROM student stLEFT JOIN score sc ON sc.s_id=st.s_idGROUP BY st.s_id ORDER BY AVG(sc.s_score) DESC...

2020-10-07 09:43:13 64162 2

原创 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比

建表语句点击详见– 统计各科成绩各分数段人数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分比SELECT c.c_id,c.c_name ,((SELECT COUNT(1) FROM score sc WHERE sc.c_id=c.c_id AND sc.s_score<=100 AND sc.s_score>80)/(SELECT COUNT(1) FROM score sc WHERE sc.c_id=c.c_id )) "100-

2020-10-07 09:41:26 72748

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除