Hadoop入门

Hadoop入门简介及搭建

简介

Hadoop是apache旗下的用java语言实现的开源软件框架

  • 狭义 : 是一个软件,框架
    • HDFS ( 分布式文件系统) 解决了海量数据的存储问题
    • YARN( 资源管理 任务调度) 解决了集群中资源管理的问题
    • MAPREDUCE( 分布式计算框架 ) 解决了海量数据的计算问题
  • 广义 : hadoop是一个生态圈,是一个平台

特性

  • 扩容能力 在可用的计算机集群间分配数据并完成计算任务, 可以方便的扩展到数以千计的节点中
  • 成本低 通过普通廉价的机器组成服务器集群来分发以及处理数据
  • 高效率 在节点之间动态并行的移动数据
  • 可靠性 自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务
集群规划

在这里插入图片描述

hadoop集群包含 HDFS集群和YARN集群 , 这两个集群逻辑上分离, 物理上通常在一起

这两个集群都是主从集群( 一主多从 )

  • HDFS集群
    • 主角色: NameNode
    • 从角色: DataNode
    • 秘书角色(主角色的) SecondaryNameNode
  • YARN集群
    • 主角色: ResourceManager
    • 从角色: NodeManager

规划

node-1 : namenode                     datanode  | resourcemanager  nodemanager
node-2 :           secondarynamenode  datanode  | 				   nodemanager
node-3 :                              datanode  | 				   nodemanager
node-4 :                              datanode  | 				   nodemanager
node-5 :                              datanode  | 				   nodemanager

安装包

自己编译源码包生成安装包的好处 可以针对自己的操作系统生成最合适的包

如果源码中有些组件不适合自己的项目, 可以进行适当的修改

hadoop-2.7.4-src.tar.gz   src 源码包
hadoop-2.7.4.tar.gz       bin 安装包

目录结构

bin		hadoop的基本脚本
sbin	hadoop封装的基本脚本 包括hdfs yarn的启动关闭脚本
etc		hadoop配置文件的目录
share	hadoop各个模块编译后的jar包
集群搭建

解压安装包

tar zxvf hadoop-2.7.4-with-centos-6.7.tar.gz

配置文件的修改

在主节点进行修改 scp到子节点

core hdfs yarn mapreduce 有默认配置文件, xxx-site.xml … 中没有配置的, 就使用默认配置文件中的

  • hadoop-env.sh 设置hadoop运行时需要的环境变量( java )

    export JAVA_HOME=/export/servers/jdk1.8.0_65
    
  • core-site.xml 设置hadoop的文件系统 主节点(namenode)主机 和数据存放目录

    <!-- 用于设置 Hadoop 的文件系统,由 URI 指定 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node-1:9000</value>
    </property>
    <!-- 配置 Hadoop 的临时目录,默认/tmp/hadoop-${user.name} -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.4.1/tmp</value>
    </property>
    
  • hdfs-site.xml 设置hdfs副本数量和secondearynamenode(秘书节点)所在主机

    <!-- 指定 HDFS 副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- secondary namenode 所在主机的 ip 和端口-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.1.152:50090</value>
    </property>
    
  • mapred-site.xml 设置mr运行时框架

    <!-- 指定 mr 运行时框架,这里指定在 yarn 上,默认是 local -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
  • yarn-site.xml 设置yarn的主节点( resourcemanager)的主机

    <!-- 指定 YARN 的老大(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node-1</value>
    </property>
    <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce
    程序默认值:"" -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
  • slaves 记录集群主机名

    <!--一般有以下两种作用:
    	一是:配合一键启动脚本如 start-dfs.sh、stop-yarn.sh 用来进行集群启动。这时候 slaves 文件里面的主机标记的就是从节点角色所在的机器。
    	二是:可以配合 hdfs-site.xml 里面 dfs.hosts 属性形成一种白名单机制。-->
    node-1
    node-2
    node-3
    

修改系统环境变量

export HADOOP_HOME=/export/servers/hadoop-2.7.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
集群启动

要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个集群

首次启动HDFS, 要进行格式化( 初始化 )操作 , 做一些清理和准备工作

  • hdfs namenode -format 或者 hadoop namenode -format
    • 该操作在集群搭建完成后首次启动之前进行
    • 格式化只可进行一次 如果出现多次格式化 就是使得主从之间的集群ID不一致 导致集群启动失败
    • 一般在namenode所在机器执行一次

单节点逐个启动

  • hadoop-daemon.sh start namenode|datanode|secondarynamenode
  • yarn-daemon.sh start resourcemanager|nodemanager

脚本一键启动

  • start-dfs.sh stop-dfs.sh
  • start-yarn.sh stop.yarn.sh
  • start-all.sh stop-all.sh

web-ui

hadoop启动后, 可以在浏览器通过主机+端口查看

namenode: http://namenode_host:port http://node-1:50070

resourcemanager : http://resourcemanager_host:port http://node-1:8088

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值