一,hadoop概述
什么是hadoop:
hadoop是一个开源、高可靠、可扩展的分布式计算机框架(多个计算机同时处理任务)
解决的问题:
海量数据的存储(HDFS)
海量数据的分析(MapReduce)
分布式资源调度(Yarn)
特点:
扩容能力:能可靠地存储和处理千兆字节(PB)的数据
成本低:可通过普通计算机组成集群处理数据,节点数可达到千个节点
高效:通过分发数据,Hadoop可以在多个节点上并行的处理数据,处理速度非常快
高可靠:hadoop能自动维护数据的多份副本,并且在任务失败后能自动重新部署
日志分析、基于海量数据的在线应用、推荐系统、计算广告、复杂算法、网盘、搜索引擎等。
hadoop生态图:
hadoop核心,四个模块:
hadoop common :为其他hadoop模块提供基础设施
hadoop hdfs :一个高可靠、高吞吐量的分布式文件系统
hadoop mapreduce :一个分布式离线并行计算框架
hadoop Yarn :一个新的mapreduce框架,任务调度和资源管理()
三个进程:
Yarn Architecture
MapReduce:Map任务处理
1,读取输入文件内容,解析成key、value对
2,重写Map方法,编写业务逻辑输出新的key,value对
3,对输出的key,value进行分区
4,对数据按照key进行排序
MapReduce:Reduce任务处理
1,对多个Map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点
2,对多个Map任务的输出进行合并、排序。写reduce函数自己的逻辑,对输入的key,value处理,转换成新的key、value输出
3,把reduce的输出保存到文件中。
二,hadoop伪集群环境安装(linux)
1,服务器操作:关闭防火墙、selinux关闭、/etc/sysconfig/network 修改主机名称、/etc/hosts 修改host映射、远程端安装ssh(免密码登陆)
2,安装jdk(需要sun jdk1.5以上),官网下载tar包,解压,tar -xzvf xxx.tar.gz -C 目录 ,修改配置环境变量:/etc/profile 如:
export JAVA_HOME = /home/myuser/jdk1.7.0_03
export PATH = $JAVA_HOME/bin:$PATH
刷新配置文件:source /etc/profile
3,根据官方文档 http://hadoop.apache.org/下载hadoop安装(64位需要下载源码编译安装),查看BUILDING.txt 找出需要安装的辅助工具
4,安装maven,并配置环境变量,用于编译hadoop源码。
5,安装findbugs,并配置环境变量
6,安装ProtocolBuffer,通过进入ProtocolBuffer根目录,通过./configrue 再make install(如果没有安装make需要先安装make)
安装make及其他系统依赖:
yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++
7,编译源码,mvn package -Pdist , native -DskipTests -Dtar (很久)
8,下载hadoop-2.7.1的tar包解压,有bin、etc等目录
9,修改配置文件,hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml等
10,启动文件系统:sbin/start-dfs.sh
三,hadoop项目基础代码