03_尚硅谷大数据技术之Hadoop(HDFS)
大数据技术之Hadoop(HDFS)1. HDFS 概述1.1 HDFS 产出背景及定义1)HDFS 产生背景
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系 统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这 就是分布式文件管理系统。HDFS 只是分布式文件管理系统中的一种。
2)HDFS 定义
HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目 录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务 器有各自的角色。
HDFS 的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭 之后就不需要改变。
1.2 HDFS 优缺点HDFS优点
高容错
数据自动保存多个副本。它通过增加副本的形式,提高容错性。
某一个副本丢失以后,它可以自动恢复。
适合处理大数据
数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据;
文件规模:能够处理百万规模以上的文件数量,数量相当之大。
可构建在廉价机器上, ...
02_尚硅谷大数据技术之Hadoop(入门)
大数据技术之Hadoop(入门)第 1 章 Hadoop 概述1.1 Hadoop 是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
主要解决,海量数据的存储和海量数据的分析计算问题。
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
1.2 Hadoop 发展历史(了解)
Hadoop创始人Doug Cutting,为 了实 现与Google类似的全文搜索功能,他在Lucene框架基础上进行优 化升级,查询引擎和索引引擎。
2001年年底Lucene成为Apache基金会的一个子项目。
对于海量数据的场景,Lucene框 架面 对与Google同样的困难,存 储海量数据困难,检 索海 量速度慢。
学习和模仿Google解决这些问题的办法 :微型版Nutch。
可以说Google是Hadoop的思想之源(Google在大数据方面的三篇论文)
GFS —>HDFS Map-Reduce —>MR BigTable —>HBase
2003-2004年,Google公开了部分GFS和M ...
01_尚硅谷大数据技术之大数据概论
尚硅谷大数据技术之大数据概论1. 大数据概念 大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉、管理和 处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化 能力的海量、高增长率和多样化的信息资产。
大数据主要解决,海量数据的采集、存储和分析计算问题
按顺序给出数据存储单位:bit、Byte、 KB、MB、GB、TB、PB、EB、ZB、YB、 BB、NB、DB。 1Byte = 8bit 1K = 1024Byte 1MB = 1024K 1G = 1024M 1T = 1024G 1P = 1024T
2. 大数据特点(4V)1、Volume(大量) 截至目前,人类生产的所有印刷材料的数据量是200PB,而历史上全人类总共 说过的话的数据量大约是5EB。当前,典型个人计算机硬盘的容量为TB量级,而 一些大企业的数据量已经接近EB量级.
2、Velocity(高速) 这是大数据区分于传统数据挖掘的最 ...
容器管理工具
1. 安装Docker一键安装(推荐)12345# 使用阿里云curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun# 或者使用daocloud 选一个即可curl -sSL https://get.daocloud.io/docker | sh
手动安装12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849501. 确定你是CentOS7及以上版本 cat /etc/redhat-release2. yum安装gcc相关CentOS7能上外网yum -y install gccyum -y install gcc-c++3. 卸载旧版本yum -y remove docker docker-common docker-selinux docker-engine之前版本yum remove docker \ docker-client \ ...
Docker Compose 入门
Docker环境下的前后端分离项目部署与运维第1章 RR开源前后端分离项目
第2章 RR开源前后端分离项目下载与配置2.1 项目描述
项目描述: www.renren.io
项目地址: https://gitee.com/renrenio
2.2 后端项目下载与配置
下载后台源码,
后端:https://gitee.com/renrenio/renren-fast.git
前端:https://gitee.com/renrenio/renren-fast-vue.git
使用IDEA打开后端,Webstrom或者VScode打开前端
新建数据库renren_fast后端项目打开之后将mysql.sql导入数据库
导入数据库后运行该项目,访问 http://localhost:8080/renren-fast/swagger/index.html
2.3 前台项目的下载与配置
123456安装node.js 安装依赖&运行项目cd 工程目录npm install npm run dev
1234567891011firewall-cmd --permane ...
周阳大厂面试第三季
大厂面试第三季1.java基础1.1 58同城的java字符串常量池面试题code
123456789101112131415161718package com.hhf.study.javase;public class StringPool58Demo { public static void main(String[] args) { String str1 = new StringBuilder("58").append("tongcheng").toString(); System.out.println(str1); System.out.println(str1.intern()); System.out.println(str1 == str1.intern()); System.out.println("------------"); String str2 = new StringBuilder(&q ...
周阳大厂面试第二季(JVM篇)
大厂面试题之JVM+GC解析1. JVM垃圾回收的时候如何确定垃圾?是否知道什么是 GC Roots什么是垃圾
简单的说就是内存中已经不再被使用到的空间就是垃圾
要进行垃圾回收,如何判断一个对象是否可以被回收
引用计数法
枚举根节点做可达性分析(根搜索路径)
跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC Roots 没有任何引用链时,则证明此对象是不可用的。
图中,对象Object6、Object7、Object8虽然互相引用,但他们的GC Roots是不可到达的,所以它们将会被判定为是可回收的对象。
哪些对象可以作为 GC Roots 的对象:
虚拟机栈(栈帧中的局部变量区,也叫局部变量表)中引用的对象
方法区中的类静态属性引用的对象
方法去常量引用的对象
本地方法栈中 JNI (Native方法)引用的对象
2. 你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值2.1 JVM 的参数类型
标配参数
-version
-help
...
周阳大厂面试第二季(并发编程)
大厂面试题之JUC多线程及高并发1. 谈谈你对volatile的理解1.1 volatile是Java虚拟机提供的轻量级的同步机制
保证可见性
禁止指令排序
不保证原子性
1.2 JMM(Java 内存模型) 你谈谈基本概念
JMM 本身是一种抽象的概念并不是真实存在,它描述的是一组规定或则规范,通过这组规范定义了程序中的访问方式。
JMM 同步规定
线程解锁前,必须把共享变量的值刷新回主内存
线程加锁前,必须读取主内存的最新值到自己的工作内存
加锁解锁是同一把锁
由于 JVM 运行程序的实体是线程,而每个线程创建时 JVM 都会为其创建一个工作内存,工作内存是每个线程的私有数据区域,而 Java 内存模型中规定所有变量的储存在主内存,主内存是共享内存区域,所有的线程都可以访问,但线程对变量的操作(读取赋值等)必须都工作内存进行看。
首先要将变量从主内存拷贝的自己的工作内存空间,然后对变量进行操作,操作完成后再将变量写回主内存,不能直接操作主内存中的变量,工作内存中存储着主内存中的变量副本拷贝,前面说过,工作内存是每个线程的私有数据区域,因此不同的线程间无法访问对方的工作内存,线 ...
尚硅谷大厂面试第一季
大厂面试题第一季1. JavaSE面试题1.1 自增变量
代码的执行结果是什么呢?
123456789public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i = " + i); System.out.println("j = " + j); System.out.println("k = " + k); }
1)i = i++; 字节码解析
会先执行 = 号右边的,将 i 压入栈中,操作数栈为 1,然后 i 自增,局部变量表中 i 的值会从 1 变成 2,等号右边操作完成,然后是赋值操作,将操作数栈结果赋值 i 变量,则 i 变量的值为 1。
2)int j = i++; 字节码解析
首先执 ...
分布式session解决方案
集群/分布式环境下session处理策略会话控制[1]Cookie工作机制
浏览器访问服务器时会自动携带Cookie(如果有的话)。
[2]Session工作机制
根据浏览器端存储的名为JSESSIONID的Cookie查找服务器端保存的Session对象。
集群是个物理形态,分布式是个工作方式。
分布式:一个业务分拆多个子业务,部署在不同的服务器上
集群:同一个业务,部署在多个服务器上
为什么要处理session?
1这个问题想必大多数朋友都知道,在搭建完集群或者分布式环境之后,如果不做任何处理的话,网站将频繁的出现用户未登录 的现象。比如:集群中有A、B两台服务器,用户第一次访问网站时,Nginx将用户请求分发到A服务器,这时A服务器给用户创 建了一个Session,当用户第二次访问网站时,假设Nginx将用户请求分发到了B服务器上,而这时B服务器并不存在用户的 Session,所以就会出现用户未登录的情况,这对用户来说是不可忍受的。 所以我们在搭建集群/分布式环境之后,必须考虑的一个问题就是用户访问产生的session如何处理,即session的共享机制
...




