Hadoop介绍

第1章 大数据概论

1.1 什么是大数据

主要解决:海量数据的存储和海量数据的分析计算问题

大数据中的存储单位:bit,byte,KB,MB,GB,TB,PB,EB,ZB

1byte = 8bit 1KB = 1024byte 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB …

1.2 大数据特点

  • Volume(大量):数据量庞大
  • Velocity(高速):比如淘宝双十一
  • Variety(多样):数据库和文本为主的结构化数据,非结构化数据越来越多(mp4,音频,视频,图片,地理位置等信息)
  • Value(低价值密度):大量数据其实有用的就那么一两条

1.3 大数据应用场景

  • 物流仓储
  • 零售
  • 旅游
  • 商品广告
  • 保险
  • 金融
  • 房产
  • 人工智能

1.4 发展前景

  • 国家层面大力支持
  • 人才缺口大
  • 本科已经设立大数据专业
  • 薪资高

1.5 大数据业务流程分析

  • 产品人员提需求(统计总用户数、日活跃数、回流用户数、连续三天下单等等)
  • 数据部门搭建数据平台、分析数据,分析指标
  • 将分析得到的结果进行数据可视化(报表展示、邮件发送、大屏展示)

1.6 大数据部门组成结构

在这里插入图片描述

第二章 hadoop框架

2.1 Hadoop是什么

  1. hadoop是一个由apache基金会所开发的分布式系统基础架构
  2. 主要解决海量数据的存储和海量数据的分析计算问题
  3. 广义上说,hadoop通常是指一个更广泛的——hadoop生态圈

2.2 Hadoop发展史

在这里插入图片描述
在这里插入图片描述

2.3 Hadoop三大发行版本

hadoop三大发行版本:Apache、Cloudera、Hortonworks
Apache版本最原始(最基础)的版本,对于入门学习最好。
Cloudera内部集成了很多大数据框架。对应产品CDH。
Hortonworks文档较好。对应产品HDP。

  1. Apache Hadoop
    官网地址:http://hadoop.apache.org/releases.html
    下载地址:https://archive.apache.org/dist/hadoop/common/
  2. Cloudera Hadoop
    官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
    下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
    (1)2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。
    (2)2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support
    (3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。Cloudera的标价为每年每个节点10000美元。
    (4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。
  3. Hortonworks Hadoop
    官网地址:https://hortonworks.com/products/data-center/hdp/
    下载地址:https://hortonworks.com/downloads/#data-platform
    (1)2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。
    (2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。
    (3)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。
    (4)Hortonworks目前已经被Cloudera公司收购。

2.4 hadoop的优势

在这里插入图片描述

2.5 Hadoop组成

在这里插入图片描述

2.5.1 HDFS架构概述

  1. NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
  2. DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和
  3. Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份

2.5.2 YARN架构概述

在这里插入图片描述

2.5.3 MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce

  1. Map阶段并行处理输入数据
  2. Reduce阶段对Map结果进行汇总
    在这里插入图片描述

2.6 大数据技术生态体系

在这里插入图片描述

  1. sqoop:sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如:MySql,Oracle等)中的数据导进到HDFS上,或者将HDFS上数据导出到关系型数据库中。
  2. Flume:Flume是一个高可用的,高可靠的,分布式的,海量日志采集,聚合和传输的系统,flume支持在日志系统中定制各类数据发送方,用于收集数据;
  3. Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统;
  4. Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
  5. Flink:Flink是当前最流行的开源大数据内存计算框架。用于实时计算场景较多。
  6. Oozie:Oozie是一个管理Hadoop作业(job)的工作流程调度管理系统。
  7. Hbase:Hbase是一个分布式的,面向队列的开源数据库。Hbase不同于一般的关系型数据库,它是一个适合于非结构化数据存储的数据库。
  8. Hive:Hive是一个基于Hadoop的一个数据仓库工具,可以将结构化是数据映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
  9. Zookeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

2.7 推荐系统框架图

在这里插入图片描述

第3章 hadoop集群搭建(重要部分)

3.1 Hadoop目录结构

[atguigu@hadoop102 hadoop-3.1.3]$ ll
总用量 52
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 bin
drwxr-xr-x. 3 atguigu atguigu  4096 522 2017 etc
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 include
drwxr-xr-x. 3 atguigu atguigu  4096 522 2017 lib
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 libexec
-rw-r--r--. 1 atguigu atguigu 15429 522 2017 LICENSE.txt
-rw-r--r--. 1 atguigu atguigu   101 522 2017 NOTICE.txt
-rw-r--r--. 1 atguigu atguigu  1366 522 2017 README.txt
drwxr-xr-x. 2 atguigu atguigu  4096 522 2017 sbin
drwxr-xr-x. 4 atguigu atguigu  4096 522 2017 share
  1. bin目录:存放对Hadoop相关服务(HDFS、YARN)进行操作的脚本
  2. etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
  3. lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
  4. sbin目录:存放启动或停止Hadoop相关服务的脚本
  5. share目录:存放Hadoop的依赖jar包、文档、和官方案例

第4章 Hadoop运行模式(重要部分)

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Hadoop官网:http://hadoop.apache.org/

4.1 完全分布式运行模式

  1. 准备3台客户机(关闭防火墙,改成静态ip,主机名称)
  2. 安装JDK
  3. 配置环境变量
  4. 安装Hadoop
  5. 配置hadoop环境变量
  6. 配置集群
  7. 单点启动
  8. 配置SSH
  9. 群起并测试集群

4.1.1 编写集群分发脚本xsync

  1. scp(secure copy)安全拷贝
  • scp定义:
    scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
  • 基本语法:
scp    -r          $pdir/$fname              $user@hadoop$host:$pdir/$fname
命令   递归        要拷贝的文件路径/名称          目的用户@主机:目的路径/名称
  • 案例实操
在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。

[atguigu@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212  atguigu@hadoop103:/opt/module
  1. rsync远程同步工具
    rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
    rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
  • 基本语法
rsync    -av         $pdir/$fname              $user@hadoop$host:$pdir/$fname
命令   选项参数      要拷贝的文件路径/名称            目的用户@主机:目的路径/名称
  • 案例实操
把hadoop102机器上的/opt/software目录同步到hadoop103服务器的/opt/software目录下

[atguigu@hadoop102 opt]$ rsync -av /opt/software/* atguigu@hadoop103:/opt/software
  1. xsync集群分发脚本
1)需求:循环复制文件到所有节点的相同目录下
	rsync  -av     /opt/module  	 root@hadoop103:/opt/

在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4. 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

4.1.2 配置SSH免密

原理

在这里插入图片描述

生成公钥和私钥:
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104

4.2 集群启停脚本

hadoop集群启停脚本(包含hdfs,yarn,historyserver):myhadoop.sh

#!/bin/bash
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi
case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值