大数据正式4

大数据正式4

文件压缩与打包

  • 压缩
    • 通过某些算法,将文件尺寸进行相应的缩小,同时不损失文件的内容
  • 打包
    • 将多个问价或目录合并成一个文件,方便传递或部署
  • 压缩文件或打包文件扩展名
    • tar tar命令打包的数据,并没有压缩过
    • tar.gz tar命令打包,gzip压缩
    • gz gzip程序压缩的文件
    • tgz
    • tar.bz2 tar程序打包的文件,并经过bzip2压缩
    • bz2 bzip程序压缩的文件
    • Z compress(就得加密算法,目前基本不用)
    • 注:linux中的一般文件扩展名用途不大,但是压缩或打包文件的扩展名是必须的--因为不同压缩,算法不同,区别较大

常见的压缩,打包命令

  • compress压缩效率低下,压缩比也比较差,几乎已经不再使用
  • gzip与bzip
    • gzip比bzip2性能好,但bzip2可以获得更高的压缩比
  • tar可以将很多文件打包成一个文件
  • 文件压缩与打包
    • gzip命令(应用广泛):可以解开compress,zip,与gzip等软件压缩的文件
      • 选项与参数
        • c将压缩的数据输出到标准的输出(stdout)上
        • d解压缩
        • t可以用来检验一个压缩文件的一致性,看看文件有误错误
        • v可以显示出源文件/压缩文件的压缩比等信息
        • (1,2...9)压缩等级,1最快,但是压缩比最差;9最慢,但是压缩比最好;默认为6
        • l查看压缩文件的压缩比
      • 注意:源文件被压缩后,自动在源文件后追加".gz",源文件将不再存在
    • 解压gz文件:gzip -d 文件名.gz
      • 将文件名后的“.gz”删掉,源文件将不再存在
    • 保留源文件
      • 第一种方式:直接输出到终端上 gzip -c 文件名
      • 第二种方式:gzip -c 源文件名 > 源文件名.gz
  • zcat查看文件内容
    • zcat *.gz查看全部内容
    • zcat *.gz |head -n 查看前n行
    • cat可以读取纯文本内容,那个zcat则可以读取纯文本文件被压缩后的压缩文件
  • bzip2命令
    • 为了取代gzip,并提供更佳的压缩比
    • c将压缩的过程产生的数据输出到标准输出
    • d解压缩的参数
    • k保留源文件,而不会删除原始的文件
    • z压缩的参数
    • v可以显示出原文件/压缩文件案的压缩比等信息
    • (1,2...9)压缩比参数

1. 压缩并删除原文件
    bzip2 -z a.log     删除原文件
2. 压缩并保留源文件
    bzip2 -zk a.log
3. 解压并删除原文件
    bzip -d a.lg.bz2
4. 解压并保留源文件
    bzip -dk a.lg.bz2
  • compress,uncompress
    • r可以连同目录下的文件也同时给与删除
    • c将压缩数据输出为标准输出流
    • v可以列出压缩文件信息以及压缩过程中的一些文件名的变化
  • tar
    • c建立打包文件
    • t查看打包文件的内容含有哪些文件
    • x解打包或解压缩的功能
    • j通过bzip2的支持进行压缩/解压缩,此时文件最好为.tar.bz2
    • z通过gzip压缩/解压缩,tar.gz
    • v在解压缩的过程中,将正在处理的文件名显示出来
    • f filename后面要立刻要被处理的文件
    • C目录,这个选项用在解压缩,
    • p保留备份数据的原本权限与属性,常用于备份重要的配置文件
    • exclude=FILE在压缩过程中,不要将那些文件打包
    • 注意:-c,-t,-x不可同时出现在一串指令列中
    • tar常用指令组合
      • 压缩
        • tar -zcv -f 路径 *.tar.gz
        • tar -jcv -f 路径 *.tar.bz2
      • 查询
        • tar -ztv -f 路径 *.tar.gz
        • tar -ztv -f 路径 *.tar.bz2
      • 备份
        • tar -zpcv -f 路径 *.tar.gz
        • tar -jpcv -f 路径 *.tar.bz2
      • 解压到当前文件
        • tar -jxv -f 路径 *.tar.bz2 -C 指定目录
        • tar -zxv -f 路径 *.tar.gz -C 指定目录

rpm安装软件

  • RPM(RedHat Package Manager)安装管理
  • RPM的优点:
    • RPM内含有已经编译过的程序与配置文件等数据,可以让用户免除重新编译的困扰、
    • RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可以避免文件被错误安装
    • RPM文件本身提供软件版本信息、相依属性软件名称、软件用途说明,软件所含文件等信息,便于了解软件
    • RPM管理方式使用数据记录RPM文件的相关参数,便于升级、移除和验证。
  • rpm软件安装
    • /etc一些配置文件的目录。例如/etc/crontab
    • /usr/bin一些可执行文件
    • /usr/lib一些程序使用的动态链接库
    • /usr/share/doc一些基本的软件使用手册与说明书
    • /usr/share/man一些man page文件(Linux命令的随机帮助说明)
  • rpm安装软件
    • rpm -ivh 包名
    • 选项与参数
      • i install的意思
      • v 查看更细部的安装信息画面
      • h以安装信息列显示安装进度
    • 安装rpm软件
      • 安装单个rpm包rpm -ivh 包名
      • 安装多个rpm包rpm -ivh 包名 包名
      • 安装网上某个位置的rpm包 rpm -ivh 网络地址
  • 拷贝文件
    • 从本机到虚拟机rz
    • linux虚拟机到本机sz
  • rpm升级与更新
    • rpm -Uvh 包名
      • 如果后面接的软件没有安装过,系统会直接安装,若后面接的软件安装过但版本较旧,则更新至新版。
    • rpm -Fvh 包名
      • 如果后面接的软件并未安装到linux系统上,则该软件不会被安装,只有安装的软件才会升级
  • rpm查询
    • 原理:rpm在查询的时候,其实查询的地方是在/var/lib/rpm/这个目录下的数据库文件
    • ll /var/lib/rpm/
    • 查询已安装的软件,选项与参数
      • q仅查询,
      • qa列出所有的
      • qi列出详细的信息
      • ql列出完整路径名
      • qc列出该软件的所有配置文件
      • qd列出该软件说明文件
      • qR列出和该软件相依软件所含的文件
      • qf 文件名 该文件属于哪一个已安装的软件
      • qp查询某个rpm文件内的信息
  • rpm检查
    • V 软件名称 若该软件安装之后被改动过,会列出被修改过的文件
    • Va 列出目前系统上面rpm安装的所有包中修改过的文件
    • Vp 后面加的是rpm文件名,列出rpm包中的文件在当前系统中是否被安装或者修改
    • Vf列出某个文件(直接列出软件包安装之后的文件名)是否被改动过
  • rpm卸载
    • 找出与apr有关的软件名称,并尝试移除apr这个软件
    • rpm -qa|grep apr

yum

  • 缘来:rpm安装时依赖关系包,必须之前有依赖的包;卸载时候也是如此,如果有依赖,也必须删除。
  • yum:通过分析rpm的标头资料后,根据各软件的相关性制作出属性相依的解决方案,然后可以自动处理软件的依赖问题,以解决软件安装、移除、升级中遇到的繁琐操作的问题。
  • 基本配置:/etc/yum.repos.d
  • yum查询参数
    • search查询某个软件名称或者是描述的关键字
    • list列出目前yum所管理的所有的软件名称与版本,有点类似rpm -qa
    • info 同上,格式不太一样,不过有点类似-qai
  • yum安删更软件
    • yum安装/升级/卸载
    • yum [install|update|remove] 软件名

yum进阶

  • yum服务器与客户端架构图
    • 服务器-----{Mandark,CentOS,Red Hat,Fedora Core}
    • yum客户端机制:
      • 客户端每次使用yum执行命令的时候,都会解析/etc/yum.repos.d下面所有以.repo结尾的文件,这些配置文件指定了yum服务器的地址,yum会定期去“更新”,并下载保存到自己的cache里面,根据/etc/yum.conf里配置,每次执行首先会去cache中找依赖的包,没有则去yum服务器下载rpm安装
  • yum repo的配置文件信息
    • cd /etc/yum.repos.d
    • cat CentOS-Base.repo
  • 让yum支持hadoop分布式安装
    • 查看yum支持的所有软件包中是否存在hadoop
      • yum list|grep hadoop
    • 让当前系统的yum支持hadoop
      • 在本地/etc/yum.repos.d下创建clodera-cdh5.repo文件,保存hadoop对应的repo配置,而具体配置信息查询相关资料
      • 再次查看

1. yum服务器端
    1. 所有要发行的rpm包都放在yum服务器以供别人来下载,最重要的环节就是整理出每个rpm包的基本信息,在createerpo工具将基本的rpm包信息做成一张清单,这张清单就是描述每个rpm包的spec文件信息
2. 创建本地yum源
    1. 检查本机是否有web服务器,没有则安装rpm -qa |grep httpd
    2. 创建本地web服务器:yum install httpd
    3. 安装yum自带工具yum install yum -utils createrpo
    4. 在 /var/www/html/下,执行reposync -r cloudera -cdh5
    5. 通过http://ip:port/项目名来访问本地yum源
    6. 最后修改/etc/yum.repos.d/xxx repo文件中的baseurl换成本地地址

Shell

  • 是什么:
    • 简单的说:shell是用户和linux操作系统之间的接口,提供了与操作系统之间的通讯方式
    • 本质是一个命令解释器,它接收用户命令,然后调用相应的应用程序
    • 系统提供哪些种类shell:sh,base等
      • 主要学习/bin/base它兼容于sh,依据使用者需求,而加强sh版本
  • shell中的变量
    • 环境变量:执行命令和PATH有关
    • 变量的读取:
      • echo $参数
      • echo ${参数}
      • env|more
    • 如何将普通的变量变为环境变量:
      • 1. export 变量名=值
      • 2. 变量名1=值1 变量名2=值2 expert 变量名1 变量名2
  • shell设置规则

1. 变量名与值之间以一个=号连接
2. 等号两边不能直接接空字符
3. 变量名只能是英文字母,数字,下划线,但开头不能是数字
4. 变量内容若有空格符可使用双引号或单引号将变量内容结合起来--双引号中的字符保有原本的特性,单引号的特殊字符仅为一般字符(纯文本)
5. 可使用转义字符“\”将特殊字符变为一般字符
6. $变量 与 ${变量}等价
7. 变量的内容由其他命令提供,使用$()
    1. version=$(username)
8. 变量增加额外内容
    1. version=$version -$(uname-p)
    2. 通常变量名大写的为系统的默认变量,自己定义时小写,方便区分
例:
    1. a=111
    2. a=111-$a
    3. b='111-$a'
    4. c="11-$a"
    输出结果:
    1. 111-111
    2. 111-$a
    3. 111-111-111


9. 把一个命令定义成一个变量
    1. 反引号 cmd=`date+%f`
    2. $cmd=$(date+%f)

变量总结

  • 全局变量:一般大写,如环境变量
  • 局部变量:
    • 脚本函数中局部变量通常使用local修饰:local l
    • 表示i变量的有效范围在该函数内部有效
  • 把一个命令定义为一个变量
  • ${WEEK}day若变量和其他字符组成的新变量就必须给变量加上大括号,否则容易出错

常见的shell命令

  • 数据重定向
    • 数据的重定向就是将某个命令执行后应该出现在屏幕上的数据,给他传输到其他的地方,例如传输文件或是其他命令
    • 通常执行一条命令的时候会有标准的输出和标准错误输出
  • 标准输入:stdin:编号为0
  • 标准输出:stdout:编号为1
  • 标准错误输出:stderr:编号为2

例:
    1. 将ls的输出重定向到s.log当中去
        ll 1 > ls.log
    2. 命令执行判断
        1. $?:命令回传值 cmd1||cmd2
        2. &&:若为cmd1执行完且正确执行($?=0),则开始执行cmd2,若cmd1执行完毕且为错误($?不等于0),则执行cmd2
            举例:若果/tmp/test存在,则创建/tmp/test/jinxf
                ls /tmp/test && touch /tmp/test/jinxf                                            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘风御浪云帆之上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值