一、Hadoop环境搭建
1、获取Linux安装环境
方法一:本机上装VMwave,再装对应的Linux系统
方法二:直接租用Linux系统
2、安装JDK
在获取完Linux系统后,使用命令 apt-get install openjdk-7-jdk 命令安装JDK,并修改/etc/profile文件中Java的安装路径,其中包括JAVA_HOME、JRE_HOME、PATH、CLASSPATH四个变量路径
3、下载Hadoop压缩文件
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
并将源码包放置到/opt目录下,解压至当前文件夹下,进入到/opt/hadoop-1.2.1/con目录下,修改mapre-site.xml core-site.xml hdfs-site.xml hadoop-env.sh四个文件
1>、修改Hadoop-env.sh中JAVA_HOME中Java的安装路径,即为上步中的路径
2>、在core-site.xml中增加配置信息
3>、在hdfx-site.xml文件中新增文件系统和数据的存放位置
4>、最后修改mapre-site.xml文件,配置任务调度器的访问方式
4、修改/etc/profile文件中Hadoop的存放位置
5、执行hadoop之前要进行格式化操作
hadoop namenode -format
6、使用jps命令查看Hadoop是否正常运行
二、Hadoop两大核心
Hadoop两大核心是 HDFS分布式文件系统和 MapReduce
1、HDFS分布式文件系统
HDFS中,块是文件储存的逻辑单元,文件被分成了块进行储存,且它默认的块大小为64MB
HDFS中有两类节点,一种是NameNode,另外一种是DataNode
NameNode是管理节点,存放的是文件元数据,它包含
1>、文件与数据块的映射表
2>、数据块与数据节点对的映射表
DataNode是HDFS的工作节点,存放数据块
每个数据块有三个副本,分布在两个机架内
心跳检测
DataNode定期向NameNode发送心跳信息
二级NameNode,即SecondaryNameNode
二级NameNode定期同步元数据映象文件和日志信息,NameNode发生故障时,备胎转正
HDFS的特点
1>、数据冗余、硬件容错
2>、流式访问
3>、储存大文件
HDFS的适用性和局限性
适用性:
适合批量读取,吞吐量高
适合一次写入,多次读取,顺序读取
局限性:
不适合交互式应用,低延迟很难满足
不支持多用户并发写相同文件
HDFS的使用
hadoop fs -ls /
打印出当前HDFS的文件夹
hadoop fs -mkdir input
HDFS中创建input目录
hadoop fs -put hadoop-env.sh input/
将本地文件放入到HDFS中的input目录下
hadoop fs -cat input/hadoop-env.sh
查看文件
hadoop fs -get input/hadoop-env.sh hadoop-env2.sh
从HDFS中下载指定文件
hadoop dfsadmin -report
查看HDFS中的信息
2、MapReduce
分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
每一个任务可以看做一个JobTracker,它分解成的小任务可以看做是TaskTracker
JobTracker的角色
1、作业的调度
2、分配任务、监控任务执行进度
3、监控TaskTracker的状态
TaskTracker的角色
1、执行任务
2、汇报任务进度
MapReduce的容错机制
1、重复执行(默认重复4次)
2、推测执行