# 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 底层原理