14:Hadoop数据分析|节点管理|搭建NFS网关服务

news2024/11/18 21:34:34

数据分析|节点管理|搭建NFS网关服务

  • HDFS文件系统的使用
  • 调用Hadoop集群分析数据
  • Hadoop集群的维护
    • 增加修复节点
    • 删除节点
  • 搭建NFS网关服务
    • 创建账户并授权
    • 在nfsgw上运行网关服务
    • NFSGW测试

HDFS文件系统的使用

访问文件系统的两种方式:

  • web页面 能查看 能读取 不能写入
  • 命令行 能查看 能读取 能写入 /usr/local/hadoop/bin/hadoop fs -命令
# 创建文件夹
/usr/local/hadoop/bin/hadoop fs -mkdir /input
# 创建文件
/usr/local/hadoop/bin/hadoop fs -touchz /input/tfile

在这里插入图片描述

调用Hadoop集群分析数据

词频统计

[root@hadoop1 hadoop]# ./bin/hadoop fs -ls /        //查看集群文件系统的根,没有内容
[root@hadoop1 hadoop]# ./bin/hadoop fs -mkdir  /aaa        
//在集群文件系统下创建aaa目录
[root@hadoop1 hadoop]# ./bin/hadoop fs -ls /        //再次查看,有刚创建的aaa目录
Found 1 items
drwxr-xr-x   - root supergroup          0 2018-09-10 09:56 /aaa
[root@hadoop1 hadoop]#  ./bin/hadoop fs -touchz  /fa    //在集群文件系统下创建fa文件
[root@hadoop1 hadoop]# ./bin/hadoop fs -put *.txt /aaa     
//上传*.txt到集群文件系统下的aaa目录
[root@hadoop1 hadoop]#  ./bin/hadoop fs -ls /aaa    //查看
Found 3 items
-rw-r--r--   2 root supergroup      86424 2018-09-10 09:58 /aaa/LICENSE.txt
-rw-r--r--   2 root supergroup      14978 2018-09-10 09:58 /aaa/NOTICE.txt
-rw-r--r--   2 root supergroup       1366 2018-09-10 09:58 /aaa/README.txt
[root@hadoop1 hadoop]# ./bin/hadoop fs -get  /aaa  //下载集群文件系统的aaa目录
[root@hadoop1 hadoop]# ./bin/hadoop jar  \
 share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar  wordcount /aaa /bbb    //hadoop集群分析大数据,hadoop集群/aaa里的数据存到hadoop集群/bbb下
[root@hadoop1 hadoop]# ./bin/hadoop fs -cat /bbb/*        //查看集群里的数据

Hadoop集群的维护

增加修复节点

新增datanode
HDFS新增节点:

  • 启动一个新的系统,设置ssh免密码登陆
  • 在所有节点修改 /etc/hosts,增加新节点的主机信息
  • 安装java运行环境
  • 拷贝NameNode的/usr/local/hadoop到新节点
  • 同步配置文件到所有机器
    如果旧节点数据丢失,新节点可以自动回复数据 上线以后会自动恢复数据,如果数据量非常大,需要一段时间

最低配置:2CPU,2G内存,10G硬盘
虚拟机IP:192.168.1.54 newnode
增加 datanode和nodemanager
另外准备两台主机,newnode和nfsgw,作为新添加的节点和网关
在这里插入图片描述
1)增加一个新的节点newnode

[root@hadoop5 ~]# echo newnode > /etc/hostname     //更改主机名为newnode
[root@hadoop5 ~]# hostname newnode
[root@newnode ~]# yum -y install java-1.8.0-openjdk-devel
[root@newnode ~]# mkdir /var/hadoop
[root@hadoop1 .ssh]# ssh-copy-id 192.168.1.64
[root@hadoop1 .ssh]# vim /etc/hosts
192.168.1.50  hadoop1
192.168.1.51  node-0001
192.168.1.52  node-0002
192.168.1.53  node-0003
192.168.1.54  newnode
[root@hadoop1 .ssh]# scp /etc/hosts 192.168.1.54:/etc/
[root@hadoop1 ~]# cd /usr/local/hadoop/
[root@hadoop1 hadoop]# vim ./etc/hadoop/slaves
node-0001
node-0002
node-0003
newnode
[root@hadoop1 hadoop]# for i in node-{0001..0003}; do rsync -aSH --delete /usr/local/hadoop/
\ 192.168.1.$i:/usr/local/hadoop/  -e 'ssh' & done        //同步配置
[1] 1841
[2] 1842
[3] 1843
[4] 1844
[root@newnode ~]# cd /usr/local/hadoop/
[root@newnode hadoop]# ./sbin/hadoop-daemon.sh start datanode  //启动

设置同步带宽

[root@newnode hadoop]# ./bin/hdfs dfsadmin -setBalancerBandwidth 60000000
Balancer bandwidth is set to 60000000
[root@newnode hadoop]# ./sbin/start-balancer.sh

查看状态

[root@newnode hadoop]# jps
24439 Jps
24351 DataNode

删除节点

把刚刚加入集群的newnode节点从集群中删除
为了能看到三种状态,先往 HDFS 上传一些文件
记录每台主机的数据量,然后执行迁移数据

删除datanode
三种状态:Normal:正常状态 Decommissioned in Progress:数据正在迁移 Decommissioned:数据迁移完成
⚠️ 仅当状态变成 Decommissioned才能down机下线

1)删除节点

[root@hadoop1 hadoop]# vim /usr/local/hadoop/etc/hadoop/slaves        
//去掉之前添加的newnode
node-0001
node-0002
node-0003
[root@hadoop1 hadoop]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml        
//在此配置文件里面加入下面四行
<property>                                      
    <name>dfs.hosts.exclude</name>
    <value>/usr/local/hadoop/etc/hadoop/exclude</value>
</property>

[root@hadoop1 hadoop]# vim /usr/local/hadoop/etc/hadoop/exclude
newnode

2)导出数据

[root@hadoop1 hadoop]# ./bin/hdfs dfsadmin -refreshNodes
Refresh nodes successful
[root@hadoop1 hadoop]# ./bin/hdfs dfsadmin -report  
//查看newnode显示Decommissioned
Name: 192.168.1.64:50010 (newnode)
Hostname: newnode
Decommission Status : Decommissioned
Configured Capacity: 2135949312 (1.99 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 1861509120 (1.73 GB)
DFS Remaining: 274436096 (261.72 MB)
DFS Used%: 0.00%
DFS Remaining%: 12.85%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Tue Mar 05 17:17:09 CST 2019
[root@newnode hadoop]# ./sbin/hadoop-daemon.sh stop datanode    //停止datanode
stopping datanode
[root@newnode hadoop]# ./sbin/yarn-daemon.sh start nodemanager             
//yarn 增加 nodemanager
[root@newnode hadoop]# ./sbin/yarn-daemon.sh stop  nodemanager  //停止nodemanager
stopping nodemanager
[root@newnode hadoop]# ./bin/yarn node -list        
//yarn 查看节点状态,还是有newnode节点,要过一段时间才会消失
Total Nodes:4
         Node-Id         Node-State    Node-Http-Address    Number-of-Running-Containers
     node-0003:34628            RUNNING           node-0003:8042                               0
     node-0002:36300            RUNNING           node-0002:8042                               0
     newnode:42459            RUNNING           newnode:8042                               0
     node-0001:39196            RUNNING           node-0001:8042                               0

搭建NFS网关服务

NFS网关的用途

  • 用户可以通过操作系统兼容的本地NFSv3客户端来浏览HDFS文件系统
  • 用户可以通过挂载点直接流程化数据
  • 允许HDFS作为客户端文件系统的一部分被挂载
  • 支持文件附加,但是不支持随机写(nolock)
  • NFS网关目前只支持NFSv3和TCP协议(vers=3,proto=tcp)

在这里插入图片描述

创建账户并授权

在 namenode 和 nfsgw 添加用户 nfsuser
为 nfsuser 完成HDFS集群授权
最低配置:1cpu,1G内存,10G硬盘
虚拟机IP:192.168.1.55 nfsgw

1)更改主机名,配置/etc/hosts(/etc/hosts在hadoop1和nfsgw上面配置)

[root@localhost ~]# echo nfsgw > /etc/hostname 
[root@localhost ~]# hostname nfsgw
[root@hadoop1 hadoop]# vim /etc/hosts
192.168.1.50  hadoop1
192.168.1.51  node-0001
192.168.1.52  node-0002
192.168.1.53  node-0003
192.168.1.54  newnode
192.168.1.55  nfsgw

2)创建代理用户(hadoop1和nfsgw上面操作),以hadoop1为例子

[root@hadoop1 hadoop]# groupadd -g 800 nfsuser
[root@hadoop1 hadoop]# useradd -u 800 -g 800 -r -d /var/hadoop nfsuser

3)配置core-site.xml

[root@hadoop1 hadoop]# vim core-site.xml
    <property>
        <name>hadoop.proxyuser.nfsuser.groups</name> # 添加授权配置信息 nfsuser必须得跟用户组名一致
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.nfsuser.hosts</name>
        <value>*</value>
    </property>
[root@hadoop1 hadoop]# ./sbin/stop-all.sh   //停止所有服务
This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
Stopping namenodes on [hadoop1]
hadoop1: stopping namenode
node-0002: stopping datanode
newnode: no datanode to stop
node-0003: stopping datanode
node-0001: stopping datanode
Stopping secondary namenodes [hadoop1]
hadoop1: stopping secondarynamenode
stopping yarn daemons
stopping resourcemanager
node-0002: stopping nodemanager
node-0003: stopping nodemanager
newnode: no nodemanager to stop
node-0001: stopping nodemanager
...

4)同步配置到node-0001,node-0002,node-0003

[root@hadoop1 hadoop]# for i in node-{0001..0003}; do rsync -aSH --delete /usr/local/hadoop/ ${i}:/usr/local/hadoop/  -e 'ssh' & done
[4] 2722
[5] 2723
[6] 2724

5)启动集群

[root@hadoop1 hadoop]# /usr/local/hadoop/sbin/start-dfs.sh

6)查看状态

[root@hadoop1 hadoop]# /usr/local/hadoop/bin/hdfs  dfsadmin -report
...
--------------
Live datanodes (3):

在nfsgw上运行网关服务

在这里插入图片描述
1)卸载rpcbind 和 nfs-utils

[root@nfsgw ~]# yum  remove  -y  rpcbind  nfs-utils

2)安装java-1.8.0-openjdk-devel和rsync

[root@nfsgw ~]# yum -y install java-1.8.0-openjdk-devel
[root@hadoop1 hadoop]# rsync -avSH --delete \ 
/usr/local/hadoop/ 192.168.1.55:/usr/local/hadoop/  -e 'ssh'

在这里插入图片描述
3)创建数据根目录 /var/hadoop(在NFSGW主机上面操作)

[root@nfsgw ~]# mkdir /var/nfstmp
[root@nfsgw ~]# chown nfsuser:nfsuser /var/nfstmp

5)给/usr/local/hadoop/logs赋权(在NFSGW主机上面操作)

[root@nfsgw ~]# setfacl -m user:nfsuser:rwx /usr/local/hadoop/logs # 使用 setfacl 工具来设置文件访问控制列表(ACL)的命令。
[root@nfsgw ~]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
    <property>
        <name>nfs.exports.allowed.hosts</name>
        <value>* rw</value>
    </property>
    <property>
        <name>nfs.dump.dir</name>
        <value>/var/nfstmp</value>
    </property>

在这里插入图片描述
6)启动服务

[root@nfsgw ~]# /usr/local/hadoop/sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap        //portmap服务只能用root用户启动
starting portmap, logging to /usr/local/hadoop/logs/hadoop-root-portmap-nfsgw.out
[root@nfsgw ~]# jps
23714 Jps
23670 Portmap
[root@nfsgw ~]# su - nfsuser
Last login: Mon Sep 10 12:31:58 CST 2018 on pts/0
[nfsuser @nfsgw ~]$ cd /usr/local/hadoop/
[nfsuser@nfsgw hadoop]$ ./sbin/hadoop-daemon.sh  --script ./bin/hdfs start nfs3  
//nfs3只能用代理用户启动
starting nfs3, logging to /usr/local/hadoop/logs/hadoop-nfsuser-nfs3-nfsgw.out
[nfs@nfsgw hadoop]$ jps                    
1362 Jps
1309 Nfs3 
[root@nfsgw hadoop]# jps            //root用户执行可以看到portmap和nfs3
1216 Portmap
1309 Nfs3
1374 Jps

NFSGW测试

1)实现客户端挂载(客户端可以用newnode这台主机)

[root@newnode ~]# rm -rf /usr/local/hadoop
[root@newnode ~]# yum -y install nfs-utils
# mount验证
[root@newnode ~]# showmount -e 192.168.1.55
Export list for 192.168.1.55:
/*
[root@newnode ~]# mount -t nfs -o \
vers=3,proto=tcp,nolock,noatime,sync,noacl 192.168.1.55:/  /mnt/  //挂载
[root@newnode ~]# cd /mnt/
[root@newnode mnt]# ls
aaa  bbb  fa  system  tmp
[root@newnode mnt]# touch a
[root@newnode mnt]# ls
a  aaa  bbb  fa  system  tmp
[root@newnode mnt]# rm -rf a
[root@newnode mnt]# ls
aaa  bbb  fa  system  tmp

2)实现开机自动挂载

[root@newnode ~]# vim /etc/fstab
192.168.1.55:/  /mnt/ nfs  vers=3,proto=tcp,nolock,noatime,sync,noacl,_netdev 0 0 
[root@newnode ~]# mount -a
[root@newnode ~]# df -h
192.168.1.26:/   64G  6.2G   58G  10% /mnt
[root@newnode ~]# rpcinfo -p 192.168.1.55
   program vers proto   port  service
    100005    3   udp   4242  mountd
    100005    1   tcp   4242  mountd
    100000    2   udp    111  portmapper
    100000    2   tcp    111  portmapper
    100005    3   tcp   4242  mountd
    100005    2   tcp   4242  mountd
    100003    3   tcp   2049  nfs
    100005    2   udp   4242  mountd
    100005    1   udp   4242  mountd

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Swing游戏开发学习8

内容来自RyiSnow视频讲解 上一节提到的bug&#xff0c;不知道有没有人发现&#xff1f; 在播放音乐和音效的时候使用的是同一个clip对象&#xff0c;播放背景音乐在前&#xff0c;后续播放音效&#xff0c;clip对象就被覆盖了&#xff0c;因此导致调用停止播放背景音乐的时候&a…

大厂大面积裁员,计算机专业还香吗?

对比大部分专业&#xff0c;计算机专业肯定还是香的啊 近些年&#xff0c;随着计算机行业薪资的提高&#xff0c;成为了热门专业。 还有不少人通过考研转向计算机类的专业&#xff0c;足见其还是很香的。 计算机类考研需要准备的内容很多&#xff0c;其中408是必考的科目&am…

PyTorch搭建LeNet神经网络

函数的参数 1、PyTorch Tensor的通道排序 [batch, channel, height, width] batch: 要处理的一批图像的个数 channel: 通道数&#xff08;一般是R G B 三个通道&#xff09; height: 图像的高度 width: 图像的宽度 2.Conv 2d 卷积层的参数 [in_channels, out_channels, ke…

从零开始学习PX4源码2(PX4姿态误差计算)

目录 文章目录 目录摘要1.源码1.1源码路径1.2源码程序1.3源码功能 2.源码分析 摘要 本节主要记录PX4姿态误差计算过程&#xff0c;欢迎批评指正。 1.源码 1.1源码路径 PX4-Autopilot/src/modules/mc_att_control/AttitudeControl/AttitudeControl.cpp1.2源码程序 matrix::…

JetBrains TeamCity 身份验证绕过漏洞(CVE-2024-27198)

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

从零开始在kitti数据集上训练yolov5

0.准备工作 0.1 在kitti官网下载kitti数据集 KITTI官网&#xff1a;https://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark2d 只需要下载图片和标签 解压后应该有一个training和和testing文件夹&#xff0c;training文件夹下应该有一个image_2文件夹和一个…

(vue)适合后台管理系统开发的前端框架

(vue)适合后台管理系统开发的前端框架 1、D2admin 开源地址&#xff1a;https://github.com/d2-projects/d2-admin 文档地址&#xff1a;https://d2.pub/zh/doc/d2-admin/ 效果预览&#xff1a;https://d2.pub/d2-admin/preview/#/index 开源协议&#xff1a;MIT 2、vue-el…

通过Apple Configurator 2导出iOS ipa包

通过Apple Configurator 2导出iOS ipa包 安装Apple Configurator 2 从Mac AppStore安装Apple Configurator 2 下载ipa 准备工作&#xff1a; 1、 电脑已经安装了Apple Configurator 2 2、 手机已经安装了目标软件 3、 Apple 账号已经下载过目标软件 打开后连接设备&#xf…

Node.js安装及环境配置详细教程

一、下载Node.js安装包 官网下载链接[点击跳转] 建议下载LTS版本&#xff08;本教程不适用于苹果电脑&#xff09; 二 、安装Node.js 2.1 下载好安装包后双击打开安装包&#xff0c;然后点击Next 2.2 勾选同意许可后点击Next 2.3 点击Change选择好安装路径后点击Next&#…

基于springboot实现在线考试系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线考试系统演示 摘要 时代在变化&#xff0c;科技技术以无法预测的速度在达到新的高度&#xff0c;并且被应用于社会生活的各个领域&#xff0c;随着生活的加快&#xff0c;也使很多潜在的点逐渐突显出来&#xff0c;社会对于人才的要总是非常迫切的&…

Claude 3 模型发布,压力来到OpenAI这边了~

Anthropic 发布了 Claude 3 系列&#xff0c;包含了三款模型 各具特色&#xff0c;旨在为用户提供更智能、更快速、更高效的选择&#xff0c;可以说是是迄今为止最快、最强大的人工模型&#xff01; Anthropic 一度是 OpenAI 最强力的竞争对手&#xff01; 随着 Claude3 的发…

优优嗨聚集团:美团代运营服务,商家增长的新引擎

在当今数字化时代&#xff0c;线上平台已成为商家拓展业务、提升品牌影响力的重要渠道。美团作为国内领先的本地生活服务平台&#xff0c;拥有庞大的用户群体和丰富的商业资源。然而&#xff0c;对于许多商家而言&#xff0c;如何在美团平台上进行有效运营&#xff0c;实现业务…

java核心面试题汇总

文章目录 1. Java1.1. TCP三次握手/四次挥手1.2 HashMap底层原理1.3 Java常见IO模型1.4 线程与线程池工作原理1.5 讲一讲ThreadLocal、Synchronized、volatile底层原理1.6 了解AQS底层原理吗 2. MySQL2.1 MySQL索引为何不采用红黑树&#xff0c;而选择B树2.2 MySQL索引为何不采…

【中国电信】光猫 PT632 使用超管权限修改 IP 地址租期时间

背景 由于光猫默认设置的动态 IP 租期是 24 小时&#xff0c;所以每天都会断网一次&#xff0c;严重影响用网体验&#xff0c;所以打算通过修改动态 IP 租期为 一周&#xff08;最长就一周&#xff0c;没有永久的选项&#xff09;来改善。 需求 一台电脑&#xff08;已开启 …

Git保姆级使用教程

一、版本控制 1.1 团队开发问题 企业项目一般以团队形式实施开发&#xff0c;那团队开发中会出现哪些问题呢&#xff1f; 小明负责的模块就要完成了&#xff0c;就在即将Release之前的一瞬间&#xff0c;电脑突然蓝屏&#xff0c;硬盘光荣牺牲&#xff01;几个月来的努力付之…

【OBS】obs-websocket实战技巧,让你更快的了解OBS

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 修改OBS-web源码2️⃣ 常用api汇总获取输入源类型列表获取输入源列表获取属性列表打开输入源属性设置框获取设置输入源静音状态获取特殊输入源设置&#xff08;全局音频设备&#xff09;打开输入源属性设置框 &#x1f6ec; 文章小…

vue3 ts setup 组合式API 使用教程

vue3中新增了组合式API&#xff0c;本文讲解组合式API setup 的使用 关于setup 的出现和 vue3 js setup 的使用&#xff0c;笔者已经在2022年的文章中说明&#xff0c;这里不再赘述&#xff0c;需要的朋友可以阅读&#xff1a;《vue3 setup 使用教程》 官网文档&#xff1a;h…

MobaXterm无法上传整个文件夹,只能上传的单个文件

问题描述&#xff1a; 本来想使用MobaXterm上传.vscode文件夹上传到服务器&#xff0c;但是选择文件夹打开后只能选择文件夹下面的子文件无法上传整个文件。 解决方案&#xff1a; 1、简单暴力 2、压缩后解压

8个优秀的CSS实践,开发web应用

HTML面试题部分 1.H5的新特性有哪些 2.Label的作用是什么&#xff1f;是怎么用的&#xff1f; 3.HTML5的form如何关闭自动完成功能 4.dom如何实现浏览器内多个标签页之间的通信? 5.实现不使用 border 画出1px高的线&#xff0c;在不同浏览器的标准模式与怪异模式下都 能保持一…

STM32FreeRTOS-事件组1(STM32Cube高效开发教程)

文章目录 一、事件组的原理和功能1、事件组与队列信号量特点2、事件组存储结构3、事件组运行原理 二、事件组部分函数1、xEventGroupCreate()创建事件组函数2、xEventGroupSetBits&#xff08;&#xff09;事件组置位函数3、xEventGroupSetBitsFromISR&#xff08;&#xff09;…