Hadoop --- 介绍及安装

定义:

大数据指无法在一定时间范围内用常用的软件工具进行捕捉,管理和处理的数据集合,是需要新处理
模式才能具有更强的决策力,洞察发现力和流程优化的能力的海量、高增长率和多样化的信息产业。

作用:

企业租住利用相关数据和分析可以帮助他们降低成本、提高效率、开发新产品、做出更明智的业务决策。

五点特性

数量Volume: TB级、记录日志、事务、表文件

速度Velocity: 批处理、多进程、数据流、实时(比如预测天气)

种类Variety: 结构化、非结构化、多因素、概率性(任何数据都可以做大数据)

Hadoop 特点:

高可用、 高扩展性、 高效性、 高容错性、 低成本

是一种分析和处理海量数据的软件平台

是一款开源软件,使用JAVA开发

可以提供一个分部式基础架构

Hadoop平台组件

HDFS

  • 分布式文件系统

MapReduce

  • 分布式计算框架

Yarn

  • 集群资管理系统

Hadoop生态系统:

大数据运维需要管理的常用组件:

  • Zookeeper 分布式协作服务

  • YARN 集群资源管理系统

  • HDFS 分布式文件系统

  • Oozie 作业流调度系统

  • Flume 日志收集工具

大数据程序员需要掌控的:

  • HBase 实时分布式数据库

  • Sqoop 数据库同步工具

  • MapReduce 分布式离线计算框架

  • Tez DAG计算框架

  • Sterm 流式计算框架

HDFS结构角色

1、Client (负责数据切块)

  • Block 数据切块均匀的分布在所有磁盘上

  • 每块缺省64MB大小、每块可以锁个副

    2、NameNode

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

3、SecondaryNode (具体存储数据的地方)

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

注:但SecondaryNode并非NameNode的热备

4、Datanode (存储实际的数据、汇报信息给NameNode)

  • Datanode使用

  • fsimage(文件块的映射关系) 记录数据存储的位置

  • fsedits (数据变更日志)

原理:

client 先和 Namenode交互,获取存取文件的位置、

再与 DataNode交互,读取和写入数据

MapReduce角色和结构:

JAVA实现的分布式计算框架

1、JobTracker

  • master节点,只有一个

  • 管理所有作业

  • 作业/任务的监控,错误处理等

  • 将任务分解成一系列任务,并分派给TaskTracker

2、TaskTracker

  • slave节点,一般是多台

  • 运行MapTask 和 ReduceTask

  • 并与JobTracker交互,汇报任务状态

3、MapTask 分派一个个统计

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

4、ReducerTask 统计完汇总

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

Yarn角色和结构

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

-核心思想:

  • 将 JobTracker、TaskTacker进行分离,几大组件构成

  • ResourceManager 全局资源管理器

  • NodeManager 每个节点(RM)代理

  • ApplicationMaster 表示每个应用

  • 每一个 ApplicationMaster 有多个 Container 在 NodeManager 上运行

1、Resourcemanager

  • 处理客户端请求

  • 启动/监控 ApplicationMater

  • 监控 NodeManager

  • 资源分配与调度

2、Nodemanager

  • 单个节点上的资源管理

  • 处理来自 ResourceManager 的命令

  • 处理来自 ApplicationMaster 的命令

3、ApplicationMaster

  • 数据切分

  • 为应用程度申请资源,并分配给内部任务

  • 热舞监控与容错

4、Container

  • 对任务运行环境的抽象,封装了CPU、内存等

  • 多维资源以及环境变量,启动命令等任务运行相关的信息资源分配与调度

5、Client

  • 用户与 YARN 交互的客户端程序

  • 提交应用程序,监控应用程序状态,杀死应用程序等

Hadoop 部署有三种模式

  • 单机、伪分布式、完全分布式

HDFS 完全分布式系统配置

  • 环境配置文件 hadoop-env.sh

  • 核心配置文件 core-site.xml

  • HDFS配置文件 hdfs-site.xml

  • 节点配置文件 slaves

步骤一:环境准备

1)配置主机名为nn01,ip为192.168.1.21,配置yum源(系统源)
2)安装java环境

[root@nn01 ~]# yum -y install java-1.8.0-openjdk-devel
[root@nn01 ~]# java -version

[root@nn01 ~]# jps

3)安装hadoop

[root@nn01 ~]# tar -xf hadoop-2.7.6.tar.gz
[root@nn01 ~]#  mv hadoop-2.7.6 /usr/local/hadoop
[root@nn01 ~]# cd /usr/local/hadoop/
[root@nn01 hadoop]# ls
bin  include  libexec       NOTICE.txt  sbin
etc  lib      LICENSE.txt  README.txt  share

[root@nn01 hadoop]# ./bin/hadoop   //报错,JAVA_HOME没有找到

4)解决报错问题

[root@nn01 hadoop]# rpm -ql  java-1.8.0-openjdk
[root@nn01 hadoop]# cd ./etc/hadoop/

[root@nn01 hadoop]# vim hadoop-env.sh
25 export \ 
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"
33 export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"

测试单机版Hadoop

[root@nn01 ~]# cd /usr/local/hadoop/
[root@nn01 hadoop]# ./bin/hadoop

[root@nn01 hadoop]# mkdir /usr/local/hadoop/aa
[root@nn01 hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  aa  README.txt  sbin  share
[root@nn01 hadoop]# cp *.txt /usr/local/hadoop/aa

[root@nn01 hadoop]# ./bin/hadoop jar  \
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar  wordcount aa bb       

//wordcount为参数 统计aa这个文件夹,存到bb这个文件里面(这个文件不能存在,要是存在会报错,是为了防止数据覆盖)

[root@nn01 hadoop]#  cat   bb/part-r-00000    //查看

配置Hadoop

准备四台虚拟机,由于之前已经准备过一台,所以只需再准备三台新的虚拟机即可,安装hadoop,使所有节点可以ping通,配置SSH信任关系

在这里插入图片描述

步骤一:环境准备

1)三台机器配置主机名为node1、node2、node3,配置ip地址(ip如图-1所示),yum源(系统源)

2)编辑/etc/hosts(四台主机同样操作,以nn01为例)

[root@nn01 ~]# vim /etc/hosts
192.168.1.21  nn01
192.168.1.22  node1
192.168.1.23  node2
192.168.1.24  node3

3)安装java环境,在node1,node2,node3上面操作(以node1为例)

[root@node1 ~]# yum -y install java-1.8.0-openjdk-devel

4)部署SSH信任关系

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

[root@nn01 .ssh]# ssh-keygen -N ‘’ -f /root/.ssh/id_rsa

5)测试信任关系

步骤二:配置hadoop

1)修改slaves文件

[root@nn01 ~]# cd  /usr/local/hadoop/etc/hadoop
[root@nn01 hadoop]# vim slaves
node1
node2
node3

2)hadoop的核心配置文件core-site

[root@nn01 hadoop]# vim core-site.xml
<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://nn01:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoop</value>
    </property>
</configuration>

[root@nn01 hadoop]# mkdir /var/hadoop        //hadoop的数据根目录
[root@nn01 hadoop]# ssh node1 mkdir /var/hadoop
[root@nn01 hadoop]# ssh node2 mkdir /var/hadoop
[root@nn01 hadoop]# ssh node3 mkdir /var/hadoop

3)配置hdfs-site文件

[root@nn01 hadoop]# vim hdfs-site.xml   //可以设置多组
<configuration>
    <property>
        <name>dfs.namenode.http-address</name>   //申明谁是namenode 和主机端口 
        <value>nn01:50070</value>   主机端口
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>  //申明谁是namenode 小秘 和主机端口
        <value>nn01:50090</value>        主机端口
    </property>
    <property>
        <name>dfs.replication</name>    // dfs.replication 切块的数据存几份
        <value>2</value>
    </property>
</configuration>

4)同步配置到node1,node2,node3

[root@nn01 hadoop]# yum –y install rsync  //同步的主机都要安装rsync
[root@nn01 hadoop]# for i in 22 23 24 ; do rsync -aSH --delete /usr/local/hadoop/ 
\   192.168.1.$i:/usr/local/hadoop/  -e 'ssh' & done
[1] 23260
[2] 23261
[3] 23262

5)查看是否同步成功

[root@nn01 hadoop]# ssh node1 ls /usr/local/hadoop/
[root@nn01 hadoop]# ssh node2 ls /usr/local/hadoop/
[root@nn01 hadoop]# ssh node3 ls /usr/local/hadoop/

步骤三:格式化

[root@nn01 hadoop]# cd /usr/local/hadoop/

[root@nn01 hadoop]# ./bin/hdfs namenode -format         //格式化 namenode
[root@nn01 hadoop]# ./sbin/start-dfs.sh        //启动
[root@nn01 hadoop]# jps        //验证角色
23408 NameNode
23700 Jps
23591 SecondaryNameNode

[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report        //查看集群是否组建成功
Live datanodes (3):        //有三个角色成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值