1.shell脚本编程
shell中有3种变量:用户变量、环境变量、特殊变量;变量的使用最好就是使用双引号括起来。
变量需要遵循的规则:
变量名可以由字母、数字和下画线组成,但是不能以数字开头。 变量的默认类型都是字符串型,如果要进行数值运算,则必须使用特殊命令。变量用等号"="连接值,"="左右两侧不能有空格。变量值中如果有空格,则需要使用单引号或双引号包含,如 test="hello world!"。双引号括起 来的内容"$"和反引号者都拥有特殊含义,而单引号括起来的内容都是普通字符。
常见的环境变量:
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 指主机的名称
SHELL 当前用户Shell类型
LANGUGE 语言相关的环境变量,多语言可以修改此环境变量
MAIL 当前用户的邮件存放目录
PS1 基本提示符,对于root用户是#,对于普通用户是$
$* 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " $* " 等价于 "1 2 3"(传递了一个参数),而 "$@" 等价于 "1" "2" "3"(传递了三个参数)。
字符串也用双引号。拼接字符串 用双引号就对了。
shell编程的计算与普通语言的计算方式一样:
运算符 |
说明 |
举例 |
+ |
加法 |
`expr $a + $b` 结果为 30。 |
- |
减法 |
`expr $a - $b` 结果为 -10。 |
* |
乘法 |
`expr $a \* $b` 结果为 200。 |
/ |
除法 |
`expr $b / $a` 结果为 2。 |
% |
取余 |
`expr $b % $a` 结果为 0。 |
= |
赋值 |
a=$b 将把变量 b 的值赋给 a。 |
== |
相等。用于比较两个数字,相同则返回 true。 |
[ a == b ] 返回 false。 |
!= |
不相等。用于比较两个数字,不相同则返回 true。 |
[ a != b ] 返回 true。 |
语句判断与其他语句判断的形式相同;
函数的调用也与Java c++等相同;所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。
调用函数时可以向其传递参数。在函数体内部,通过 的形式来获取参数的值,例如,1表示第一个参数,$2表示第二个参数...
使用数组的方式也是索引;
2.Zookeeper基本知识
1)Zookeeper框架的作用以及地位:
1、Zookeeper是作为大数据生态圈框架中非常重要的一员
2、Zookeeper单独使用没有意义,主要是用来管理其他框架,被称为动物管理员
3、后期Hadoop的高可用框架、Kafka都需要依赖Zookeeper
2)Zookeeper的概述:
1、Zookeeper本身是一个分布式集群
2、Zookeeper是协调服务框架,用来协调其他框架,让其他框架能够和睦的正常的工作
3、Zookeeper本身可以看做是一个数据库,是可以存数据的,一般存储的都是配置信息\
4、Zookeeper集群满足过半机制,最坏情况下只有有超过一半的机器在工作,这个集群就能正常运转
3)Zookeeper的他特点
1、全局数据一致性,ZK中只要有一个服务器有数据,其他的主机会跟着进行数据同步,所有主机的数据都完全一样,不会出现有的主机有数据,有的主机没有数据
2、顺序性:某一台主机比如创建了两个节点,创建顺序是A,B,其他的主机创建顺序也一定是A,B
3、时效性:在ZK集群创建节点这个过程所消耗的时间是近乎实时的
4)Zookeeper集群的角色
+ Leader
1、集群的管理者,管理集群
2、Leader既可以处理写请求(事务操作),也处理读请求(非事务操作)
+ Follower(正式工)
1、集群的从角色
2、Follower只能处理读请求(非事务操作),如果收到客户端的写请求,则必须转发给Leader
3、各个Follower要不断的给Leader发送心跳包,告知其状态
4、如果Leader挂掉,则会从剩余的Follower中重新选举出新的Leader,有投票权
+ Observer(临时工、外包工)
Oberser除了不能选举新Leader之外,和Follower没有任何区别,类似被剥夺政治权利
标签:shell,双引号,基本知识,Follower,Zookeeper,集群,Leader From: https://www.cnblogs.com/kaiserchu/p/17038975.html