01-linux命令基础和zookeeper的介绍及安装

离线课程阶段第一天

三台虚拟机的创建并联网

记得我们的虚拟机需要重新生成mac地址以及更改内存大小

如果开启虚拟机的时候遇到权限不足的问题,是因为我们的虚拟机文件都是只读的原因造成的,将我们的虚拟机文件夹右键,属性 取消只读选项即可

查看windosw所有的服务命令:services.msc

linux的基础增强

  1. 查找命令 grep 记下来

    统一三台机器的路径

     mkdir -p /export/servers
     mkdir -p /export/softwares
    

查看机器的进程

ps   -ef   | grep  java 

2、find 命令 记下来

​ 查找 find / -name hello.txt 按照文件名字从根路径下面开始查找,查找一个叫做hello.txt的文件

3、locate 了解下

locate命令使用了一个小型的数据库,对我们linux系统文件建立索引

4、whereis 命令 了解下

​ 主要是用于定位可执行文件,源代码文件,帮助文档等

​ 查看命令所对应的文件

​ whereis ls

5、which 在环境变量path当中搜索我们的命令

which java

用户与用户组

注意:只能够使用root用户来添加普通用户,普通用户没法添加普通用户

添加普通用户:useradd hadoop

为普通用户设置密码: passwd hadoop

添加用户组:groupadd storm 添加用户组 了解

su与sudo

1、su 表示切换用户

从高权限向低权限用户切换,不需要密码,从低权限向高权限切换,需要高权限用户的密码

2、sudo 权限的借用 掌握

低权限用户,可以借用高权限用户的权限

root可以有最大的权限,由一个配置文件决定的

linux文件内容查找命令

非编辑模式下 /root 表示查找文件内容root的字符串

显示行号

​ 非编辑模式下 :set nu

为普通用户配置sudo权限

使用root用户执行命令

visudo
添加一行内容
hadoop ALL=(ALL) ALL

以后普通用户编辑任意权限不足的文件加上sudo 即可

sudo /etc/profile

linux的权限管理

权限不足都以用以下命令来解决

 chmod -R 777  helloworld/  递归的改变权限

改变所属用户以及所属组

chown -R hadoop:hadoop abc.txt

精确权限的控制

 chmod u+x world.txt    u  表示给当前用户添加权限
 chmod g+w world.txt    g  表示给组用户添加权限
 chmod o+w world.txt    o  表示其他用户添加什么权限

系统服务管理

如何停止或者启动系统的服务,已经查看系统的服务状态

service 服务名称 status|start|stop

关闭打开防火墙查看防火墙状态
service iptables  stop|start|status
关闭防火墙的自动启动服务
 chkconfig iptables off

网络管理

更改主机名

命令如下,尽量将我们的主机名改成FQDN的形式

vim /etc/sysconfig/network
HOSTNAME=node01.hadoop.com

更改ip地址以及mac地址

修改IP地址:
vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改mac地址:
vim /etc/udev/rules.d/70-persistent-net.rules

更改ip地址与域名的映射

119.75.217.26 ==》 www.baidu.com

www.baidu.com ==> 本机hosts文件 ==》 dns域名解析器 ==》 对应的ip 119.75.217.26

vim /etc/hosts
192.168.52.100 node01.hadoop.com node01

网络端口的监听

查看服务器上面所有的正在运行的服务的端口号以及进程号

netstat  -nltp

crontab 配置

linux当中的定时器的模块

crontab 一共六位,前面五位是定时模块,最后一位是执行的命令,最小粒度到分钟

crontab  -l 列出当前用户所有的定时任务
crontab -e

linux的shell编程

shell即是一种命令语言(主要用于开发编写一些可执行的脚本),也是一种程序设计语言(主要用来开发linux的内核)

shell脚本执行的两种方式

chmod  u+x hello.sh
bash  hello.sh   sh  hello.sh

shell当中变量的定义:

除了变量不空格,其他到处都空格

变量的定义以及应用

echo 'hello world'
#  我是注释

# 除了变量不空格,其他到处都空格
hello=world

echo ${hello}abc
echo  $helloabc
shell当中变量的三种类型

局部的变量:表示仅仅在当前的会话当中有效,其他的会话当中无效

环境变量:所有的shell脚本都可以使用的一些变量

SHELL变量:环境变量 + 局部变量 = shell变量 保证了我们shell脚本正常的运行

shell当中参数的传递

shell编程之if else


a=$1
b=$2


if [ $a -eq $b    ]
then
   echo "a 等于b"
elif  [ $a  -gt $b ]
then
   echo "a  大于  b"
else
   echo "a  小于  b  "

fi
shell编程之for循环
for m in node01 node02  node03
do
 echo $m
done
shell编程之while循环
#!/bin/bash

i=1
while (( i<=3 ))
do
  let i++
  echo $i
done



while true
do
  echo `date`
  sleep 1
done 

shell编程之case 语句

echo '请你输入1到4之间的的数字'
echo  '你输入的数字为:'

read aNum
case $aNum in

1)
  echo "你选择的是1"
;;

2)
  echo "你选择的是2"
;;

3)
  echo "你选择的是3"
;;

4)
  echo "你选择的是4"
;;

*)
  echo "你没有输入1到4之间的数字,请不要随便乱输入,我会打死你的"
;;
esac

脚本语言:不用编译,所见即所得 php js shell html

shell编程之函数的定义
#!/bin/bash

 hello(){

        echo  $1
        echo $2
echo $3 
        echo "hello world"
}

hello $1 $2 $3

linux当中卸载rpm包的命令

 rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps

安装rpm包的命令

rpm  -ivh  xxx.rpm

zookeeper的学习介绍

zookeeper的介绍:分布式服务协调框架,主要用于辅助其他的框架正常执行工作的,一般不太需要我们过多的关注,只需要保证zk服务正常运行即可

主要用于解决分布式服务应用系统一致性的问题,本质上是一个分布式的小文件存储系统

可以提供各种功能

  • 统一命名服务 dubbo

  • 分布式配置管理 solr cloud

  • 分布式的消息队列 pub/sub 类似activeMQ

  • 分布式锁

  • 分布式协调

主从架构:有主节点,有从节点,主节点少数个,从节点多数个 工头, 搬砖的人有好多

主备架构:有主节点,有备份节点 解决我们主节点单点故障的问题

在很多系统架构当中,主从与主备没有严格的界限的区分,为了保证服务的7*24不宕机,一般都是主从主备一起用

zookeeper当中各个节点的主要的作用:

leader:主节点,主要用于处理非事务性以及事务性的请求,以及投票选举

follower:从节点,主要用于处理非事务性的请求,以及转发事务性的请求给leader,以及参加投票选举

observer:既不是主节点,也不是从节点,主要用于处理读数据的请求,增大zookeeper的并发量。不参与投票选举

zookeeper的特性

全局数据一致性:所有的机器看到的数据都是一样的

可靠性:如果消息被一台服务器接收,那么终将被所有的服务器接收

顺序性:如果A消息在B消息之前发布,那么所有的机器都是先处理A消息,再处理B消息

数据更新的原子性:我们所有的操作都是事务性的操作,要么全部成功,要么全部失败,没有中间状态

实时性:消息最终会被同步到所有的机器上面去

zookeeper的集群环境的安装

yum -y install lrzsz

zookeeper当中shell的操作

操作zk当中的数据节点:

​ 数据节点主要分为两大类:

​ 永久节点: 普通永久节点,序列化的永久节点

​ 创建普通的永久节点: create /hello abcworld

​ 创建永久序列化的节点:create -s /abc world

​ 永久节点不会消失,除非你手动的删除

​ 临时节点:普通的临时节点,序列化的临时节点

​ 客户端断开连接,临时节点消失

​ 创建普通的临时节点: create -e /mytemp helloworld

​ 创建序列化临时节点:create -e -s /mytemp2 abcworld

读取节点的数据:get /hello

更新节点数据的操作: set /hello seeyoutomorrow

删除节点的操作:删除末尾节点: delete /abc0000000001 递归删除:rmr /hello

注意事项:临时节点下面不能够有子节点

zookeeper的数据的模型:

采用的树形的层次结构,每一个节点,称之为一个znode,znode兼具有文件和文件夹的特性

文件夹:下面可以有很多的子文件以及子文件夹

文件:存储数据的特性

znode具有原子性的操作:要么操作成功,要么操作失败,没有中间状态

每个znode存储数据不超过1M

每个znode都是通过绝对路径来进行查找,没有相对路径这一说

znode的四种模型:

PERSISTENT:永久节点

EPHEMERAL:临时节点

PERSISTENT_SEQUENTIAL:永久节点、序列化

EPHEMERAL_SEQUENTIAL:临时节点、序列化

zookeeper的watch机制:是一种监听机制,类似于我们前面学过的listener

类似于java 23种设计模式当中的观察者模式

watch可以感知到我们节点的变化

通过javaAPI操作我们zk上面的节点

更改宿主机的的hosts文件

C:\Windows\System32\drivers\etc

网络编程:研究就是如何让两台计算机进行通信

网络通信三要素:ip地址 端口号 传输协议

IP地址:192.168.52.xxx 0-255

A类网址: 192.xxx.xxx.xxx 256*256*256

192.168.xx.xx

比较特殊的端口号 80

192.168.52.100

传输协议:UDP TCP

只要每秒钟给你看24帧以上的图片,你就不会发现我是一个图片

网络模型:

企业级应用开发

socket:套接字

网络通信模型:

阻塞、非阻塞 :研究的是如果资源没有主备好,程序该如何响应的问题

同步:继续等待

、非同步:返回一个标记给客户端,告诉客户端CPU没有准备好,等会儿再来

研究的是CPU的模型,如果资源没有准备好,CPU如何反应

RPC : Remote Procedure Call Protocol 远程过程调用,类似于调用我们本地的程序一样的,不用关心程序的服务端在哪来

课程总结

三台机器创建并联网 搞定

linux基础增强:

  • ​ 查找命令: grep find

  • ​ 用户与用户组

  • su与sudo 搞定

  • linux的权限管理 chmod chown 搞定

  • 系统服务管理 service xxx status|start|stop

  • 网络管理: 主机名配置 IP地址配置 域名映射 网络端口监听 crontab 配置

  • linux shell编程 尽量多掌握 jdk一键安装

  • 大数据集群的环境准备 搞定

  • zookeeper的集群的安装以及zookeeper的shell操作,zookeeper的数据模型,以及zookeeper的javaAPI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值