美文网首页
大数据实战第0次课和第1次课个人总结

大数据实战第0次课和第1次课个人总结

作者: 快乐大数据 | 来源:发表于2017-12-21 00:25 被阅读0次

    第0次课 子节点设置和网络设置

     在终端打开

    (1)设置网络

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    ONBOOT=yes

    IPADDR=192.168.183.150

    NETMASK=255.255.255.0

    GATEWAY=192.168.183.1

    DNS1=192.168.183.1

    按esc :wq

    (2)设置主机名称

    vim /etc/sysconfig/network

    (3)重新启动网络

    service network restart

    (4)设置IP与主机名的映射关系

    vim /etc/hosts

    192.168.183.150 hadoop01

    (5)配置主机的网络

    (6)用SecureCRT连接虚拟机

    SSH2 连接到了192.168.183.150 这台主机上

    (7)关闭虚拟机的防火墙

    在SecureCRT上 service iptables status

    service iptables stop

    #检验防火墙状态 chkconfig iptables --list

    #把防火墙的自动启动关闭 chkconfig iptables off

    (8)linux上安装软件的方法

    yum install -y lrzsz

    rz 是在上传哪些文件

    sz install.log 就把文件下载到了本地 我的下载里面

    (9)下载jdk

    mkdir /bigdata

    cd /bigdata

    #上传jdk linux64位版本

    ll

    tar -zxvf jdk-8u151-linux-x64.tar.gz

    #修改 jdk-8u151-linux-x64.tar.gz的属组

    chown -R root:root jdk1.8.0_151

    (10)配置jdk的环境变量

    #查看当前jdk的版本和位置

    rpm -qa|grep jdk

    yum -y remove java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64

    yum -y remove java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64

    #先创制软连接

    ln -s /bigdata/jdk1.8.0_151 /usr/local/jdk

    #配置环境变量

    vim /etc/profile

    export JAVA_HOME=/usr/local/jdk

    export PATH=$PATH:${JAVA_HOME}/bin

    #重新编译环境变量文件,使其生效

    source /etc/profile

    java -version

    (11)对克隆虚拟机的修改(克隆过程略)

    #修改克隆虚拟机的硬件地址和IP

    启动hadoop02

    #查看当前克隆的虚拟机的IP地址

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    把UUID删除掉

    把HWADDR删除掉

    把IPADDR改成 192.168.183.151

    保存退出

    vim /etc/udev/rules.d/70-persistent-net.rules

    把hadoop01的 “eth0”那一行删掉

    把hadoop02的“eth1”那一行的“eth1”改成"eth0"

    #修改克隆虚拟机的名称

    vim /etc/sysconfig/network

    把hadoop01改成hadoop02

    #修改IP和主机的映射关系

    vim /etc/hosts

    添加

    192.168.183.151 hadoop02

    保存退出

    重启hadooop02

    在SECURE 02中先连接hadoop02 再查看主机名和IP地址

    hostname

    ifconfig

    第1次课 大数据实战第一课 hadoop生态圈与应用实战

    1 大数据处理流程

    第一步:数据采集

    收集公开或隐私的数据,部署应用程序,运行日志

    提取、转换、加载操作属于ETL的过程

    通常用Flume收集数据

    第二步:数据存储:通过HDFS,或者Kafka存储通过日志收集的数据

    第三步:把存储资源和计算资源合理分配和利用,通过YARN来执行

    第四步:数据计算

    通过批处理Mapreduce,流处理SparkStreaming,交互式分析(SparkSQL)进行数据的计算

    第五步,数据分析

    Hive,SparkMLLib,Druid

    第六步,展示数据分析结果

    Cboard,Echart

    2.分布式系统的特点与存在的问题

    并发性,同等,与并发性,缺乏全局时钟

    当某个节点存在通讯异常时,不能执行存储任务或处理任务,造成脑裂,同时还存在超时,请求失败等问题

    3.分布式CAP定理

    动物园管理可以保证 分区容错,可用性和数据的最终一致性。

    Zookeeper不能保证两个客户端能同时得到更新的数据,如果想强制数据同步,需要在读数据之前调用syne()接口来实现。

    Zookeeper更新一次数据要么成功,要么失败。

    4动物园管理 机器节点数/2取整+1大于一半的节点数,仍然可以保证数据的可用性。

    4.1动物园管理的架构,

    领导者  是从跟随者节点选举出来的,为客户端提供读写服务和发起选举;事务请求的唯一调度者和处理者。

    学习者

    跟随者  负责客户端的读请求服务,如果接收到写请求,就转发给领导节点。

    观察者  只负责领导者的的状态同步,接收客户端的读请求,不参与选举投票,提高系统读的功能。如果观察者挂掉了,就从跟随者中选举一个结点

    作为领导节点。

    4.2 动物园管理的数据写入

    遵循动物园通过原子消息广播实现数据一致性。

    处理写请求:

    客户端接收到写请求,跟随者把写请求转发给领导,领导发起广播事务提议,广播告知所有的跟随者。在广播之前,为这个事务分配

    一个全局的,单调递增的全局ID(zxid),将这个zxid和事务体绑定在一起,组成消息体。

    领导者把这个消息体为每个跟随者创建一个队列。在每个队列中放入应该处理的消息。在发送消息的时候,遵循先入先出的原则。先放入队列的先被广播出去,广播给跟随者。跟随者接收到领导者的提议后,以日志的形式写入到本地磁盘,给领导者返回一个响应。

    领导者接收到半数的相应后,就会广播给所有的跟随者:其他的跟随者该提交事务了,它自身也会提交事务。当跟随者都提交事务后,就会把客户端发起写的请求结果返回给客户端。

    处理读请求:

    客户端连接到  发起读请求,跟随者返回结果;如果强制跟随者和领导者数据同步,需要调用syne()接口。

    4.3动物园管理的选举过程

    LOOKING,LEADING,FOLLOWING,OBSEREVER

    事务ID是全局有序分配的,负责节点的创建,内容更新和删除

    全新启动和运行过程中的选举过程

    全新启动

    每台机器写入一个机器号码:ZK1,ZK2,ZK3(1-255之间的数)

    选举过程中,

    ZK1,ZK2会发起消息:(机器号,事务ID),例如(1,0)作为一个消息体广播出去。

    两台机器的消息进行对比。谁的事务ID大,谁当领导者;其次对比机器号,机器号大的作为领导者。

    机器1更新自己的广播消息

    ZK2发现自己和ZK1都选了ZK2一票。

    两台电脑更改状态

    ZK1 把looking更改为following;

    ZK2 把following更改为leading。

    ZK3发现系统中已经有了领导者ZK2

    那么它自己就没有当领导者的事务请求了。

    运行过程中的选举过程

    假设ZK2挂掉了,在ZK1和ZK3中进行选举,选取的过程同全新过程,先比较事务ID,再比较机器号,大的作为领导。

    4.4 Zookeeper的数据模型

    Zookeeper下提供了Znode的树形结构。Znode是数据节点,可以存数据,构造文件夹,还可以创造子node

    Znode

       持久节点

      持久顺序节点

      临时节点

      临时顺序节点  临时会话生成的 当会话失败后,会自动删除

    4.4保证节点的数据不被修改

    通过  悲观锁(数据更新,竞争十分激烈,每一个数据运行全程都需要加锁) 乐观锁(在数据更新和提交之前,是否有其他事务对它进行了修改。数据冲突较少的场景:数据读取,写入校验,数据写入)来实现

    4.5  Znode的状态

    4.6 看护(Watcher)机制

    包括Client,  Zookeeper集群, Watcher三个部分。

    客户端向Zookeeper注册监听事件,同时创建watcher对象,将watcher对象存储在WatchManager中。WatchManager会第一时间通过回调函数处理这个事件。

    4.7统一命名服务

    4.8配置管理

    Znode的数据修改,监听的客户端会第一时间更新自己的信息。

    4.9集群管理

    通过动物园管理感知到节点的挂掉,就让给节点下线;也会感知到新的节点上线,并让其作为新的集群的节点。

    4.10 分布式锁和分布式队列

    5.Zookeeper的搭建(老师已经总结的很好了。)

    相关文章

      网友评论

          本文标题:大数据实战第0次课和第1次课个人总结

          本文链接:https://www.haomeiwen.com/subject/nsqowxtx.html