Linux
-
是什么?
- 操作系统
-
为什么要使用linux
- 开源
-
命令? 完成一个特定的任务
- 命令字 [参数] [选项]
- 吃饭 - 吃什么 - 怎么吃
- 螃蟹:清蒸 红烧
-
超级管理员:具备最高权限,有且仅有一个(root)
最常用的命令:
ls:查看当前目录下所有的内容
cd:切换目录
mkdir:新建一个目录
touch:新建一个文件
cat、more、less、head、tail:查看一个文件的内容
cp:赋值
mv:剪切
rm:删除
kill:干掉一个进程
reboot:重启
目录结构:树形结构,最上层叫根目录/
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
bin/sbin:可执行文件 sbin只有root用户才能执行
boot:启动文件
dev:linux万物皆文件,所有的文件标识
etc:配置文件
home:每新建一个用户,就会在home目录下新建一个跟用户同名的目录
lib/lib64:类库
media/mnt:挂载(将一个文件跟一个目录相关联),关联的目录一般放在media/mnt
opt:自己相关的软件
proc:系统内存相关的东西
root:普通用户的家目录在home,root用户的家目录 root目录
run:系统运行时所需要的文件
srv:系统数据目录
sys:系统配置
tmp:临时文件
usr:系统资源保存目录
var:日志
修改静态IP
#centos7文件为ifcfg-ens33
#centos6文件为ifcfg-eth0
#修改
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static 默认dhcp分配,static静态IP
ONBOOT=yes 开机自动启动
IPADDR=192.168.228.161 IP地址
NETMASK=255.255.255.0 子网掩码
GATEWAY=192.168.228.2 网关
DNS1=8.8.8.8 域名解析
# 重启网络
systemctl restart network
Hadoop
- 架构?
- HDFS:数据存储
- NameNode:元数据(索引)
- DataNode:具体的数据
- SeconDaryNameNode:不是NameNode的热备
- Yarn:资源调度
- ResourceManager:所有节点的老大(一个RM管理多个NM)
- NodeManager:单个节点的老大(一个NM管理多个container)
- container:每一个容器都是一个资源的集合(硬盘,内存,cpu,网络)
- ApplicationMaster:单个任务的老大
- 所有的MapReduce的任务都是Container中运行的
- 选择节点的时候原则(就近 - 随机)
- MapReduce:计算
- MapTask
- ReduceTask
- HDFS:数据存储
HDFS
-
优缺点
- 优点:
- 默认3副本,容灾性强(高容错率)
- 分布式的(适合大数据的离线处理)
- 对机器要求不高,廉价的机器就可以集群
- 缺点:
- 不适合做实时的数据分析,不适合低延时的访问
- 无法对大量的小文件进行处理
- 不支持并发写入
- 优点:
-
HDFS默认几副本?
- 默认3副本
-
一个切片的大小?
- 1.x 64M
- 2.x 128M
-
HDFS读取数据的过程?
- 1.打开文件
- 2.获取数据块的信息
- 3.读取请求
- 4.读取数据(可能在多个节点上读取数据)
- 5.关闭文件
-
HDFS数据块的大小会造成哪些影响
- 寻址:根据NameNode去寻找DataNode(时间)
- 处理:数据传输(时间)
- 默认的原则是寻址时间为处理时间的1%
- 处理时间跟什么有关系?跟硬盘的速率有关系,所以数据块的大小,根据是硬盘的速率来决定的
- 这也是为什么1.x的时候64m,2.x - 128M
- 数据块过大?
- 处理时间过长
- 数据块过小?
- 大量的时候都花在了寻址上
MapReduce
- MR的shuffle?
- 1.输入数据执行Map任务
- 2.写入缓存
- 3.溢写
- 4.文件归并
- MR的工作流程
- 1.要处理一个文件
- 2.将这个文件切片
- 3.每一片都由一个Map来执行
- 4.Map执行完之后交给Reduce
- 5.Reduce处理完之后输入最终结果