美文网首页
大数据实战第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