2021-12-04 迈向程序猿的第四十二步

目录

一.Shell的分支

1.1 if分支

1.1.1 if单分支

1.1.2 if双分支

1.1.3 if多分支

1.2 case分支

二.Shell的循环结构

2.1 while循环结构

2.2 until循环结构

2.3 for循环结构

2.4 select表单循环

三.Shift指令

四.Shell的函数

五.大数据的四大特征(4V)

六.Hadoop的概述

6.1 简介

6.2 Google的三篇论文

6.3 hadoop流行的三大版本

七.Hadoop的安装模式


一.Shell的分支

1.1 if分支

1.1.1 if单分支

if [ 条件 ] ;then
    执行逻辑
fi

1.1.2 if双分支

if [ 条件 ] ;then
    执行逻辑
else
	执行逻辑
fi

1.1.3 if多分支

if [ 条件 ] ;then
    执行逻辑
elif [ 条件 ];then
    执行逻辑
else
	执行逻辑
fi

注意:条件后面应该有一个分号 将 条件和then关键字隔开。如果不想加分号,then需要换行书写。

1.2 case分支

case ... in 
value1)
	执行逻辑
;;
value2)
	执行逻辑
;;
value3)
	执行逻辑
;;
.......
valueN)
	执行逻辑
;;
esac

小贴士: 最后一个分支匹配,用通配符*,表示不满足之前的所有分支,相当于default分支。

二.Shell的循环结构

2.1 while循环结构

while  [  条件表达式  ]
do
             #作业内容
done

2.2 until循环结构

until  [  条件表达式  ]
do
          #作业内容
done

2.3 for循环结构

for 变量  in  列表
do
	执行逻辑
done


列表的表示方式:
方式1:  使用空格隔开的一堆数据,比如
         monday tuesday wenseday thursday friday saturday sunday
方式2:   命令的返回结果为多行或多列的情况
         ls ~
方式3:   使用命令seq返回列表,语法:seq n1 n2   表示产生一个从n1到n2的自然数列表
         也可以使用{n1..n2}的这种写法
方式4:   cut指令的用法:   cut -d '分隔符' -fn  filename
         用来切分文件中的每一行的数据,使用分隔符切分,-fn中的n是获取第n列的意思  

扩展:for循环还有另外一种写法,适合在数值的处理上使用

for ((变量初始化;循环条件;变量的改变))
do
    执行逻辑
done

2.4 select表单循环

select variable in  列表
do
          #作业内容
done

三.Shift指令

shift这个单词,在计算机中,有“使数据产生位移”的含义。对于linux系统来说,在shell中,shift命令可以使参数产生位移。

[root@xxx01 bin]# vim ~/bin/test13.sh
#!/bin/bash
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"
echo "---------------------黄金分割线---------------------------"
shift
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"
echo "---------------------黄金分割线---------------------------"
shift
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"
echo "---------------------黄金分割线---------------------------"
shift
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"

测试如下:
[root@xxx01 bin]# bash test13.sh a b c d e f
all parameters ========>: a b c d e f
the first parameters ==>: a
---------------------黄金分割线---------------------------
all parameters ========>: b c d e f
the first parameters ==>: b
---------------------黄金分割线---------------------------
all parameters ========>: c d e f
the first parameters ==>: c
---------------------黄金分割线---------------------------
all parameters ========>: d e f
the first parameters ==>: d

四.Shell的函数

function funcName(){

}

语法解析:
1、关键字function 可加可不加
2、调用时,直接写函数名称,不添加()。
3、因为script是从上往下,从左往右执行的,所以,要先定义,后调用
4、return关键字,可加可不加,看需求
          加的话,返回值只能是0~255的整数,使用$?获取返回值
6、可以使用$n位置参数变量向函数里传值
[root@xxx01 bin]$ vim test15.sh
#!/bin/bash
function sum(){
  a=0
  for i in {1..100}
  do
     a=$[a+i]
  done
  echo "1~100 的和:$a"
}
sum        # 调用函数sum
 
[root@xxx01 bin]$ bash test15.sh
1~100 的和:5050
 
 
[root@xxx01 bin]$ source test15.sh   #另外一种执行方式
1~100 的和:5050

#因为test.sh已经被source指令引入到当前shell环境中,因此可以直接将函数当成命令进行使用,很方便吧
[root@xxx01 ~]$ sum      
1~100 的和:5050

五.大数据的四大特征(4V)

1. Volume:巨大的数据量                
2. Variety:数据类型多样化
    --(1):结构化的数据
        即有固定格式和有限长度的数据。
    --(2):半结构化的数据
        是一些XML或者HTML的格式的数据。
    --(3):非结构化的数据
        现在非结构化的数据越来越多,就是不定长、无固定格式的数据,例如网页、语音,视频等。
3. Velocity: 数据增长速度快
4. Value:价值密度低

六.Hadoop的概述

6.1 简介

1. hadoop是一个分布式存储和计算分析框架
2. 是java语言开发的
3. 具有良好的跨平台行
4. 代码开源,可以运行在廉价的硬件上。
5. hadoop的模块组成(重要)
    -- COMMON:  通用模块
    -- HDFS  :  存储模块, hadoop distributed FileSystem
    -- YARN  :  资源调度模块
    -- MAPREDUCE: 计算模块, 计算HDFS上的大数据集,移动计算而非移动数据
6. hadoop之父是道格·卡丁    

6.2 Google的三篇论文

- 2003年发表的《GFS》
    基于硬盘不够大、数据存储单份的安全隐患问题,提出的分布式文件系统用于存储的理论思想。
    · 解决了如何存储大数据集的问题
    GFS---->HDFS

- 2004年发表的《MapReduce》
     基于分布式文件系统的计算分析的编程框架模型。移动计算而非移动数据,分而治之。
    · 解决了如何快速分析大数据集的问题
    Mapreduce--->Hadoop里的Mapreduce模块

- 2006年发表的《BigTable》
    针对于传统型关系数据库不适合存储非结构化数据的缺点,提出了另一种适合存储大数据集的解决方案
    BigTable--->Hbase

6.3 hadoop流行的三大版本

社区版本:适合学习,免费,开源
chd版本:(Cloudera Hadoop), 有免费版本和收费版本,是最成型的商业发行版本- 支持多种安装方式(Cloudera Manager、YUM、RPM、Tarball)
Hortonworks Hadoop(HDP):完全开源,安装方便,提供了直观的用户安装界面和配置工具

七.Hadoop的安装模式

1. 独立(本地)模式:  
    - 运行在单台机器上
    - 没有分布式概念,使用的是本地文件系统
    - 用于对MapReduce程序的逻辑进行调试,确保程序的正确
2. 伪分布式模式:
    - 在一台机器上安装,使用的是分布式文件系统,非本地文件系统。
    - 相关守护进程(namenode,datanode,secondarynamenode)都运行在一台机器上,是独立的java进程。
    - 比Standalone mode多了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交互
3. 完全分布式模式:
    - 真实环境,多台机器,共同配合,来构建一个完整的分布式文件系统
    - 真实环境,hdfs中的相关守护进程会分布在不同的机器中,比如
        NameNode尽可能单独部署在一台硬件性能相对来说比较好的机器中。
        其他的每台机器上都会部署一个datanode守护进程,一般的硬件环境即可。
        secondarynamenode守护进程最好不要和namenode在同一台机器上。

(=-=,安装模式详解看下集分享,东西不多全是概念,多去官网上看原生英文文档能学到更多东西,周末是时候睡大觉了各位~~~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值