/bin、/sbin、/usr、/root、/home、/cd、/tmp、/etc、/proc、/boot、/dev、/sys、/var、/mnt、/opt、/src
ls、cd、pwd、mkdir、touch、echo、cp、mv、vi、In、cat、more、head、tail、find、grep、which、whereis、df、du、free、tar、gzip、bzip2、zip、date、shutdown、powoff、reboot、ping、ip addr、netstat、ps、pstree、top、kill、nohup、uptime、su、sudo、useradd、password、userdel、groupadd、chmod、chown、yum、rpm
配置
年 year、月 month、日 day、小时 hour、分钟 minute
*
代表所有、数字代表具体、-
数字与数字之间的范围、/
数字与数字之间做跳跃范围
定义变量、位置参数变量、环境变量、系统变量、预定义变量
运算符(expr)、${变量}、字符串、数组、if语句、循环语句、函数
CentOS主要版本
海量数据、具有高增长率、数据类型多样化
美团单车保修、饿了么杀熟、嘀嘀打车杀熟、电商推荐、对用户日常画像
数据源、数据采集与同步、数据存储、数据清洗、数据分析、数据展示
Hadoop是大数据常用框架提供数据统一存储与计算
Hadoop框架安装{本地模式(测试)、伪分布式(测试)、完全分布式(实际开发)}
hdfs dfs 主执行命令
mkdir、put、get、ls、cat、rm、cp、mv、chmod
HDFS中存储数据时,默认存储数据块大小是128M
块存储是分散存储,尽量每个节点都保留数据块(块的备份默认是三个)
向HDFS中提交和获取数据 读写流程
NameNode和DataNode之间使用心跳机制进行管理
NameNode和SecondaryNameNode之间使用的是检查点 fsimage和edits_log
利用IDEA编译进行HDFSAPI进行开发
分布式协调资源框架,解决分布式系统一致性问题
基于Linux系统中目录树结构的数据存储结构
ls /、create、get、set、delete、quit
利用IDEA进行zookeeperAPI操作
leader、follower、observer
进行投票选举 myid权重占比,zxid事务id、Epoch逻辑时间 原则epoch>zxid>myid
选举的时机 第一次启动Zookeeper或leader挂了
避免脑裂 zookeeper的个数是奇数个
利用Zookeeper进行高可用HDFS点的搭建提供主NameNode和从NameNode,去掉SecondaryNameNode
DataNode不变依旧存储数据
ActiveNameNode和StandbyNameNode作为集群管理
JournalNode作为NameNode通信数据机制提供一个ZKFC角色来管理NameNode之间切换,ZKFC依赖于Zookeeper作为切换依据
在搭建Hadoop集群时不仅提供HDFS分布式文件系统,也提供离线式计算引擎MR
在计算数据的时候数据分布在不同的节点上
在计算时移动数据OR计算时移动计算 考虑各个方面性能优势的前提下,产生了一个概念 移动数据不如移动计算
Hadoop毕竟是一个综合框架,所以在这个基础上就专门提供了一个调用任务计算的资源框架Yarn
Client作为提交者
JobTracker 初始作业,分配作业,与TaskTracker进行通信协调整个作业的调度
TaskTracker保持与JobTracker进行通信,在分配的数据片段上执行MR任务
Client提交作业
ResourceManager提供整个任务资源调度分配 内置Scheduler
NodeManager 每个节点的资源管理器,负责启动和监视Container资源使用情况,并向ResourceManager进行资源的报告
作业提交命令 Hadoop jar 使用Yarn就是使用Yarn jar
海量数据的计算操作,其中主要核心概念就是映射(Map)和规约(Reduce)
基于谷歌中一篇论文的计算引擎
Writeable接口
自定义序列化使用Java模式
保证数据可以在MR中进行有效传输
Combiner函数、合并小文件、可以自定义分区、自定义输出效果
为了后续学习Spark和Flink编程的语言,Scala语言与Java语言类似
var-可变变量
val-不可变变量
算数运算符
关系运算符
逻辑运算符
赋值运算符
Scala中是没有三目运算符的 ? :
Scala中只要是使用{}括起来都可以认为是块表达式,具备返回值的效果
标准的表达式 变量、常量和运算符组成
if分支语句和循环分支语句 都可以得到返回值但是多用于if分支语句
Scala中式没有Switch…case
函数是Scala中一等公民基本使用函数都可以解决大部分问题
Scala中本质上是区分函数和方法,因为方法的定义使用def 而函数会用val或匿名函数
方法的定义:def方法的名字(参数列表):返回值类型={方法体}
函数的定义
如果要使用可变集合需要导入Scala.collection.mutable——每个不可变都对应一个可变的
Array、Tuple、Map、List、Set
map、flatmap、foreach、filter、partition、find、takeWhile、dropWhile、contains、sortwith、sortBy、sorted、size、length、take、sum、reduce、fold
函数可以作为方法参数类型
可以使用匿名函数方式进行方法参数传递
也可以将方法作为方法参数进行传递(默认转换为函数)
函数也可以作为方法的返回值存在
闭包 和 柯里化
Scala中的对象与类的概念支持继承(单继承)
单例对象即Object修饰的类并且衍生出了伴生类和伴生对象并提供apply 和 unapply 方法
Scala中没有实现的概念只有继承概念 所以无论是类还是特质都是使用extends进行操作的多特质使用with
Scala中独有的类 case class样例类主要作用就是用于传递消息(即类名就是消息)和进行数据封装传递(提供主构造器进行数据封装进行传递)
模式匹配match…case
Scala中类是默认存在隐式转换操作{创建Scala类是默认导入java.long、scala、Predef}
隐式类、隐式转换函数、隐式参数
隐式转换是从当前类中进行查找、再查找包、再查找ScalaAPI如果都没有就要报错,否则进行转换操作
上界[B<:A] B类型的上界是A类型
下界[B>:A] B类型的下界是A类型
视界[B<%A] 表示B类型要转换为A类型是一个隐式转换
上下文界[B:A] 提供一个隐式转换可以将B引用到A中
逆变 [-A]、协变 [+B]、不变 [A]
Scala2.11Actor通信模型
Scala2.12Akka通信模型
无论是哪个通信模式使用的都是 邮箱通信操作模型,主要提供目的就是为了让各位了解它内部通信机制