[第二章]大数据处理架构Hadoop

概述

Hadoop

分布式开源平台,支持多语言的编程
  • 核心技术HDFS分布式文件系统、MapReduce(MR、MapR)分布式计算
  • 谷歌提出GFS,Hadoop借鉴做出了HDFS

特性

对大数据进行可靠、高效、可伸缩的方式处理
  • 优点
    • 高可靠性:多个副本,一个出问题也可以正常服务
    • 高效性:分布式处理
    • 高可扩展性
    • 高容错性:冗余存储,多个副本
    • 成本低:廉价的计算机集群
    • 运行在linux操作系统上
    • 支持多种语言

版本

  • 是否开源
  • 是否稳定
  • 是否实践检验
  • 是否强大的社区支持
  • 是否有维护
  • 是否好用
  • 是否支持本地

生态系统

notion image

安装使用

预备知识

tips:及时备份
  • 复制粘贴的快捷键需要加上 shift,即粘贴是 ctrl+shift+v
  • ctrl+alt+t 打开终端窗口
  • Ubuntu不能直接访问windos,尽量在Ubuntu里下
模式
  • 单机模式
  • 伪分布式模式
  • 分布式模式

创建Hadoop用户

  • $ sudo useradd –m hadoop –s /bin/bash
  • $ sudo passwd hadoop
  • $ sudo adduser hadoop sudo//给管理员权限

SHH登陆权限设置

  • 安装SHH
  • 配置无密码
  • sudo apt-get install openssh-server
  • ssh-keygen -t [rsa|dsa]
    • 会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
  • .pub 文件复制到B机器的 .ssh 目录
    • cat id_rsa.pub >> ~/.ssh/authorized_keys

安装Java环境

  • 自己手动安装jdk安装1.8以上
  • 配置JAVA_HOME环境变量

单机安装配置

  • Hadoop3.1.3
  • Hadoop 3 可以到Ubuntu火狐浏览器官网下载,需要下载 hadoop-3.x.y.tar.gz 这个格式的文件
  • 安装Hadoop
    • $ sudo tar -zxf ~/下载/hadoop-3.1.3.tar.gz -C /usr/local    # 解压到/usr/local中
    • $cd /usr/local/
    • $sudo mv ./hadoop-3.1.3/ ./hadoop            # 将文件夹名改为hadoop
    • $sudo chown -R hadoop:hadoop ./hadoop        # 修改文件权限
  • 测试是否可用
    • $ cd /usr/local/hadoop
    • $./bin/hadoop version

伪分布式安装配置

单节点上以伪分布式的方式运行,既作为 NameNode 也作为 DataNode
Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现

修改配置文件:

  • Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml和 hdfs-site.xml
  • core-site.xml,hdfs-site.xml(HDFS参数),mapred-site.xml(MapReduce参数)(目前不用)
    • notion image
    • hadoop.tmp.dir表示存放临时数据的目录,即包括NameNode的数据,也包括DataNode的数据,路径任意
    • localhost:后面数值任意
    • notion image
    • dfs.replication表示副本的数量,伪分布式要设置为1
    • dfs.namenode.name.dir表示本地磁盘目录,是存储fsimage文件的地方
    • dfs.datanode.data.dir表示本地磁盘目录,HDFS数据存放block的地方
  • 三种shell命令
    • hadoop fs适用于任何不同的文件系统
    • hdfs dfs 等于hadoop dfs,只能适用于HDFS文件系统

初始化文件系统

  • hadoop namenode -format

启动所有进程

  • start-all.sh

访问web界面,查看Hadoop信息

运行实例

集群

节点类型

NameNode

负责协调集群中的数据存储(名字、位置、怎么分)类似索引
  • HDFS
  • 配置
    • 8-12个磁盘驱动器(单盘1-2T)
    • 2个4核/8核CPU
    • 16-72GB内存(通道优化)
    • 千兆/万兆以太网
  • 存储元数据
  • 元数据存在内存中
  • 通常采用RAID来提高可靠性,以防止单个驱动器出现故障

DataNode

存储被拆分的数据块(存储被要求的数据)
  • HDFS
  • 配置
    • 4个磁盘驱动器(单盘1-2T),支持JBOD(Just a Bunch Of Disks,磁盘簇)
    • 2个4核CPU,至少2-2.5GHz
    • 16-24GB内存
    • 千兆以太网
  • 存储文件内容
  • 文件内容保存在磁盘

JobTracker

协调数据计算任务
  • MapReduce

TaskTracker

执行由JobTracker指派的任务
  • MapReduce
  • 配置
    • 4个磁盘驱动器(单盘1-2T),支持JBOD(Just a Bunch Of Disks,磁盘簇)
    • 2个4核CPU,至少2-2.5GHz
    • 16-24GB内存
    • 千兆以太网

SecondaryNameNode

收集状态信息、备份
  • 热备份:一旦namenode出问题,secondarynamenode能代替运行
  • 冷备份:要处理后才能代替运行
  • 配置
    • 8-12个磁盘驱动器(单盘1-2T)
    • 2个4核/8核CPU
    • 16-72GB内存(通道优化)
    • 千兆/万兆以太网

集群网络拓扑

  • 每个机架(Rack)有30-40个服务器,配置一个1GB的交换机
  • 相同的机架中的节点间的带宽的总和 > 不同机架间的节点间的带宽总和

建立与安装

  • 手动安装
  • 自动安装-Docker等

测试

  • JAR文件中基准测试
  • TestDFSIO基准测试
  • 排序测试MapReduce:Hadoop自带一个部分排序的程序

云环境中使用Hadoop

  • 百度云、阿里云、Amazon EC2

OpenStack运行Hadoop

Docker部署Hadoop


装java要装1.8及其以上版本

实验⭐

Prev
[第一章]大数据概述
Next
[第三章]分布式文件系统HDFS
Loading...
Article List
一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++