您的位置:首页 > 大数据

大数据企业学习篇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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: