由于管理、协调、控制计算机各个硬件的工作
现在适用的很多软件都必须运行在操作系统上
windows,linux,macOS
云主机服务器
物理主机服务器
冗余技术:UPS(不间断电源系统)、双路或多路供电、发电机
做数据运算处理
CPU路数:单路==1个 双路==2个 四路==4个
CPU核数:把CPU比喻成厂房, 将CPU中的核数比喻成厂房中的工人, CPU核数是真正处理工作任务,CPU核数越多, 同时处理工作任务的效率越高
临时存储数据(断电数据即丢失)
程序 进程(存储在内存中) 守护进程
代码 运行起来的程序 根本停不下来的进程
永久存储数据(断电数据不会丢失)
硬盘种类:
机械硬盘(性能低) 固态硬盘(性能高) 硬盘接口(茶壶壶嘴):SATA< SCSI <SAS <PCI-E
服务器磁盘阵列
1.服务器上有多块硬盘保证数据不容易丢失
2.服务器上存储数据较多可以将多块硬盘进行整合
3.服务器上存储大容量数据效率更高
raid0,raid1,raid5
远程控制管理服务器的运行状态
远程安装操作系统
远程配置raid阵列信息
PS:一定要确认远程管理卡的默认地址信息
U盘安装系统
kickstart cobbler -- 无人值守安装系统
机柜里面线缆一定要布线整齐 设置标签
将一台计算机硬件"拆分"成多份分配使用
standard parition:标准分区
LVM:特殊分区 进行分区动态扩容/缩容
/boot:启动分区,保存和系统启动相关的文件
swap:交换分区,临时将硬盘的多余容量变为内存使用
内存<8GB swap分区大小=1.5倍内存容量
/: 根本区 将剩余容量都给根等价于C盘
/boot:200M
swap:1G,2G,分区大小=1.5倍内存容量
/:20G-200G
/data:剩余空间
/boot:200M
swap:1G,2G,分区大小=1.5倍内存容量
/:20G-200G
剩余空间不用分配
不支持很多鼠标操作(快捷键)
如果虚拟机出现故障需要亲自去调试太麻烦
secureCRT 收费版(破解版是有⻛险) xshell(推荐使⽤) "免费版" putty 没有什么功能 只能满⾜远程连接
每个连入网络的计算机都有一个IP地址,用于访问网络,类似身份证号,网络分类:IPV4、IPV6版本
一台计算机上运行多个程序,为了便于管理有端口号的概念,端口号有一定的范围并且是随机分配的,每个程序都有端口号
能够定位到具体的一台计算机上面的某个应用程序
""" 命令提示符 [root@XXXX ~]# root表示⽤户名信息 @为分隔符 XXXX为主机名称 ~表示所处⽬录位置,默认是家⽬录 """
1.查看网卡信息
ip a
2.测试网络
ping ip地址
3.查看当前路径下的文件信息(文件、文件夹...)
ls
4.查看linux系统下总命令数
连续按tab键即可
5.如何清空当前窗口信息
clear
6.切换文件路径
cd 路径名
7.返回上一级目录
cd .. # 返回多级需要加斜杠 cd ../..
""" 帮助命令 man(mannual) eg:man 命令信息 命令帮助信息中 语法中的中括号信息可有可无 ps:有些命令是不能通过man手册获取帮助信息 """
关机命令
shutdown shutdown -h 10 # 指定多少分钟后进行关机 shutdown -c # 取消关机方案 shutdown -h 0/now # 立即关机
重启命令
# 使用方法与关机差不多 shutdown shutdown -r 10 # 指定多少分钟后进行重启 shutdown -r 0/now # 表示进行立即重启操作 shutdown -c # 取消重启方案
1. 显示历史输⼊命令信息
利⽤⽅向键 上 下 或者输入history查看完整命令列表
2. 清楚所有屏幕信息输出
ctrl 键+ l
3. 中断取消命令执行过程
ctrl键 + c # cancel 取消
4. 快速移动光标到行首
ctrl键 + a
5. 快速移动光标到行尾
ctrl键+ e
6. 将光标所在位置到行首的信息进行删除(剪切)
ctrl键 + u # 将光标所在位置到行尾的信息进行删除(剪切) ctrl键 + k
7. 将剪切内容进行粘贴回来
ctrl键+ y
8. 锁定系统窗口信息状态
ctrl键 + s # 解锁系统窗口信息状态 ctrl键 + q
9. 系统命令补全快捷方式
tab键
10. 命令行中快速移动光标
# 按照英文单词进行移动光标 ctrl键 + 方向键 左 右
1 显示当前路径信息
pwd
2 切换目录结构
cd # 改变目录位置 cd - # 快速切换路径,返回到上一次所在路径信息 cd .. # 快速切换路径,返回到当前路径的上一级目录中 cd ../.. # 上多级
3 创建目录结构
mkdir
eg:
创建多级目录需要加参数-p
mkdir -p /oldgirl/oldbaby/heihei
建议:
''' 创建目录时以绝对路径创建目录'''
''' 强调:在linux系统中,尽量不要输入中文符号信息(命令行) '''
1)如何创建文件信息
touch 文件
2)如何检查文件或目录是否存在
ls # list # 显示文件/目录数据详细信息 ls -l a.txt # ls -ltr a.txt 倒序
3)如何查看文件信息
cat 文件
4)在空文件中生成数据信息
echo # 将信息进行输出 echo hello world # 等价于print('hello world') echo hello world > a.txt # w模式写入文件 echo baby.com >> a.txt # 追加模式写入
5)对文件或目录数据信息进行拷贝(复制)
语法:
cp 参数信息 要进行复制的信息 复制到什么位置
常见问题:
在复制文件时,不要在文件名称后面加上/ 一般只有目录后面有/ 文件没有存在会直接复制,如果已经存在会提示是否覆盖 cp -a -a == -d + -r + -p -d 和链接文件有关 -R 进行递归复制 -p 保持属性不变
6)对文件或目录数据信息进行剪切(移动)
mv # move mv 参数 要移动数据信息 移动到什么位置
7)数据的删除命令
rm # remove rm 参数 要删除的数据信息 # 删除oldboy目录中的hosts01文件 rm hosts01 # 删除目录操作 rm shanghai/ 报错 rm -r shanghai/ 正确 # 如何强制删除数据信息 rm -f olddog.txt 不提示 rm -rf jason 不提示
内部自带的vi
vi vi 你要编辑的文件信息
第一个里程:利用vi命令打开文件
vi oldboy.txt # 文件不存在会自动创建(先在内存中临时创建)
进入到编辑模式,开始编辑文件:
按键盘上小写字母 i
进行编辑
退出编辑模式
按esc进行退出
关闭打开的文件
:wq w-write q-quit 保存退出 :q! 不保存进行退出
如何将光标快速移动到最后一行 # 大写字母 G 如何将光标快速移动到第一行 # 小写字母 gg 如何快速移动光标到中间指定行 # 小写字母 10gg 如何快速移动光标到一行的行尾 # 符号信息 shift+$ 如何快速移动光标到一行的首部 # 数字信息 0
如何快速移动光标到下一行并进入编辑状态 # 小写字母 o 如何快速移动光标到一行的行尾并进行编辑 # 大写字母 A 如何快速删除光标所在位置到一行行尾所有信息并进入编辑状态 # 大写字母 C 如何清空当前行的所有内容信息并进入编辑状态 # 小写字母 cc
如何复制文本信息 # 小写字母 yy 如何复制多行信息 # 3yy 如何粘贴文本信息 # 小写字母 p 如何粘贴多行信息 # 3p 如何删除文本信息 # 小写字母 dd 实际是将指定行信息进行剪切 如何删除多行信息 # 3dd 将光标所在行到最后一行都删除 # 字母 dG
如何显示文本行号信息/如何取消行号 # :set nu/:set nonu 如何撤销编辑信息 # 小写字母 u undo 如何取消撤销操作 # ctrl + r redo 快速搜索文件信息 # /待搜索内容 n下一次匹配项
批量删除操作
vim是需要进行安装的:
yum install vim tree bash-completion -y
第一个步骤:移动光标到相应位置
第二个步骤:进入到批量编辑模式(视图块模式)
ctrl + v
第三个步骤:选中多行信息
第四个步骤:进行删除
小写字母 d 或者 x # 删除光标选中的内容
"""vim命令比vi命令功能更加强大 但是快捷方式一致"""
在linux中用到一个东西没有的话可以使用yum安装
yum install vim # 安装过程中会出现很多需要二次确认的过程 如果不想提示默认确认 yum install vim -y
编辑过程中链接出现中断,再次编辑文件会提示相应信息
删除隐藏文件
rm -f .oldboy.txt.swp
出现的原因:
1)编辑状态突然出现了中断 2)文件被多个人使用 '''总结:出现了隐藏文件,没有及时删除'''
1.linux根下面的目录是一个有层次的树状结构 2.linux每个目录可以挂载在不同的设备(磁盘)上挂载
1.拥有一个存储设备(光驱)
2.找到相应光驱
# ls /dev/cdrom # ls -l /dev/cdrom
3.进行挂载操作
mount /dev/cdrom /aaa/(挂载点目录一定存在)
4.确认是否挂载成功
ls /aaa
一块盘:根目录 二块盘:/usr目录 继续扩展>>>:FHS文件系统目录规范
cat /etc/sysconfig/network-scripts/ifcfg-eth0
'''如果要编辑网卡文件可以先提前备份一份数据''' cp XXX /tmp/XXX.bak ps:esc +. # 调用上一个命令最后一个参数信息 # 网卡文件修改后,必须重启网络服务 systemctl restart network
初始化软件安装
# 提供命令参数补全功能 systemctl yum install -y vim tree bash-completion
BOOTPROTO=none: 启动协议 获取IP地址的方法 自动获取 dhcp手动设置
DEFROUTE=yes: 开启了默认路由 网络(默认路由 动态路由 静态路由)
NAME=eth0:网卡逻辑名称
UUID=...:在虚拟化软件标识一些硬件设备信息
DEVICE=eth0:网卡设备名称
ONBOOT=yes:确保网卡是否处于激活状态
# 当虚拟机无法访问外网的时候,也许使该项为no,应该改为yes
IPADDR=10.0.0.200: IP地址设置
PREFIX=24: 设置子网掩码确保一个局域网里面可以连接多少台主机默认253
GATEWAY=10.0.0.254:网关信息,不同局域网之间进行通讯的必经关卡 需要和虚拟编辑器中nat网卡设置保持一致
IPV6_PRIVACY=no
DNS=114.114.114.114:DNS 域名解析服务
/etc/resolv.conf
centos6主机名称配置文件
/etc/sysconfig/network
centos7主机名称配置文件所在路径
cat /etc/hostname
vim /etc/hosts
网站页面信息变更方面:
小公司 直接调试线上服务器
大企业 直接调试测试服务器测试访问 模拟真实环境访问
1. 确认网关地址是否通畅
2. 确认网卡配置是否正确
3. 确认网络管理服务关闭
systemctl stop NetworkManager # 关闭网络管理服务 systemctl disable NetworkManager # 禁用网络管理服务 systemctl status NetworkManager # 查看网络管理服务
cat /etc/fstab
临时挂载:
mount /dev/cdrom /mnt
永久挂载:
修改一个和开机自动挂载相关的配置文件 /etc/fstab
vim /etc/rc.local
系统启动时候,有三种系统
A系统启动:网络服务运行 安全服务运行 存储服务运行 01级别 B系统启动:安全服务运行 存储服务运行 02级别 C系统启动:存储服务运行 03级别 运行启动级别不一样
centos6 (7种运行级别) 0 关机级别(init 0)
1 单用户模式(重置用户密码信息root 修复系统) 救援模式 2 多用户模式 NFS (没有网络服务) 3 多用户模式 (命令行模式) 4 未知 未使用 5 图形化界面模式(init 5) 6 重启级别
centos7 (target目标)
ls /usr/lib/systemd/system/runlevel*target -l poweroff.target rescue.target multi-user.target multi-user.target multi-user.target graphical.target reboot.target
cat /etc/profile
环境变量特征:
01. 环境变量都用大写字母表示 02. 环境变量可以被所有用户所使用 03. 环境一般是系统安装就已经设置
cat /etc/bashrc
使复杂命令简单化
ls -l /etc/hosts # 查看文件权限
ll /etc/hosts # 查看文件权限
'''别名的定义既可以在profile里面也可以在bashrc里设置''' /etc/profile 国法 /etc/bashrc 国法 ~/.bashrc 家规 ~/.bash_profile 家规
/etc/motd
# cat /etc/issue
/usr/local/ 用于保存用户安装软件程序信息
linux系统如何安装软件(四种方式)
# 可以解决软件的依赖关系
# 在系统中需要有软件安装包
eg:购买食材(非成品)进行烹饪 可以灵活调整食物的味道
设置软件安装路径 指定软件功能信息
eg:小零食即食即用 方便简单
经常发生变化的文件保存在variable
经常变化的文件>>>:日志文件
/var/log/messages 服务运行情况信息、系统运行或异常信息
/var/log/secure 用户登陆信息保存文件
规律查看日志信息
grep "Failed" /var/log/secure
对于日志文件过大必须要做切割处理
secure-0k > secure-100k > 大小范围10M > 切割secure-bak01 secure
记录一些硬件使用情况 硬件详细信息
#cat /proc/cpuinfo
性能优化
安全优化
编码优化
1)了解自己的系统情况
cat /etc/redhat-release
特征:
01. 由大写字母组成 02. 配置的环境变量所有用户都必须遵循 03. 系统中默认就有的变量信息
第一个环境变量:PS1 (命令提示符信息)
echo $PS1
修改环境变量:
第一个里程:临时修改
PS1="[\u@\h \w]\$" 错误修改环境变量方式 export PS1="[\u@\h \w]\$" 正确修改环境变量方式
第二个里程:永久修改
vim /etc/profile export PS1="[\u@\h \w]\$ " # 添加内容 source /etc/profile # 重新加载文件内容
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum repolis
需要下载wegt
yum install wegt -y
yum repolist
1.海量:数据量一定要大 2.高增长率:一定的时间内数据快速增长 3.多样化:数据的种类千奇百怪
1.海量数据的存储 2.海量数据的分析计算
bit(位)、Byte(字节)、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB
它是相当于一款数据库软件,更是一个大数据神态圈
MapReduce # 计算与资源调度 HDFS # 数据存储 Common # 辅助工具
MapReduce # 计算 Yarn # 资源调度 HDFS # 数据存储 Common # 辅助工具
NameNode(nn):存储文件的元数据 # 相当于目录 DataNode(dn):存储文件的真实数据 # 当对于文本内容 Secondary NameNode(2nn):辅助NameNode工作 # 相当于备用设施
Resource Manager:类似于大老板 Node Manager:类似于各部门经理 Application Master:类似于部门中真正干活的员工 Container:类似于每个部门拥有的各项资源
Map就是将复杂的任务拆分成多个小任务分发给不同的节点完成 Reduce就是将每个节点完成的任务汇总到一起
1.数据来源层 针对结构化数据(关系型数据库)采用sqoop进行数据同步 针对半结构化、非结构化数据(非关系型数据库)采用flume、kafka进行同步 更多请参考群内pdf文件
⼀个⽂件系统,通过⽬录树来定位⽂件; 其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各 ⾃的⻆⾊
1.高容错性
2.适合处理大数据量
3.可以构建在廉价机器上
1.不适合低延时数据访问
2.无法高效的对大量小文件进行存储
3.支持数据append(追加)
可以最多存储3个副本块
HDFS存储数据的数据块大小
1.X版本最小是64M其它版本是128M
'''数据块大小使用默认128M即可,不需要修改'''
热备:不停服更新
冷备:停服更新
热数据:使用频率较高的数据
冷数据:使用频率较低的数据
两个备份在同一个机架,另一个备份在其他机架
# 比用户名密码的方式更加安全 通过ssh远程连接服务器并执行想要命令 类似于Xshell 链接服务器有两种方式: 1.用户名和密码连接服务器 2.公钥私钥连接服务器
paramiko模块支持上面两种连接服务器的方式: 1.用户名和密码连接服务器 2.公钥私钥连接服务器
安装
pip3 install paramiko
主要服务 hadoop 管理整个hadoop集群 hdfs 管理数据存储 yarn 管理资源调度
1./etc/hadoop路径下
2./etc/hadoop
3./etc/hadoop路径下
4.退出到hadoop根目录下(hadoop-2.7.2)
6.浏览器界面Browse Directory
7.将hadoop-2.7.2路径下的wcinput文件上传到 hdfs路径下
8.在hdfs上实现字符统计
在hadoop-2.7.2路径下
在hadoop路径下
在hadoop-2.7.2路径下启动yarn
在hadoop-2.7.2路径下启动NodeManager
在hadoop路径下编辑文件
复制插入
<!-- 日志聚集功能使能 --> <property> <name>yarn.log-aggregationenable</name> <value>true</value> </property> <!-- 日志保留时间设置 7 天 --> <property> <name>yarn.log-aggregation.retainseconds</name> <value>604800</value> </property> ''' 注意:开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager 和 HistoryManager。 '''
1)准备 3台客户机
2)安装 JDK
3)配置环境变量
4)安装 Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置 ssh
9)群起并测试集群
1.配置文件位置:/opt/module/hadoop-2.7.2/etc/hadoop/slaves。
2.同步所有节点配置文件
3.将之前单节点启动的datanode、namenode全部退出
4.启动HDFS
5.验证每个节点对于启动的服务
jps查看照着之前的表格比较不能出错
6.启动yarn(一定要在hadoop103上启动 因为rm在这里)
7.验证每个节点对于启动的服务
返回目录