大数据hadoop

本文详细介绍了大数据技术中的Hadoop,包括其起源、特点、主要组件如HDFS、MapReduce和Yarn的工作原理。还涵盖了Hadoop的高可用性配置,涉及NameNode的HA方案,以及如何通过Zookeeper实现故障切换。最后,文章提供了集群的初始化和管理步骤,指导读者理解并部署Hadoop高可用集群。
摘要由CSDN通过智能技术生成

大数据的由来
• 大数据
– 随着计算机技术的发展,互联网的普及,信息的积累
已经到了一个非常庞大的地步,信息的增长也在不断
的加快,随着互联网、物联网建设的加快,信息更是
爆炸是增长,收集、检索、统计这些信息越发困难,
必须使用新的技术来解决这些问题

什么是大数据
• 大数据的定义
– 大数据指无法在一定时间范围内用常规软件工具进行捕捉、
管理和处理的数据集合,需要新处理模式才能具有更强的
决策力、洞察发现力和流程优化能力的海量、高增长率和
多样化的信息资产
– 是指从各种各样类型的数据中,快速获得有价值的信息

 

• 大数据能做什么
– 企业组织利用相关数据分析帮助他们降低成本、提高
效率、开发新产品、做出更明智的业务决策等
– 把数据集合并后进行分析得出的信息和数据关系性,
用来察觉商业趋势、判定研究质量、避免疾病扩散、
打击犯罪或测定即时交通路况等
– 大规模并行处理数据库,数据挖掘电网,分布式文件
系统或数据库,云计算平和可扩展的存储系统等

 

特性

  1. 大体量– (V)olume (大体量)
    可从数百TB到数十数百PB、甚至EB的规模
  2. 速度快– (V)elocity(时效性)
    很多大数据需要在一定的时间限度下得到及时处理
  3. 不限种类– (V)ariety(多样性)
    大数据包括各种格式和形态的数据
  4. 统计分析,预测性– (V)alue(大价值)
    大数据包含很多深度的价值,大数据分析挖掘和利用将带来巨大
    的商业价值
  5. 真实性– (V)eracity(准确性)
    处理的结果要保证一定的准确性

 

 

 

hadoop       

开源,基于java开发,提供分布式基础架构, 特点:高可靠性、高扩展性、高效性、高容错性、低成本

• 2003年开始Google陆续发表了3篇论文
– GFS,MapReduce,BigTable

• GFS
– GFS是一个可扩展的分布式文件系统,用于大型的、分布式
的、对大量数据进行访问的应用
– 可以运行于廉价的普通硬件上,提供容错功能


• MapReduce
– MapReduce是针对分布式并行计算的一套编程模型,由
Map和Reduce组成,Map是映射,把指令分发到多个
worker上,Reduce是规约,把worker计算出的结果合并

• BigTable
– BigTable是存储结构化数据
– BigTable建立在GFS,Scheduler,Lock Service和
MapReduce之上
– 每个Table都是一个多维的稀疏图

 

• GFS、MapReduce和BigTable三大技术被称为
Google的三驾马车,虽然没有公布源码,但发布了
这三个产品的详细设计论
• Yahoo资助的Hadoop,是按照这三篇论文的开源
Java实现的,但在性能上Hadoop比Google要差很多
– GFS - - -> HDFS
– MapReduce - - -> MapReduce
– BigTable - - -> Hbase

 

Hadoop组件

 

组件

  • HDFS:           Hadoop分布式文件系统(核心组件)      存储
  • MapReduce: 分布式计算框架(核心组件)
  • Yarn:             集群资源管理系统(核心组件)
  • Zookeeper:   分布式协作服务
  • Hbase:          分布式列存数据库
  • Hive:             基于Hadoop的数据仓库
  • Sqoop:         数据同步工具
  • Pig:               基于hadoop的数据流系统
  • Mahout:        数据挖掘算法库
  • Flume:          日志收集工具

 

 

 

 

HDFS

结构

 

Hadoop体系中数据存储管理的基础,是一个高度容错的系统,用于在低成本的通用硬件上运行

  • 角色

client

namenode

secondarynode

datanode

NameNode
– Master节点,管理HDFS的名称空间和数据块映射信
息(fsimage),配置副本策略,处理所有客户端请求


• Secondary NameNode
– 定期合并fsimage 和fsedits,推送给NameNode
– 紧急情况下,可辅助恢复NameNode

fsedits 变更日志(打补丁)
• 但Secondary NameNode并非NameNode的热备

 

• DataNode
– 数据存储节点,存储实际的数据
– 汇报存储信息给NameNode

• Client
– 切分文件
– 访问HDFS
– 与NameNode交互,获取文件位置信息
– 与DataNode交互,读取和写入数据

block 每块缺省128MB大小,每块可以多个副本

 

 

MapReduce

 

结构

 

• 源自于Google的MapReduce论文,JAVA实现的分布式计算框架

• 角色和概念
– JobTracker

 Master节点只有一个,管理所有作业/任务的监控、错误处理等
将任务分解成一系列任务,并分派给TaskTracker


– TaskTracker

Slave节点,一般是多台,运行Map Task和Reduce Task
并与JobTracker交互,汇报任务状态


– Map Task

解析每条数据记录,传递给用户编写的
map()并执行,将输出结果写入本地磁盘
– 如果为map-only作业,直接写入HDFS


– Reducer Task

从Map Task的执行结果中,远程读
取输入数据,对数据进行排序,将数据按照分组传递
给用户编写的reduce函数执行

 

 

 

Yarn

结构

 

Yarn是Hadoop的一个通用的资源管理系统

角色

– Resourcemanager

– 处理客户端请求
– 启动/监控ApplicationMaster
– 监控NodeManager
– 资源分配与调度


– Nodemanager

– 单个节点上的资源管理
– 处理来自ResourceManager的命令
– 处理来自ApplicationMaster的命令


– ApplicationMaster

– 数据切分
– 为应用程序申请资源,并分配给内部任务
– 任务监控与容错


– Container

– 对任务运行行环境的抽象,封装了CPU 、内存等
– 多维资源以及环境变量、启动命令等任务运行相关的信息资源分配与调度


– Client

– 用户与Yarn交互的客户端程序
– 提交应用程序、监控应用程序状态,杀死应用程序等

 

• Yarn的核心思想
• 将JobTracker和TaskTacker进行分离,它由下面几大构成组件
– ResourceManager一个全局的资源管理器
– NodeManager每个节点(RM)代理
– ApplicationMaster表示每个应用
– 每一个ApplicationMaster有多个Container在NodeManager上运行

 

 

• Hadoop的部署模式有三种
– 单机
– 伪分布式
– 完全分布式

  • 单机模式

新虚拟机 192.168.5.61 node1

安装 java-1.8.0-openjdk-devel

[root@node1 ~]# jps          #测试是否成功
1446 Jps
 

[root@node1 ~]# tar -xf hadoop-2.7.7.tar.gz 
[root@node1 ~]# mv hadoop-2.7.7/       /usr/local/hadoop    #保证所有者和所属组为root

[root@node1 ~]# cd /usr/local/hadoop

[root@node1 hadoop]# rpm -ql java-1.8.0-openjdk
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre/  截取前面相同的路径

[root@node1 hadoop]# ./bin/hadoop verion
Error: JAVA_HOME is not set and could not be found.                        #找不到java你装哪了,需定义变量指定
 

[root@node1 hadoop]# vim etc/hadoop/hadoop-env.sh 

# The java implementation to use.
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre"

export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"
[root@node1 hadoop]# ./bin/hadoop version
 

 

[root@node1 ~]# cd /usr/local/hadoop/
[root@node1 hadoop]# mkdir input

[root@node1 hadoop]# ls
bin  include  lib      LICENSE.txt    README.txt  share
etc  input    libexec  NOTICE.txt   output  sbin

[root@node1 hadoop]# cp *.txt input/

[root@node1 hadoop]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input output
 

[root@node1 hadoop]# ls  output/
part-r-00000  _SUCCESS

 

 

 

 

HDFS分布式文件系统

需修改的配置文件

– Hadoop-env.sh

JAVA_HOME
HADOOP_CONF_DIR

 

– xml文件配置格式
<property>
<name>关键字</name>
<value>变量值</value>
<description> 描述 </description>
</property>

 

 

 

 

环境准备

192.168.5.60 nn01
192.168.5.61 node1     前面已配置
192.168.5.62 node2
192.168.5.63 node3

 

修改  /etc/hosts
# ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1    localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.5.60 nn01
192.168.5.61 node1
192.168.5.62 node2
192.168.5.63 node3
 

 

 

全部装     java-1.8.0-openjdk-devel

selinux关闭,禁用firewalld

所有机器能被nn01无密码ssh

 ssh-keygen  生成密钥,

ssh-copy-id   nn01/node1/node2/node3  

[root@nn01 ~]# vim /etc/ssh/ssh_config 
Host *
        StrictHostKeyChecking no          设置第一次ssh时不需要输入yes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值