# BigData_Learning
**Repository Path**: fxbin/BigData_Learning
## Basic Information
- **Project Name**: BigData_Learning
- **Description**: 大数据学习 ing...
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-10-24
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# HDFS 模块说明:
对hdfs 的一些简单上传下载删除操作demo
* 注: 在windows系统运行此程序,需要将hadoop-2.8.3.tar.gz 解压
并配置环境变量 并将winutils.exe 放到hadoop 解压之后的bin 目录,
IDEA 重启生效
# 节点规划
* a.com[192.168.70.111] master
* NameNode
* SecondaryNameNode
* ResourceManager
* b.com[192.168.70.112] slave
* DataNode
* NodeManager
* c.com[192.168.70.113] slave
* DataNode
* NodeManager
# 目录规划
* /opt 存放hadoop,java等应用
* /data 存放日志信息
# hadoop-2.8.3 安装
* 官网下载安装包 http://hadoop.apache.org/
* 解压到/opt目录
````
tar -zxvf hadoop-2.8.3.tar.gz -C /opt
````
* 配置环境变量
````
vim /etc/profile
编辑如下信息到profile文件:
# set hadoop enviroment
export HADOOP_HOME=/opt/hadoop-2.8.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Esc + ;
wq
保存
source /etc/profile
````
# Hadoop安装的三种模式
* 本机模式
* 特点:没有HDFS,只能测试MapReduce程序(不是运行在Yarn中,做一个独立的Java程序来运行)
* 测试MapReduce程序:
````
cd /opt/hadoop-2.8.3/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.8.3.jar wordcount /root/temp/input/data.txt /root/temp/output/wc
````
* 注意:路径都是本地Linux的路径
* 伪分布模式
* 特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能
* HDFS:NameNode + DataNode + SecondaryNameNode
* Yarn:ResourceManager + NodeManager
* 全分布模式
* 真正用于生产的环境
# HDFS 配置(全分布式配置)
* 对于伪分布式配置,只需跳过以下的
[slaves 节点配置] [拷贝hadoop] 两步即可
* hadoop-env.sh
````
export JAVA_HOME=/opt/jdk8
````
* hdfs-site.xml
````
dfs.replication
2
dfs.permissions
false
````
* core-site.xml
````
fs.defaultFS
hdfs://a.com:9000
hadoop.tmp.dir
/data/hadoop
fs.trash.interval
1440
````
# YARN 配置
* mapred-site.xml
````
mapreduce.framework.name
yarn
yarn-site.xml
yarn.resourcemanager.hostname
a.com
yarn.nodemanager.aux-services
mapreduce_shuffle
````
# slaves 节点配置
* slaves
````
从节点名称(主机名/ip地址)
````
# 拷贝hadoop
````
scp -r hadoop* root@b.com:/opt
scp -r hadoop* root@c.com:/opt
````
# master NameNode 格式化
* 对 HDFS 的NameNode 进行格式化
````
hdfs namenode -format
````
# 启动
* 主节点启动
````
start-all.sh
````
# 主从结构的单点故障:
# HDFS :数据存储
* 一、HDFS体系架构
* NameNode: 名称节点
* 职责:
(1) 是HDFS 的主节点、管理员
(2) 接收客户端(命令行、Java程序)的请求:创建目录、上传数据、下载数据、删除数据等等
(3) 管理和维护HDFS 的日志和元信息
(*) 日志文件(edits文件): 记录的是客户端的所有操作
* DataNode: 数据节点
* 职责: 按照数据块保存数据库
Hadoop 1.X 64M
Hadoop 2.X 128M
* 数据块:表现形式:就是一个文件(blk**********)
* 设置数据块冗余度原则:一般跟数据节点的个数一样:但是最大不要超过3
* Hadoop 3.X 以前,会造成存储空间的极大浪费
Hadoop 3.X 以后,HDFS纠删码技术,大大的节约存储空间(节约一半)
* SecondaryNameNode: 第二名称节点
* 职责: 进行日志信息的合并
* 由于edits文件记录了最新的状态信息,并且随着操作越来越多,
edits就会越来越大
* 把edits中的最新信息写到fsimage中
* edits 文件就可以清空
* 检查点 checkpoint
* Spark 中的RDD 的检查点: 容错机制
* Oracle中的检查点:会以最高优先寄唤醒数据库的写进程,
将脏数据写入硬盘文件
* 一、操作HDFS
* 1、Web Console port: 50070
* 2、命令行...
* 二、HDFS 原理分析
* 三、HDFS 的高级特性
1、安全模式 safe mode
注意:HDFS正常运行的时候,安全模式一定是off(关闭状态)
是HDFS的一种自我保护,作用:检查数据块的副本率
HDFS处于安全模式,是只读的状态
2、快照:是一种备份
命令:
[-allowSnapshot ]
[-disallowSnapshot ]
* 四、HDFS 底层原理