Hadoop学习笔记(HDP)-Part.12 安装HDFS

目录
Part.01 关于HDP
Part.02 核心组件原理
Part.03 资源规划
Part.04 基础环境配置
Part.05 Yum源配置
Part.06 安装OracleJDK
Part.07 安装MySQL
Part.08 部署Ambari集群
Part.09 安装OpenLDAP
Part.10 创建集群
Part.11 安装Kerberos
Part.12 安装HDFS
Part.13 安装Ranger
Part.14 安装YARN+MR
Part.15 安装HIVE
Part.16 安装HBase
Part.17 安装Spark2
Part.18 安装Flink
Part.19 安装Kafka
Part.20 安装Flume

十二、安装HDFS

1.安装libtirpc-devel

HDFS依赖libtirpc-devel,因此需要先安装libtirpc-devel。
创建yml文件,/root/ansible/libtirpc.yml

---
- hosts: all
  vars:
    var_package:
      - libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm
  tasks:
    - name: copy install files
      copy:
        src: "/opt/{{ item }}"
        dest: /root/
      loop: "{{ var_package }}"
    - name: install package
      shell:
        cmd: "yum localinstall -y /root/{{ item }}"
      loop: "{{ var_package }}"
    - name: delete install files
      file:
        path: "/root/{{ item  }}"
        state: absent
      loop: "{{ var_package }}"

执行

ansible-playbook /root/ansible/libtirpc.yml

2.安装服务

在Serivces->Add Service中添加HDFS服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.namenode HA

(1)启用HA

在ACTIONS->Enable NameNode HA中配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改JournalNode的路径为/data01/hadoop/hdfs/journal
在这里插入图片描述
在这里插入图片描述
按照提示在hdp01上创建checkpoint

sudo su hdfs -l -c 'hdfs dfsadmin -safemode enter'
sudo su hdfs -l -c 'hdfs dfsadmin -saveNamespace'

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照提示在hdp01上对JournalNode进行初始化

sudo su hdfs -l -c 'hdfs namenode -initializeSharedEdits'

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照提示在hdp01上初始化元数据

sudo su hdfs -l -c 'hdfs zkfc -formatZK'

在这里插入图片描述
按照提示在hdp02上初始化元数据

sudo su hdfs -l -c 'hdfs namenode -bootstrapStandby'

在这里插入图片描述
在这里插入图片描述

(2)确认配置文件

/etc/hadoop/conf/core-site.xml,是NameNode的核心配置文件,主要对NameNode的属性进行设置,也仅仅在NameNode节点生效。
nn和2nn时,fs.defaultFS为hdfs://hdp01.hdp.com:8020
在这里插入图片描述
改为nn HA后,fs.defaultFS为hdfs://hdp315,以高可用集群出现
在这里插入图片描述

参数含义配置值
fs.defaultFS指定访问HDFS文件系统的URI,在HA集群中,此值必须和hdfs-site.xml中的dfs.nameservices配置值一致hdfs://hdp315
ha.zookeeper.quorumZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点hdp01.hdp.com:2181,hdp02.hdp.com:2181,hdp03.hdp.com:2181
fs.trash.interval定义.trash目录下文件被永久删除前保留的时间。在文件从HDFS永久删除前,用户可以自由地把文件从该目录下移出来并立即还原。默认值0,说明垃圾回收站功能是关闭的,一般开启这个会比较好,以防错误删除重要文件,单位是分钟360

4.取消kerberos对页面的认证

正常情况下,kerberos对web页面也会进行认证,可取消掉;如果是对安全较高的场景下,需要在windows电脑上安装kerberos客户端,来实现身份认证,进而登录到web中。
如果未取消认证,会出现如下的界面
在这里插入图片描述
取消kerberos认证的配置
HDFS中CONFIGS->ADVANCED中,
Advanced core-site
hadoop.http.authentication.simple.anonymous.allowed:true
Custom core-site
hadoop.http.authentication.type:simple
重启hdfs服务后,namenode页面可以正常打开
在这里插入图片描述

5.确认HDFS配置

(1)hdfs-site.xml文件

/etc/hadoop/conf/hdfs-site.xml,是HDFS的核心配置文件,主要配置NameNode、DataNode的一些基于HDFS的属性信息、在NameNode和DataNode节点生效。

参数含义配置值
dfs.nameservices指定一个逻辑上的HDFS集群服务名,该服务名是自定义的。当外界访问HDFS集群时,入口就是这个服务名HDP
dfs.ha.namenodes.[nameservice ID]指定两个NameNode的唯一标识,名字随便起,相互不重复即可,在HDFS集群管理中会用到nn1,nn2
dfs.namenode.rpc-address.[nameservice ID].[name node ID]指定nn01、nn02的RPC地址hdp01.hdp.com:8020 hdp02.hdp.com:8020
dfs.namenode.http-address.[nameservice ID].[name node ID]指定nn01、nn02的http地址hdp01.hdp.com:50070 hdp02.hdp.com:50070
dfs.namenode.shared.edits.dir指定集群的两个NameNode共享edits文件目录时,使用JournalNode集群的信息qjournal://hdp01.hdp.com:8485;hdp02.hdp.com:8485;hdp03.hdp.com:8485/hdp315nn
dfs.journalnode.edits.dir指定JournalNode集群在对NameNode的元数据目录进行共享时,数据在本地磁盘存储的路径/data01/hadoop/hdfs/journal
dfs.replication指定DataNode存储数据块的副本数量。默认值是3个,现在有3个DataNode,该值不大于3即可3
dfs.ha.fencing.methods配置隔离机制,一旦需要NameNode切换,使用shell方式进行操作shell(/bin/true)
dfs.namenode.name.dir用于确定将HDFS文件系统的元信息保存在什么目录下。如果这个参数设置为多个目录,那么这些目录下都保存着元信息的镜像备份,推荐多个磁盘路径存放元数据/data01/hadoop/hdfs/namenode
dfs.datanode.data.dir用于确定将HDFS文件系统的数据存储在本地磁盘哪个目录下。可以将这个参数设置为多个磁盘分区上的不同目录,即可将HDFS数据分布在多个不同磁盘分区上/data01/hadoop/hdfs/data,/data02/hadoop/hdfs/data,/data03/hadoop/hdfs/data
dfs.permissions.enabled表示是否在HDFS中开启权限检查,true表示开启,false表示关闭,生产环境建议开启true

(2)NameNode内存

NameNode的内存计算:
每个文件块大概占用150byte,hdp01-02的内存为8G,能存储的文件块为
810241024*1024/150Byte≈5700万
在ambari上配置后内存后,会同步更新到/etc/hadoop/conf/hadoop-env.sh
在这里插入图片描述
在这里插入图片描述
在SETTINGS中将内存设置为5G,然后通过ADVANCED下的Advanced hadoop-env中的参数进行传递
export HADOOP_NAMENODE_INIT_HEAPSIZE=“-Xms{{namenode_heapsize}}”
然后在配置文件hadoop-env.sh中,可以看到内存已经更改为5G
export HADOOP_NAMENODE_INIT_HEAPSIZE=“-Xms5120m”

(3)NameNode心跳

NameNode不仅要应对客户端的请求,还需要对DataNode的心跳进行接收,这些均需要线程
具体在hdfs-site.xml中设置

    <property>
      <name>dfs.namenode.handler.count</name>
      <value>21</value>
    </property>

d f s . n a m e n o d e . h a n d l e r . c o u n t = 20 × log ⁡ e C l u s t e r S i z e dfs.namenode.handler.count = 20\times\log_e^{Cluster Size} dfs.namenode.handler.count=20×logeClusterSize,比如集群规模(DataNode台数)为3台时,此参数设置为21。

(4)ZooKeeper中namenode的配置

NameNode的HA依赖于ZooKeeper,启用后在zk下会产生节点目录。因为已经开启了kerberos认证,因此在查看前应该先以服务principal登录到kdc上,然后才有权限查看到namenode的目录

kinit -kt /etc/security/keytabs/nn.service.keytab nn/hdp01.hdp.com@HDP315.COM
/usr/hdp/3.1.5.0-152/zookeeper/bin/zkCli.sh -server hdp01.hdp.com:2181,hdp02.hdp.com:2181,hdp03.hdp.com:2181
ls /hadoop-ha/hdp315nn

在这里插入图片描述

6.常用命令

因为开启了kerberos认证,所以需要先以这个principal登录,才能进行操作,否则会报错`
在这里插入图片描述

kinit -kt /etc/security/keytabs/nn.service.keytab nn/hdp01.hdp.com@HDP315.COM

(1)直接操作

mkdir:创建路径

hdfs dfs -mkdir /testhdfs

ls: 显示目录信息

hdfs dfs -ls /

③cat:显示文件内容

hdfs dfs -cat /testhdfs/test0219.txt

chmod、chown:更改权限及归属

hdfs dfs -chmod 777 /testhdfs/test0219.txt
hdfs dfs -chown hdfs:hadoop /testhdfs/test0219.txt

cp:从HDFS的一个路径拷贝到HDFS的另一个路径

hdfs dfs -cp /testhdfs/test0219.txt /testhdfs/tmp/

rm:删除文件或文件夹

hdfs dfs -rm /testhdfs/tmp/test0219.txt

mv:在HDFS目录中移动文件

hdfs dfs -mv /testhdfs/test0219.txt /testhdfs/tmp/

tail:显示一个文件的末尾1kb的数据

hdfs dfs -tail /testhdfs/tmp/test0219.txt

rm -r:递归删除目录及目录里面内容

hdfs dfs -rm -r /testhdfs/tmp/

du:统计文件夹的大小信息
第一列标示该目录下总文件大小
第二列标示该目录下所有文件在集群上的总存储大小和你的副本数相关,默认副本数是3,所以第二列的是第一列的三倍(第二列内容=文件大小*副本数)

hdfs dfs -du -s -h /testhdfs
hdfs dfs -du -s -h /testhdfs/test0219.txt

在这里插入图片描述
setrep:设置HDFS中文件的副本数量

hdfs dfs -setrep 10 /testhdfs/test0219.txt

在这里插入图片描述

(2)上传文件

moveFromLocal:把本地的文件剪切到HDFS上

hdfs dfs -moveFromLocal /home/hdfs/test0219.txt /testhdfs/

将hdfs家目录下的test0219.txt上传到HDFS根目录下的testhdfs文件夹
copyFromLocal:将本地文件复制到HDFS上

hdfs dfs -copyFromLocal /home/hdfs/test0219-1.txt /testhdfs/

put:等同于copyFromLocal,生产环境更习惯用put

hdfs dfs -put /home/hdfs/test0219-2.txt /testhdfs/

AppendToFile:将一个本地文件的内容追加到一个HDFS文件末尾

hdfs dfs -appendToFile /home/hdfs/test0219-2.txt /testhdfs/test0219-1.txt

(3)下载文件

copyToLocal:将HDFS上文件复制到本地目录上

hdfs dfs -copyToLocal /testhdfs/test0219.txt /home/hdfs/

get:等同于copyToLocal,生产环境更习惯用get

hdfs dfs -get /testhdfs/test0219.txt /home/hdfs/

7.常见错误

(1)namenode启动失败

在这里插入图片描述
查看50070端口是否被占用,如被占用则kill掉

(2)HA后namenode重启报错

启用HA后重启namenode遇到报错:

resource_management.core.exceptions.ExecutionFailed: Execution of 'ambari-sudo.sh su hdfs -l -s /bin/bash -c 'ulimit -c unlimited ;  /usr/hdp/3.1.5.0-152/hadoop/bin/hdfs --config /usr/hdp/3.1.5.0-152/hadoop/conf --daemon start namenode'' returned 1. namenode is running as process 15506.  Stop it first.

在这里插入图片描述
查看日志/var/log/hadoop/hdfs/hadoop-hdfs-namenode-hdp01.log,确认为journalnode问题
在这里插入图片描述
查看journalnode日志,发现目录没有格式化
在这里插入图片描述
查看/data01/hadoop/hdfs/journal/下文件,发现为空,需要重新格式化

hdfs namenode -initializeSharedEdits

再次启动namenode后仍报错
再次查看日志/var/log/hadoop/hdfs/hadoop-hdfs-namenode-hdp01.log,
在这里插入图片描述
说明namenode元数据发生损坏,需要恢复元数据后,才能启动namenode。恢复过程中,遇到提示有错误的时候,按c继续恢复即可

/usr/hdp/3.1.5.0-152/hadoop/bin/
hadoop namenode -recover

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/219780.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB|学习小提示

Part1一些小小小提示 1遇到问题怎么办 不要怕提问&#xff0c;谁都是新手过来的&#xff0c;matlab程序我是自学的从来也没人教过我&#xff0c;我不懂就百度解决的&#xff0c;作为初学者&#xff0c;你遇到的问题&#xff0c;其他人也大多遇到过&#xff0c;绝大多数百度可以…

avamar DD组合的备份故障

证书过期导致的失败 先是显示DD页面崩了 Avamar DD 集成 — DD 在 Avamar AUI/GUI 中显示红色解决方案路径 | Dell 中国 排查了一番 尝试了重启DD 然而并没用 然后尝试更新证书 页面确实起来了 但是证书还是更新失败 确定原因还是因为版本太低而宣告失败 证书更新失败 …

Flannel源码解析

Flannel源码解析 项目地址: https://github.com/flannel-io/flannel 更多文章访问 https://www.cyisme.top flannel中有三种工作模式: udp。 性能最低&#xff0c;利用tun/tap设备&#xff0c;通过udp封装ip包。中间需要经过多次内核态和用户态的切换。vxlan。 性能中等&…

判断一个链表是否为回文结构

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 &#x1f324;️题目结构 给定一个…

Python技术操作1-高效办公:将文本、图片和表格信息批量写入Word文档

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下Python技术操作1-高效办公:将文本、图片和表格信息批量写入Word文档。在现代办公、教育、科研等多个领域都有广泛的应用场景。本文列举一些具体的应用场景&#xff0c;并简要说明其中的原理&#xff0c;并介绍实现的…

C++入门第十一篇----多态

前言&#xff1a; 和前面的继承一样&#xff0c;多态也是对类和对象的功能进行扩展&#xff0c;以让其更加好用的一个知识点&#xff0c;接下来&#xff0c;就让我们总结一下多态&#xff0c;这个依托了继承的一个重要知识点。 对多态的理解和多态的概念&#xff1a; 何为多…

基于go文件同步工具的升级迭代

介绍 同样&#xff0c;该工具适用于多个项目不同版本的维护&#xff0c;文件更新和新增的同步(自动创建目录)&#xff0c;支持自动提交svn。 升级迭代 之前的文件同步工具&#xff0c;依赖chrome和http包&#xff0c;有时候js加载页面不太稳定&#xff0c;所以有空闲就升级迭…

Cannot find module ‘node:url‘报错处理

在运行vite搭建的项目时&#xff0c;遇到Cannot find module node:url’报错。具体错误如图所示&#xff1a; 造成以上问题的原因是node版本较低。Vite 需要 Node.js 版本 14.18&#xff0c;16。 解决方案&#xff1a; 上面是通过nvm切换高版本node。 再次执行运行命令&…

一个完整的转录组分析流程

本期的教程代码&#xff08;部分&#xff09; #!/bin/bash # # 使用fastq-dump解压sra数据 # 本数据集为双端数据 # 解压格式为fq.gz for i in SRR6929571 SRR6929572 SRR6929573 SRR6929574 SRR6929577 SRR6929578; do pfastq-dump --split-files --threads 20 --gzip -s 00_…

iview Table实现跨页勾选记忆功能以及利用ES6的Map数据结构实现根据id进行对象数组的去重

因为iview Table组件的勾选是选中当前页的所有数据,当我们切到别的页面时,会发送请求给后端,这个时候就会刷新我们之前页码已经选中的数据。现在有个需求就是,在我们选择不同页码的数据勾选中之后,实现跨页勾选记忆功能,就是说已经打钩了的数据,不管切到哪一页它都是打钩…

leetcode115.从中序与后序遍历序列构造二叉树,手把手带你构造二叉树(新手向)

构造二叉树是树问题中的难点&#xff08;相对于遍历二叉树&#xff09;&#xff0c;一开始做的读者会感觉无从下手&#xff0c;这道题在训练营专栏里讲过&#xff0c;是四道题一起讲的&#xff0c;但是现在看来讲的并不全面、具体&#xff0c;所以想单独出一期再来讲一下如何构…

友菜友饭携手分众传媒,打造私厨到家生活新风尚

友菜友饭携手分众传媒 11月29日&#xff0c;友菜友饭与分众传媒签署战略合作协议&#xff0c;在全国重点城市全面引爆品牌力&#xff0c;携手打造全国领先的互联网数字化私厨平台&#xff0c;为中国5亿城市家庭解锁私厨到家服务新体验。 友菜友饭是全国领先的私厨到家平台&…

元宇宙红色展厅VR虚拟展馆提高受训者的参与感

生活在和平年代的新一代青少年&#xff0c;可能对革命先烈英勇事迹难以有很深的体会&#xff0c;无法切实感受到中国共产党无畏牺牲、誓死保家卫国的红色精神&#xff0c;因此借助VR虚拟现实制作技术&#xff0c;让参观者们走近革命先烈中&#xff0c;感受老一辈无产阶级革命家…

三、DVP摄像头调试笔记(图片成像质量微调整,非ISP)

说明&#xff1a;当前调试仅仅用来测试和熟悉部分摄像头寄存器模式 一、图片成像方向控制&#xff0c;基本每个摄像头都会有上下左右翻转寄存器 正向图片 反向图片 二、设置成像数据成各种颜色&#xff0c;&#xff08;黑白/原彩/黄色等等&#xff09; 在寄存器书册描述中…

低代码/无代码火热的缘由

目录 一、如何解决这个问题&#xff1f; &#xff08;1&#xff09;概念 &#xff08;2&#xff09;技术与产品 二、低代码究竟有没有用&#xff1f; 1.轻松解决企业复杂业务流程 2.强大接口引擎打破数据孤岛 3.最大限度满足企业个性化需求 4.有效把握控制开发效率成本 三、结语…

Hadoop学习笔记(HDP)-Part.17 安装Spark2

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

图数据库知识点9 | 大数据框架与图数据架构异同

开门见山&#xff0c;直奔主题&#xff0c;接续前面的知识点&#xff1a; 【图数据库知识点1|图数据库与关系型数据库的区别&#xff1f;】 【图数据库知识点2 | 图思维方式】 【图数据库知识点3 | 图数据库解决了什么问题&#xff1f;】 【图数据库知识点4 | 图计算与图数…

Java基础数据类型

Java有八种基础的数据类型&#xff0c;它们被分为两个主要的类别&#xff1a;原始类型和引用类型。原始类型又被分为四类&#xff1a;整型、浮点型、字符型和布尔型。 整型&#xff08;Integral Types&#xff09;&#xff1a; 这些类型用于存储整数。它们包括&#xff1a; ○…

Python 数据清洗库详解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 数据清洗是数据处理过程中至关重要的一部分。Python拥有许多强大的库&#xff0c;用于数据清洗和预处理&#xff0c;使得数据分析人员能够有效处理、转换和清洗数据。本文将介绍几个最常用的Python库&#xff0c…

git常用命令指南

目录 一、基本命令 1、创建分支 2、切换分支 3、合并分支 4、初始化空git仓库 二、文件操作 1、创建文件 2、添加多个文件 3、查看项目的当前状态 4、修改文件 5、删除文件 6、提交项目 三、实际操作 1、创建目录 2、进入新目录 3、初始化空git仓库 4、创建文…
最新文章