10毕业论文答辩PPT

Download Report

Transcript 10毕业论文答辩PPT

Linux环境下基于Hadoop的分布
式存储研究
指导教师:寇卫利



班级:2009级计算机科学与技术2班
学生:李 辉
学号:2009152056
LOGO
研究Hadoop存储的目的、意义
随着Internet数据的爆炸性增长,传统的技术架构已
经越来越不适应海量数据的处理要求。针对海量数据的
存储问题,传统方法一般是通过购置更多数量的服务器
来提升计算和存储能力,存在硬件成本高,存储效率低
等缺点。
 Hadoop框架不但在存储和计算方面都具有较强的可扩
展性,而且也是非常低廉的架构。
 作为一个分布式平台,Hadoop具有一下的优势:
(1)可扩展性
(2)经济性
(3)有效性
(4)可靠性

目前Hadoop的发展现状
◆国外:
A、Yahoo!使用Hadoop支持广告系统并处理网页搜
索;B、Facebook使用Hadoop实现日志的拷贝以及Web
日志的挖掘与统计。Hadoop大潮正在逐渐席卷所有美国的
垂直行业,包括金融、传媒、零售、能源、以及制药等。
◆国内:
A、百度用Hadoop处理每周 200TB的数据,进行搜
索日志分析和网页数据挖掘工作;
B、淘宝的Hadoop系统用于存储并处理电子商务的交
易相关数据。
C、研究所、各地高校都在进行Hadoop在数据存储、资
源管理、作业调度、 性能优化、系统高可用性和安全性方面的研究
。
基于HDFS存储教学资源模型
视频在线播放系统体系图
一、搭建Hadoop集群环境
1、实验PC机清单
编
号
CPU
内存
硬盘
结点类型
1
Intel(R) Pentium(R) 4
CPU 3.06GHZ
2G
80GB
Namenode,
master
2
Intel(R) Pentium(R) 4
CPU 3.06GHZ
2G
80GB
Datanode,
slave
web 服务器
CentOS6.3
3
Intel(R) Pentium(R) 4
CPU 3.06GHZ
2G
80GB
Datanode,
slave
/
CentOS6.3
4
Intel(R) Pentium(R) 4
CPU 3.06GHZ
2G
80GB
Datanode,
slave
/
CentOS6.3
角色
操作系统
web 服务器
CentOS6.3
流媒体服务器
搭建集群环境的实际图
2、配置过程
①、配置主机的网络地址,主机名等实验参数。
②、安装配置SSH服务,实现主机之间的安全通信
。
③、安装配置JDK-1.6,配置实现Java环境。
④、安装配置Hadoop,提供HDFS的实验环境。
⑤、格式文件系统-NameNode和DataNode。
3、具体参看:
CentOs6.3环境下Hadoop1.0.3的配置
Hadoop集群环境测试
1、网络连通性测试—主机名和SSH的配置
实现主机的无口令认证的相互通信。
2、结点状态和hadoop服务,端口是否启动
监听9000,HDFS服务端口;
监听9001,Map/Reduce服务端口;
此外,监听NameNode结点的50030,50070服务端口
-----主要是通过Web UI的方式查看文件系统的状态。
二、HDFS文件系统的操作
经过学习,不断的进行摸索自己亲自尝试了以下的三种方式,
对HDFS文件系统的访问。
 通过Java API进行访问;
 通过HDFS Shell 进行访问;
 通过利用第三方的开源软件,以ftp,web的方式进行访问
通过实验:
①、Java API 的方式支持最佳,直接调用内嵌的API进行上传,下
载,删除,修改权限等操作,但这种方式对于初学者也是最难的。
②、HDFS shell能够简单的完成HDFS文件操作,但是不能 直接
流等操作。
③、HDFS-over-Webdav-master,hdfs-over-ftp-master
等软件,对Hadoop的支持不稳定,实验也没有成功!
通过Java API进行访问
1、参照网上的说明搭建了eclipse下Hadoop集群的试验环境。
将暂存在本地的视频文件上传到HDFS集群的的关键代码
public void copytoHDFS() throws Exception{
Configuration conf = new Configuration(); //建立配置属
性
conf.addResource(new Path(str_conf));//获取Hadoop的
配置信息
FileSystem hdfs = FileSystem.get(conf); //建立文件系统
Path src = new Path(src_conf); //获得本地文件的绝对路径
Path dst = new Path(dst_conf); //上传到指定的HDFS目录
hdfs.copyFromLocalFile(src, dst); //上传文件
}
通过HDFS Shell 进行访问
HDFS shell部分命令
具体的操作
Web服务器集群
1、Web 服务器集群
以Tomact 7.0、MySql 5.5.25和httpd-2.2.24为基
础搭建web服务器集群,此集群能够进行负载平衡。
主要负责客户端对视频服务请求的上传和播放功能。
2、Web服务器的搭建;
具体参看:CentOS 6.2 环境下web服务集群的配置
3、Web服务的流程图
服务集群的配置关键步骤
 分别安装JDK,apache-tomcat,apache-httpd,
tomcat-connectors软件
 加载mod_jk Module模块 LoadModule
jk_module modules/mod_jk.so
 #指定哪些请求交给tomcat处理,"controller"为在
workers.properties里指定的负载分配控制器
 给每个台tomcat服务器定义workers.properties
 添加负载均衡控制器 controller
 更改server.xml文件
Web服务页面设计
流媒体服务器
1、基于rtmp协议 采用开源的red5以及flowplayer的
流媒体服务器。
RTMP(Real Time Messaging Protocol)实时消息
传送协议是Adobe Systems公司为Flash播放器和服务
器之间音频、视频和数据传输 开发的私有协议。
Flowplayer 是一个开源(GPL 3的)WEB视频播放器.
2、流媒体服务流程图
3、部署和测试。
流媒体服务器读取HDFS文件系统中视频文件关键代码
读取方式主要以流的方式
Hadoop源代码org.apache.hadoop.fs提供了两个类FSDataOutputStream和
FSDataInputStream来提供了流的输入和输出功能
public class readFromHDFS {
public static void main(String[] args) {
try {
String dsf
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(dsf),conf);
FSDataInputStream hdfsInStream = fs.open(new Path(dsf));
byte[] ioBuffer = new byte[10240];
int readLen = hdfsInStream.read(ioBuffer);
while(readLen!=-1)
{
System.out.write(ioBuffer, 0, readLen);
readLen = hdfsInStream.read(ioBuffer);
}
hdfsInStream.close();
fs.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
播放测试截图
致谢
谢谢各位老师的点评!