当前位置:文档之家› Hadoop现场演示与编程过程

Hadoop现场演示与编程过程

Hadoop现场演示与编程过程 现场演示与编程过程
朱军 刘锴 傅雷扬 安徽农业大学
云计算可靠性研究组
1/35
主要内容
◆ 实验平台简介 ◆ Hadoop 环境搭建 ◆ MapReduce 编程
云计算可靠性研究组
2/35
实验平台简介
◆ 采用 采用XenServer分布式部署 分布式部署Hadoop 分布式部署 ● 浪潮 浪潮380D ● 5台虚拟机(CentOS) 台虚拟机( 台虚拟机 ) ◆ 采用 采用VirtualBox分布式部署 分布式部署Hadoop 分布式部署 ● PC ● 5台虚拟机(CentOS) 台虚拟机( 台虚拟机 )
云计算可靠性研究组
16/35
启动Hadoop 启动
1. 格式化分布式文件系统 bin/hadoop namenode -format 2、关闭所有节点的防火墙及Selinux 关闭所有节点的防火墙及Selinux 3、在namenode上执行 namenode上执行 bin/startbin/start-all.sh 4、查看进程运行情况 $JAVA_HOME/bin/jps
云计算可靠性研究组
21/35
MapReduce编程过程 编程过程
云计算可靠性研究组
22/35
与输入相关的几个抽象类
◆InputFormat 文件分割,读取。 文件分割,读取。FileInputFormat从文件中 从文件中 读取数据。 读取数据。 ◆InputSplits 定义了输入到单个Map任务的输入数据。 定义了输入到单个 任务的输入数据。 任务的输入数据 ◆RecordReader 定义了如何从数据上转化为一个(key,value)对 定义了如何从数据上转化为一个 对 从而输出到Mapper类中。 类中。 ,从而输出到 类中
云计算可靠性研究组
3/35
采用XenServer分布式部署 分布式部署Hadoop 采用 分布式部署
云计算可靠性研究组
4/35
采用VirtualBox分布式部署 分布式部署Hadoop 采用 分布式部署
云计算可靠性研究组
5/35
Hadoop 环境搭建
◆Hadoop的三种部署模式 的三种部署模式 ◆Hadoop完全分布式部署 完全分布式部署 ◆HDFS节点故障演示 节点故障演示
云计算可靠性研究组
26/35
编程实例:矩阵相乘 编程实例:
编程环境准备: 编程环境准备:
◆安装配置 安装配置Java环境 安装配置 环境 ◆安装配置 安装配置Hadoop 安装配置 ◆安装 安装Eclipse(Version: 3.5.2) 安装 ◆安装插件hadoop-0.20.2-eclipse-plugin.jar 安装插件
云计算可靠性研究组
##是否对dfs中的文件进行 ##是否对dfs中的文件进行 是否对dfs
14/35
mapred-site-xml
<property> <name>mapred.job.tracker</name> <value>:9200</va ##设置 设置MapReduce Job运行的主机 lue> ##设置MapReduce Job运行的主机 和端口 </property>
bin/hadoop fs -ls hdfs://:9100/
云计算可靠性研究组
18/35
HDFS节点故障演示 节点故障演示
一、增加HDFS节点 增加 节点
1、新节点ip/hosts: 、新节点 210.45.176.50 2、在新节点上安装 、在新节点上安装Hadoop,配置应与 ,配置应与NameNode一致 一致 3、若永久填加该节点,可修改masters和slaves文件 、若永久填加该节点,可修改 和 文件 4、临时填加节点,执行命令: 、临时填加节点,执行命令: bin/hadoop-daemon.sh datanode start 5、查看 、查看:50070,已变为 个live节点 ,已变为4个 节点
云计算可靠性研究组
12/35
core-site-xml
<property> <name>hadoop.tmp.dir</name> #设定Hadoop临时目录 设定Hadoop <value>/home/grid/hadoop/tmp</value> #设定Hadoop临时目录 <description> </description> </property> <property> <name></name> #设置文件 <value>hdfs://:9100</value> #设置文件 系统路径 </property> </configuration> <property> #节点间心跳检测间 <name>heartbeat.recheck.interval</name> #节点间心跳检测间 隔时间,默认10 10分钟 隔时间,默认10分钟 <value>1000</value> </property>
◆ MapReduce编程过程 编程过程 ◆ 编程实例:矩阵相乘 编程实例: ◆ 程序调试和发布
云计算可靠性研究组
20/35
MapReduce编程过程 编程过程
◆就是继承类与实现接口的过程。这些类与接口 就是继承类与实现接口的过程。 就是继承类与实现接口的过程 来自于Hadoop的Map-Reduce框架,由框架 来自于 的 框架, 框架 控制其执行流程。 控制其执行流程。 ◆Java多态性:对象的引用型变量。 多态性: 多态性 对象的引用型变量。 编程过程的三个阶段: 编程过程的三个阶段: ◆输入阶段 输入阶段 ◆计算阶段 计算阶段 ◆输出阶段 输出阶段
云计算可靠性研究组
27/35
实例:矩阵相乘 实例:
将问题分解成MapReduce作业 将问题分解成 作业
云计算可靠性研究组
23/35
与计算相关的几个抽象类
◆Mapper map()方法处理输入 1, V1>,产生输出 2, V2>。 方法处理输入<K 方法处理输入 ,产生输出<K 。 ◆Reducer reduce()方法处理 方法处理Map的输入 2, list(V2)>,产生输 的输入<K 方法处理 的输入 , 出<K3, V3>。 。 ◆Combiner 实现Reducer接口,对map()输出进行规约。 接口, 输出进行规约。 实现 接口 输出进行规约 ◆Partitioner 分发map()输出给不同的 输出给不同的Reduce任务。 任务。 分发 输出给不同的 任务
二、新增节点故障演示
1、人为Kill掉新增节点的 、人为 掉新增节点的datanode进程 进程 掉新增节点的 2、经过心跳检测时间后,查看 页 、经过心跳检测时间后,查看:50070页 面,新增节点消失
云计算可靠性研究组
19/35
MapReduce 编程
云计算可靠性研究组
6/35
Hadoop 的三种部署模式
1、单机模式 、 2、伪分布式模式 、 3、完全分布式模式 、
云计算可靠性研究组
7/35
Hadoop完全分布式部署 完全分布式部署
IP/hosts: 210.45.176.46 210.45.176.47 210.45.176.48 210.45.176.49 210.45.176.50 Namenode/Jobtracker: Secendnamenode: datanode/tasktracker: New datanode:
云计算可靠性研究组
13/35
hdfs-site-xml
<property> ##HDFS的副本数 默认为3 的副本数, <name>dfs.relplication</name> ##HDFS的副本数,默认为3 如果DataNode DataNode的数量小于这个值会有问题 ,如果DataNode的数量小于这个值会有问题 <value>2</value> </property> <property> <name>dfs.permissions</name> 权限控制 <value>false</value> </property>
云计算可靠性研究组
8/35
完全分布式部署步骤
一、安装配置 Java环境 环境 二、配置SSH免密码登录 配置 免密码登录 三、安装配研究组
9/35
安装配置JAVA 安装配置
1、安装jdk 、安装 bin/jdk-6u27-x64.bin 2、修改环境变量 、 vim ~/.bash_profile JAVA_HOME=/usr/local/jdk1.6.0_27 export $JAVA_HOME $PATH=$PATH:$JAVA_HOME/bin
云计算可靠性研究组
24/35
与输出相关的几个抽象类
◆OutputFormat 数据输出。 输出到文件。 数据输出。FileOutputFormat输出到文件。 输出到文件 ◆RecordWriter 输出一个记录到文件中。 输出一个记录到文件中。
云计算可靠性研究组
25/35
其它重要类与接口
◆Configuration类 类 读取配置文件。 读取配置文件。如:core-default.xml、core、 site.xml等。 等 ◆Job类 类 配置、提交Job,控制其执行,查询其状态。 配置、提交 ,控制其执行,查询其状态。 ◆Writable接口 接口 序列化输入输出。任何Key, Value都需要实现它。 都需要实现它。 序列化输入输出。任何 都需要实现它 ◆WritableComparable接口 接口 可比较的序列化输入输出。任何Key都需要实现它。 都需要实现它。 可比较的序列化输入输出。任何 都需要实现它
相关主题