大数据企业学习篇02_1------hadoop初识
2017-11-22 23:10
267 查看
一.Hadoop 2.x概述
1.hadoop的来源Hadoop的产生主要来源于Google的三篇论文,如下:
GFS ——-> HDFS
MapReduce ————>MapReduce
BigTable ———–>Hbase
2.hadoop是什么
简言之,Hadoop是大规模数据处理,主要是存储、计算、资源调度等功能。http://hadoop.apache.org
3.Hadoop的组成
Common:为其他Hadoop模块提供服务
HDFS:分布式文件系统,用于存储海量数据,主要特点是分布式(多主机存储)、安全性(副本数据,一般是3个副本),数据以block形式存储,数据块大小默认是128M
MapReduce:一个分布式的离线计算框架,对海量数据进行处理,主要思想是分而治之,将大数据集拆分成小的数据集,然后对每个数据集进行逻辑业务处理(map),合并统计数据结果(reduce)
Yarn:一个分布式资源管理和任务调度框架,例如管理整个集群资源(cpu数,内存)、分配调度集群的资源
4.HDFS系统架构图
hdfs是以主-从节点运行。
namenode:主节点,存放元数据信息,比如文件名、文件的目录结构、文件属性、每个文件块列表以及块所在的datanode等。**注意:**namenode的元数据一部分存放在内存中,一部分在磁盘上(例如:fsimage(镜像文件)和edits(编辑日志))
datanode:从节点,存放的是数据块以及数据块的校验和
Secondary NameNode: 用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
5.Yarn架构图
ResourceManager:处理客户端请求;启动/监控ApplicationMaster;监控NodeManager;资源分配与调度
ApplicationMaster:数据切分;为应用程序申请资源,并分配给内部任务;任务监控与容错
NodeManager:单个节点上的资源管理;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令
Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息
6.离线计算框架MapReduce
1)将计算过程分为两个阶段,map阶段和reduce阶段
map:并行处理输入数据(分)
reduce:对map结果进行合并(合)
2)shuffle连接map和reduce阶段
map task将数据写到本地磁盘
reduce task从每个task上读取一份数据
3)仅适合离线批处理
具有很好的容错性和扩展性
适合简单的批处理任务
4)缺点明显
启动开销大、过多使用磁盘导致效率较低
7.MapReduce on Yarn
1)client提交application给RM
2)RM为application找到一个NM,在其container中启动APP master
3)App master向RM注册
4)App master向RM申请application所需资源
5)App master通知NM启动container,将相应资源放入container中
6)NM启动Map或者Reduce任务
7)NM像APP master反应map或者reduce任务的状态或者进度
8)App master告知RM任务完成了,可以销毁了
二.Hadoop 2.x生态系统
Sqoop:关系型的数据库把数据存储到HDFS上。
Flume:日志文件的收集
MapReduce不是那么好写,门槛比较高,又有了Hive
Oozie:任务的管理与调度
Clodera Manager:整个集群资源的管理界面
Zookeeper:协作框架
Hue:web框架
三.Hadoop的环境配置
1.环境准备1)删除系统默认的Java版本(需要切换到root)
$>rpm -qa|grep java //查看 open jdk $>rpm -e --nodeps 文件名 //强制卸载
2)解压Java包
$>tar -zvf jdk-7u67-linux-x64.tar.gz -C /soft
3)创建符号链接
$>ln -s java jdk1.7.0_67
4)配置Java环境变量(/etc/profile)
...... export JAVA_HOME=/soft/java export PATH=$PATH:$JAVA_HOME/bin
5)使配置文件生效
$>source /etc/profile
6)验证Java环境是否配置成功
$>java -version
2.环境搭建
1)本地模式
1.解压Hadoop包
$>tar -zvf hadoop-2.5.0.tar.gz -C /soft
2)配置etc/hadoop/hadoop-env.sh(配置Java环境,已防万一)
$> export JAVA_HOME=/soft/java
3)测试运行
$ mkdir input $ cp etc/hadoop/*.xml input $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar grep input output 'dfs[a-z.]+' $ cat output/*
2)伪分布式
1.配置etc/hadoop/core-site.xml
<configuration> #配置hdfs文件系统 <property> <name>fs.defaultFS</name> <value>hdfs://s201:8020</value> </property> #配置Hadoop的临时目录 <property> <name>hadoop.tmp.dir</name> <value>/soft/hadoop/tmp</value> </property> 4000 </configuration>
2.配置etc/hadoop/hdfs-site.xml
#配置保存文件副本数 <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
3.格式化文件系统
$ bin/hdfs namenode -format
4.启动NameNode和DataNode
$ sbin/hadoop-daemon.sh start namenode //单独启动namenode $ sbin/hadoop-daemons.sh start datanode //单独启动datanode $ sbin/start-dfs.sh //同时启动namenode和datanode
5.以下可参考官方文档了
http://hadoop.apache.org/docs/r2.7.4/hadoop-project-dist/hadoop-common/SingleCluster.html#Installing_Software
6.配置etc/hadoop/yarn-site.xml
<configuration> #配置mapreduce程序 <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> #配置resourcemanager所在节点 <property> <name>yarn.resourcemanager.hostname</name> <value>s201</value> </property> </configuration>
7.配置etc/hadoop/mapred-site.xml
#配置计算框架为yarn,默认是本地 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
注意:监控界面:HDFS端口是主机名+50070,resourcemanager的端口是主机名+8088
四.初识MapReduce应用
1.历史服务器启动:
$>sbin/mr-jobhistory-daemon.sh start historyserver
停止:
$>sbin/mr-jobhistory-daemon.sh stop historyserver
2.日志聚集
应用运行完成以后,将日志信息上传到HDFS系统上
需要配置yarn-site.xml
<configuration> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>360</value> </property> </configuration>
3.垃圾回收间隔
配置core-site.xml
<configuration> <property> <name>fs.trash.interval</name> <value>600</value> </property> </configuration>
4.启动方式
1)各个服务组件逐一启动
* hdfs
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
* yarn
yarn-daemon.sh start|stop resourcemanager|nodemanager
* mapreduce
mr-historyserver-daemon.sh start|stop historyserver
2)各个模块分开启动
* hdfs
start-dfs.sh
stop-dfs.sh
* yarn
start-yarn.sh
stop-yarn.sh
3)全部启动(不推荐)
start-all.sh
stop-all.sh
5.ssh免密登录
1)生成密钥对
$>ssh-keygen -t rsa
2)拷贝文件到需要登录的机器上
$>ssh-copy-id s202
6.各个服务组件运行在那个配置中
NameNode
core-site.xml
fs.defaultFS
hdfs://s201:8020
DataNodes
slaves
s202
s203
s204
SecondaryNameNode
hdfs-site.xml
dfs.namenode.secondary.http-address
s204:50090
YARN
ResourceManager
yarn-site.xml
yarn.resourcemanager.hostname
s201
NodeManagers
slaves
s202
s203
s204
MapReduce HistoryServer
mapred-site.xml
mapreduce.jobhistory.address
s201:10020
mapreduce.jobhistory.webapp.address
s201:19888
相关文章推荐
- 大数据企业学习篇02_3-------hadoop高级
- 大数据测试之初识Hadoop2
- 01-天亮大数据系统教程之初识Hadoop
- 大数据精英实战项目班-Hadoop-Spark-真实企业项目
- 大数据企业学习篇05----flume初识
- Hadoop(一)之初识大数据与Hadoop【转载】
- hadoop初识之十:mapreduce编程模型与数据传输格式
- hadoop的数据仓库--Hive初识入门
- 初识大数据:Hadoop、Spark、Storm
- 大数据企业学习篇02_2------hadoop深入
- Hadoop(一)之初识大数据与Hadoop
- [Hadoop大数据]——Hive初识
- 大数据企业学习篇03_1------hive 初识
- 大数据测试之初识Hadoop
- 通过一个对数据的存储和分析的简单实例初识Hadoop
- 大数据之Hadoop(MapReduce(四))------->企业优化
- 细细品味大数据--初识hadoop
- 提高企业数据安全 英特尔继续耕作Hadoop
- 大数据——初识Hadoop
- hadoop初识之十二:wordcount 处理过程和mapreduce的数据类型