一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
[第二章]大数据处理架构Hadoop
概述Hadoop特性版本生态系统安装使用预备知识创建Hadoop用户SHH登陆权限设置安装Java环境单机安装配置伪分布式安装配置修改配置文件:初始化文件系统启动所有进程访问web界面,查看Hadoop信息运行实例集群节点类型NameNodeDataNodeJobTrackerTaskTrackerSecondaryNameNode集群网络拓扑建立与安装测试云环境中使用HadoopOpenStack运行HadoopDocker部署Hadoop实验⭐
概述
Hadoop
分布式开源平台,支持多语言的编程
- 核心技术HDFS分布式文件系统、MapReduce(MR、MapR)分布式计算
- 谷歌提出GFS,Hadoop借鉴做出了HDFS
特性
对大数据进行可靠、高效、可伸缩的方式处理
- 优点
- 高可靠性:多个副本,一个出问题也可以正常服务
- 高效性:分布式处理
- 高可扩展性
- 高容错性:冗余存储,多个副本
- 成本低:廉价的计算机集群
- 运行在linux操作系统上
- 支持多种语言
版本
- 是否开源
- 是否稳定
- 是否实践检验
- 是否强大的社区支持
- 是否有维护
- 是否好用
- 是否支持本地
生态系统

安装使用
预备知识
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参数)(目前不用)
- hadoop.tmp.dir表示存放临时数据的目录,即包括NameNode的数据,也包括DataNode的数据,路径任意
- localhost:后面数值任意
- 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...