首页 > 其他分享 >Hadoop_1

Hadoop_1

时间:2022-10-31 11:38:35浏览次数:37  
标签:node hdfs Hadoop hadoop 集群 cdh5.14 2.6


Hadoop1

  • hadoop是什么
  • 狭义上
  • 特指Apache 的一款软件 java语言开发 开源软件 大数据问题解决处理平台
Hadoop HDFS:分布式文件系统  解决了海量数据存储问题
Hadoop MapReduce:分布式计算框架 解决了海量数据的计算问题
Hadoop YARN:资源管理任务调度系统
  • 广义上
  • 特指hadoop 生态圈 包括了大数据解决的各个不同步骤的软件
  • 甚至一些非apache 的项目也会处于生态圈中
  • hadoop的优点和应用
  • 优点:扩容能力强 使用分布式的思想解决了海量数据的处理问题
    使用方便简单 相比较于传统的处理方式 犹如一缕清风
  • 应用:hadoop精准了区分 what to do(做什么 业务)| how to do(怎么做 技术)
    hadoop提供了大数据存储能力 计算能力 跟具体的行业不会挂钩 通用的大数据解决方案。

hadoop集群搭建

  • hadoop发行版本
  • 社区版:官方版本 apache社区维护
  • 优点:功能最新的 免费
  • 缺点:稳定性 兼容性不好
https://archive.apache.org/dist/hadoop/common/

hadoop-2.6.0-src.tar.gz 官方提供的源码包
hadoop-2.6.0.tar.gz 官方预编译安装包
  • 商业版:商业公司在社区版本至少进行商业化开发 架构 api 配置不会发生改变 主要改变bug和兼容性
  • 优点:稳的一批 兼容性极好
  • 缺点:花钱 某些软件可能版本不高 不能使用最新的功能
http://archive.cloudera.com/cdh5/cdh/5/

hadoop-2.6.0-cdh5.14.0-src.tar.gz cdh版本源码包
hadoop-2.6.0-cdh5.14.0.tar.gz cdh版本预编译安装包

只要保证cdh版本号是一致的 该版本号中所有的生态圈软件之间都是兼容的

  • 在博客中 我们使用cdh最稳定的一个版本 cdh5.14.0–hadoop 2.6.0
  • hadoop自身版本发展
  • 历经了1.X 2.X 3.X
  • 当下企业中使用最多的是2系列高阶版本 2.5~2.8 稳定兼容性最好
  • hadoop集群介绍
  • hadoop分为两个集群 hdfs集群 yarn集群
  • hdfs集群 分布式文件存储
  • 主角色:namenode(nn)
  • 从角色:datanode(dn)
  • 主角色辅助角色(秘书角色):secondarynamenode(snn)
  • yarn集群 集群资源管理 任务调度
  • 主角色:resourcemanager(rm)
  • 从角色:nodemanager(nm)
  • hadoop部署模型
  • 单机模式 所有的进程在一个机器上运行 过家家
  • 伪分布模式 每个进程独立 在一台机器上 模拟分布式执行环境
  • 分布式集群模式:多个进程多台机器 生成环境中的模式
  • HA高可用集群: 主要解决了单点故障 保证集群稳定 可靠
  • hadoop安装环境检测
  • jdk是否正常安装 环境变量
  • 时间是否同步
  • 防火墙是否关闭
    iptables selinux
  • 主机名 ip映射
  • 免密登录 ssh
  • hadoop源码编译
  • 为什么某些软件需要编译源码
软件的运行依赖于操作系统平台 操作系统之间存在着差异性  下载源码结合具体平台进行编译
修改源码中某些组件的逻辑
  • 什么叫做编译
    以java语言来说 把.java 编译成.class —>jar 便于程序运行
  • 如何编译源码
    在每个版本的hadoop 源码包中 building.txt 里面描述了该版本的编译需要配置的依赖软件
    最终只需要执行mvn -pachage 进行编译
    保证编译过程中网络的顺畅 jar可以下载 推荐使用博客中提供cdh编译需要的jar仓库
  • 集群规划(站在架构的角度规划服务器集群分配)
  • 根据软件自己 软件之间的工作特性结合服务器的硬件特性 合理安排软件运行在不同的机器上
  • 原则:
  • 优先满足软件需要的硬件资源
  • 尽量避免有冲突的软件不在一起
  • 有工作上依赖的软件尽量部署在一起

NodeManager和Datanode通常部署在一台机器上。

node-1: NameNode   DataNode                   | ResourceManager NodeManager
node-2: DataNode SecondaryNameNode| NodeManager
node-3: DataNode | NodeManager

如何扩展hadoop集群

node-4   DataNode  NodeManager
node-5 DataNode NodeManager
node-6 DataNode NodeManager
.......
  • hadoop 安装目录结构
bin        hadoop集群管理的基本脚本  
etc 配置文件路径
include
lib
libexec
sbin hadoop集群启动关闭的脚本(单节点逐个 一键启动)
share hadoop 编译之后的jar 官方自带示例
  • hadoop配置修改
  • 第一类 shell脚本 hadoop-env.sh
    导入java_home 保证hadoop运行的时候一定可以正确的加载jdk环境变量
vim etc/hadoop/hadoop-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_65
  • 第二类配置文件 4个 xml文件(分别配置了 hdfs mapreduce yarn common)
  • core-site.xml common模块
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node-1:8020</value>
</property>

<!-- 指定hadoop运行时产生文件的存储目录,默认/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoopdata</value>
</property>
  • hdfs-site.xml hdfs模块
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node-2:50090</value>
</property>
  • mapred-site.xml mr模块
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
  • yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
  • 第三类配置文件 slaves
  • 配合一键启动脚本 到slaves指定的机器上启动hdfs和yarn集群的从角色
  • 通过 dfs.hosts 指定的slaves文件中的机器才可以加入hadoop集群 白名单
  • 一个写一个ip或者主机名
node-1
node-2
node-3
  • 把主节点上配置 好的安装包scp给其他节点上
cd /export/servers/
scp -r hadoop-2.6.0-cdh5.14.0/ node-2:$PWD
scp -r hadoop-2.6.0-cdh5.14.0/ node-3:$PWD
  • 添加hadoop的环境变量
export HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

hadoop初体验

  • namnode format操作
  • 首次启动集群需要针对hdfs 操作
  • 操作只需要进行一次 通常在namenode所在节点进行
  • format中主要创建了hadoop运行时依赖的一些文件夹和文件
Storage directory /export/data/hadoopdata/dfs/name has been successfully formatted.
-rw-r--r--. 1 root root 321 Jul 18 14:53 fsimage_0000000000000000000
-rw-r--r--. 1 root root 62 Jul 18 14:53 fsimage_0000000000000000000.md5
-rw-r--r--. 1 root root 2 Jul 18 14:53 seen_txid
-rw-r--r--. 1 root root 208 Jul 18 14:53 VERSION
  • Q:如果不小心format多从会如何?怎么解决?
  • 后果:集群中主从角色互相不识别 貌合神离 之前集群的元数据都会丢失
  • 解决:把3台机器上hadoop.tmp.dir 指定文件夹全部删除 重新format一次
  • hadoop集群的启动方式
  • 单节点逐个启动
  • hdfs集群
hadoop-daemon.sh start|stop  namenode/datanode/secondarynamenode
  • yarn集群
yarn-daemon.sh start|stop  reourcemanager/nodemanager
  • 好处:可以精准的控制每个机器上每个进程启停状态 便于后期维护集群
  • 脚本一键启动
  • 前提是必须配置好 ssh免密登录 指定slaves文件
  • hdfs集群
start-dfs.sh     stop-dfs.sh
  • yarn集群
start-yarn.sh    stop-yarn.sh
  • 更狠的命令 一键启动两个集群
start-all.sh  stop-all.sh
  • hadoop web-ui页面
  • hdfs:http://namenode_ip:50070
  • yarn:http://resourcemanager_ip:8088
  • 初体验
  • hdfs 存储文件集群
  • 本质就是用于文件存储的
  • 结构上也是目录树结构 从/根目录开始
  • 文件夹是文件夹 目录是目录
  • 操作起来比较慢?为什么慢? 难道是分布式存储造成?
  • yarn+mr
  • mr程序本质就是一个java程序
  • mr程序第一步去寻找yarn?为什么去?寻找资源。?
  • mr程序分为两个阶段的 先map 再reduce
  • mr输出的结果好像有顺序 字典序(a–z 0–9)

MapReduce jobhistory

  • 记录已经完成的mr程序的信息 历史任务信息
  • 如何开启
vim  mapred-site.xml

<property>
<name>mapreduce.jobhistory.address</name>
<value>node-1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node-1:19888</value>
</property>
  • 把修改好的配置文件scp给其他机器上
scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/mapred-site.xml node-2:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/

scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/mapred-site.xml node-3:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/
  • 单独启动关闭historyserver 服务(只需要配置指定的机器上启动即可)
mr-jobhistory-daemon.sh start historyserver
如果关闭的话 用下述命令
mr-jobhistory-daemon.sh start historyserver
  • 访问浏览historyserver
  • 注意事项
  • historyserver 是否运行不影响hadoop集群正常工作 只是为了更好查看历史运行信息的

hadoop hdfs 垃圾回收机制

  • 何为垃圾回收
    开启垃圾回收站 把删除的文件首先放置在回收站中 等待配置的时间结束 进行真正的数据删除
  • 如何开始
vim core-site.xml

<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
  • 把配置文件 scp给其他节点上
scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml node-2:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/

scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml node-3:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/
  • 垃圾回收机制演示效果
  • 未开启
[root@node-1 ~]# hadoop fs -rm /test/1.txt
Deleted /test/1.txt
  • 开启
hadoop fs -rm /test/1.txt
19/07/18 16:18:17 INFO fs.TrashPolicyDefault: Moved: 'hdfs://node-1:8020/test/1.txt' to trash at: hdfs://node-1:8020/user/root/.Trash/Current/test/1.txt

本质是把删除文件 首先移动一个指定的文件夹下面

  • 恢复删除的数据
hadoop fs -mv /user/root/.Trash/Current/test/1.txt /test
  • 跳过垃圾回收 直接删除
skipTrash 选项删除文件,该选项不会将文件发送到垃圾箱。它将从HDFS 中完全删除


标签:node,hdfs,Hadoop,hadoop,集群,cdh5.14,2.6
From: https://blog.51cto.com/u_12277263/5808894

相关文章

  • Hadoop MapReduce
    HadoopMapReduce理解mapreduce思想核心:分而治之先分再合两个阶段map阶段(分):如果任何可以拆分并且没有依赖那么就把复杂的任务拆分成小任务拆分成小任务之后可以并行计算......
  • 一、Hadoop企业优化
    MapReduce跑的慢的原因Mapreduce程序效率的瓶颈在于两点:1)计算机性能  CPU、内存、磁盘健康、网络2)I/O操作优化(1)数据倾斜(2)map和reduce数设置不合理(3)map运行时间太长,导......
  • hadoop hdfs
    hadoophdfshdfs特性首先,它是一个文件系统用于存储文件的提供统一命名空间的目录树结构便于用户操作文件系统其次,它是一个分布式文件系统分布式意味着多台机器当中......
  • Hadoop之初识MapReduce
    (初识MapReduce)1.MapReduce计算模型介绍1.1.理解MapReduce思想MapReduce的思想核心是<fontcolor=red>“分而治之”</font>。所谓“分而治之”就是把一个复杂的问题按一......
  • hadoop 日志存放位置
    初学者运行MapReduce作业时,经常会遇到各种错误,由于缺乏经验,往往不知所云,一般直接将终端打印的错误贴到搜索引擎上查找,以借鉴前人的经验。然而,对于hadoop而言,当遇到错误时,第......
  • 大数据Hadoop之——Apache Hudi 与 Presto/Trino集成
    目录一、概述二、Trino环境部署1)安装JDK2)安装python3)安装Trino1、下载解压并配置环境变量2、修改配置3、启动服务4、测试验证三、在Hive中创建表关联Hudi表1)添加jar包2)创......
  • 大数据处理架构Hadoop
    Hadoop可以支持多种编程语言HDFS分布式文件系统MapReduce分布式并行编程框架这两大核心组件用于解决怎么实现海量数据的分布式存储和怎么实现海量数据分布式处理Hiv......
  • Hadoop之HDFS的集群之间的数据复制、归档机制和安全模式
    (HDFS的数据数据复制、归档机制和安全模式)1.不同集群之间的数据复制在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷......
  • 【实战】Hadoop安装01-伪分布式-Pseudo
    Hadoop安装-伪分布式-Pseudo〇、所需资料一、前置环境安装1、包含内容(1)安装虚拟机安装、系统安装(2)配置ip、host、主机名配置关闭防火墙及selinuxSSH免密登录(2)基......
  • 大数据Hadoop之——Apache Hudi 数据湖实战操作(FlinkCDC)
    目录一、概述二、Hudi数据管理1).hoodie文件2)数据文件三、数据存储四、Hive与Hudi集成使用1)安装mysql数据库2)安装Hive1、下载2、配置3、解决Hive与Hadoop之间guava版本......