您的位置:首页 > 大数据

20161025:今日大数据知识总结(zookeeper回顾+序列化反序列化回顾+avro+zebro项目框架的搭建)

2016-10-25 20:52 363 查看

20161025:今日大数据知识总结(zookeeper回顾+序列化反序列化回顾+avro+zebro项目框架的搭建)

1、昨天zookeeper的知识回顾

 
主要包括ZK的安装,ZK的指令,ZK的API以及ZK的集群
 
 

2、序列化与反序列化

 
序列化的目的:
1.持久化,将数据写入磁盘上。过程:0-1转化成高低电平---电转为磁---磁信息附在磁盘上。达到持久化的目的。
2.进行网络数据的通信。过程跟持久化的过程类似,也是通过将0-1转为高低电平信号。
 
反序列化跟序列化的过程是相反的。

3、AVRO

 
Avro是一Hadoop的子项目,是一个基于二进制的序列化框架。
 
Avro的特点:
1.支持丰富的数据类型,8中基本数据类型,以及六种复杂类型。
2.有一套快速可压缩的二进制模式(可以提高传输速率)
3.支持RPC,远程过程调用协议
4.依赖模式(Schema),avro想实现对象的序列化,rpc。必须按照模式的定义来做
 

利用avro实现序列化

实现步骤:

1.创建maven工程

2.导入pom.xml。这里有avro相关的依赖jar包以及相关的生成插件。

3.建立src/main/avro源目录

4.利用maven,根据avro的模式生成对应的序列化类

5.利用AvroAPI,进行序列化。

 
 
定义avro的模式文件
熟悉avro支持的数据类型。
 
 

利用avro实现rpc(远程过程调用)

远程过程调用(rpc)

Rpc就是:客户端调用服务端的某一个方法。即客户端负责传输数据,服务端收到数据并结合具体的算法方法对数据进行处理,然后再将处理的结果返回给客户端。

 

RPC的英文为:remote prodedure call protocol
远程过程调用协议

 

 

实现步骤:

1.创建两个maven工程,一个是客户端,一个是服务端

2.利用avro做rpc,需要在src/main/avro建立协议文件,这个要根据schema的定义来写

3.利用,生成协议文件对应的java类(是一个接口),一式两份,客户端和服务端分别需要一份。

4.接口有了一份之后,服务端需要额外做的一件事情就是,根据接口新建一个实现类。即算法是在实现类里面写的。

5.调用avro的API实现rpc

 
Rpc的应用场景:
主要是应用在集群内部,节点之间的网络数据通信。Rpc主内,http主外。
Rpc除了能够做运算的处理之外,还可以起到传递数据的作用(这是rpc的主要作用,做数据的传递);
 
 
示例:利用rpc传递一个对象。
      利用rpc传递一个用map封装的对象。
 

4、zebro项目的框架搭建









 

 

一:从配置文件中读取数据

Properties Pro=new  Properties();

InputStream in=this.class.getResourceAsStream(“env.properties”);

Pro.load(in);

In.close();

If(pro.containsKey(“zebra.dir”)){

Dir=pro.getProperty(“zebra.dir”);

}

 

 

二:获取RZ文件夹中的文件,并截取不带后缀的文件名

File dir=new File(“E://RZ”);

File[] files=dir.listFiles();

For(File file: files){

If(file.getName().endWith(“.ctr”)){

String csvfileName=file.getName().split(“.ctr”)[0]+”.csv”;

File csvFile=new File(dir,csvfileName);

Globa
aba6
lEnv.getQueue.put(csvFile);

}

}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐