2023.11.8 hadoop学习-概述,hdfs dfs的shell命令

news2024/11/25 19:18:32

目录

1.分布式和集群

 2.Hadoop框架

3.版本更新

4.hadoop架构详解

5.页面访问端口

6.Hadoop-HDFS

HDFS架构 

HDFS副本

7.SHELL命令

 

 8.启动hive服务


1.分布式和集群

  • 分布式: 多台服务器协同配合完成同一个大任务(每个服务器都只完成大任务拆分出来的单独1个子任务)
  • 集 群: 多台服务器联合起来独立做相同的任务(多个服务器分担客户端发来的请求)
  • 注意: 集群如果客户端请求量(任务量)多,多个服务器同时处理不同请求(不同任务),如果请求量少,一台服务器干活,其他服务器做备份使用

 2.Hadoop框架

  • Hadoop简介:是Apache旗下的一个用Java语言实现开源软件框架,是一个存储和计算大规模数据的软件平台。
  • Hadoop起源: Doug Cutting 创建的,最早起源一个Nutch项目。
  • 三驾马车:  谷歌的三遍论文加速了hadoop的研发
  • Hadoop框架意义: 作为大数据解决方案,越来越多的企业将Hadoop 技术作为进入大数据领域的必备技术。
  • 狭义上来说:Hadoop指Apache这款开源框架,它的核心组件有:HDFS,MR,YANR
  • 广义上来说:Hadoop通常是指一个更广泛的概念——Hadoop生态圈
  • Hadoop发行版本: 分为开源社区版和商业版。
  • 开源社区版:指由Apache软件基金会维护的版本,是官方维护的版本体系,版本丰富,兼容性稍差。
  • 商业版:指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,如: cloudera的CDH等。

3.版本更新

1.x版本系列: hadoop的第二代开源版本,该版本基本已被淘汰        hadoop组成:  HDFS(存储)和MapReduce(计算和资源调度)

2.x版本系列: 架构产生重大变化,引入了Yarn平台等许多新特性       hadoop组成:  HDFS(存储)和MapReduce(计算)和YARN(资源调度)

3.x版本系列: 因为2版本的jdk1.7不更新,基于jdk1.8升级产生3版本   hadoop组成:  HDFS(存储)和MapReduce(计算)和YARN(资源调度)

4.hadoop架构详解

当前版本hadoop组成: HDFS , MapReduce ,YARN

HDFS:(分布式文件系统),解决海量数据存储
    元数据: 描述核心数据的数据
    NameNode:集群当中的主节点,主要用于管理集群当中的各种数据
    SecondaryNameNode:主要能用于辅助NameNode进行文件块元数据存储
    DataNode:集群当中的从节点,主要用于存储真实的海量的业务数据


YARN:(作业调度和集群资源管理的框架),解决资源任务调度
    ResourceManager: 接收用户的计算请求任务,并负责集群的资源管理和分配
    NodeManager: 负责执行主节点分配的任务(给MR的计算程序提供资源)


MapReduce:(分布式运算编程框架),解决海量数据计算
    如何计算: 核心思想就是分而治之   Map负责分解,Reduce负责合并
    MR程序: 使用java/python然后去编写MR程序,成本高           如何解决?  在hive平台上编写sql,执行sql底层自动转为MR程序
    
MapReduce计算需要的数据和产生的结果需要HDFS来进行存储
MapReduce的运行需要由Yarn集群来提供资源调度。

5.页面访问端口

HDFS:9870

YARN:8088

jobhistory:19888

6.Hadoop-HDFS

HDFS存储大文件,把大文件默认切割成128M大小的block块,进行存储
HDFS存储块的时候,会给每个块进行备份(一共三份)
HDFS文件系统可存储超大文件,时效性稍差。
HDFS具有硬件故障检测和自动快速恢复功能。
HDFS为数据存储提供很强的扩展能力。
HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改。
HDFS可在普通廉价的机器上运行。

HDFS架构 

1、Client
    发请求就是客户端。
    文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储
    与 NameNode 交互,获取文件的位置信息。
    与 DataNode 交互,读取或者写入数据。
    Client 提供一些命令来管理 和访问HDFS,比如启动或者关闭HDFS。
2、NameNode
    就是 master,它是一个主管、管理者。
    处理客户端读写请求。
    管理 HDFS 元数据(文件路径,文件的大小,文件的名字,文件权限,文件切割后的块(block)信息…)。
    配置3副本备份策略。
3、DataNode
    就是Slave。NameNode 下达命令,DataNode 执行实际的操作。
    存储实际的数据块(block)。
    执行数据块的读/写操作。
    定时向namenode汇报block信息。
4、Secondary NameNode
    并非 NameNode 的备份节点。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。
    只是辅助 NameNode,对HDFS元数据进行合并,合并后再交给NameNode。
    在紧急情况下,可辅助恢复 NameNode 部分数据。

HDFS副本

block块: HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件。它将每个文件拆分成一系列的数据块进行存储,这个数据块被称为block,除了最后一个,所有的数据块都是同样大小的。

block 块大小默认: 128M(134217728字节)

注意: 为了容错,文件的所有block都会有副本。每个文件的数据块大小和副本系数都是可配置的。
    
副本系数默认:  3个

hdfs默认文件: https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

7.SHELL命令

hdfs的shell命令概念: 安装好hadoop环境之后,可以执行类似于Linux的shell命令对文件的操作,如ls、mkdir、rm等,对hdfs文件系统进行操作查看,创建,删除等。

hdfs的shell命令格式1: hadoop fs -命令 参数
hdfs的shell命令格式2: hdfs dfs -命令 参数

hdfs的家目录默认: /user/root   如果在使用命令操作的时候没有加根目录/,默认访问的是此家目录/user/root

查看目录下内容:  hdfs dfs -ls 目录的绝对路径
创建目录: hdfs dfs -mkdir 目录的绝对路径
创建文件: hdfs dfs -touch 文件的绝对路径
移动目录/文件: hdfs dfs -mv 要移动的目录或者文件的绝对路径  目标位置绝对路径
复制目录/文件: hdfs dfs -cp 要复制的目录或者文件的绝对路径  目标位置绝对路径
删除目录/文件: hdfs dfs -rm [-r] 要删除的目录或者文件的绝对路径
查看文件的内容: hdfs dfs -cat 要查看的文件的绝对路径          注意: 除了cat还有head,tail也能查看
查看hdfs其他shell命令帮助: hdfs dfs --help
注意: hdfs有相对路径,如果操作目录或者文件的时候没有以根目录/开头,就是相对路径,默认操作的是/user/root

把本地文件内容追加到hdfs指定文件中: hdfs dfs -appendToFile 本地文件路径 hdfs文件绝对路径

注意: window中使用页面可以完成window本地和hdfs的上传下载,当然linux中使用命令也可以完成文件的上传和下载
linux本地上传文件到hdfs中: hdfs dfs -put linux本地要上传的目录或者文件路径  hdfs中目标位置绝对路径
hdfs中下载文件到liunx本地: hdfs dfs -get hdfs中要下载的目录或者文件的绝对路径 linux本地目标位置路径 

 8.启动hive服务

后台启动metastore服务: nohup hive --service metastore &
后台启动hiveserver2服务: nohup hive --service hiveserver2 &
查看metastore和hiveserver2进程是否启动: jps                   注意: 服务名都叫RunJar,可以通过进程编号区分
服务启动需要一定时间可以使用lsof查看: lsof -i:10000              注意: 如果无内容继续等待,如果有内容代表启动成功

[root@node1 bin]# nohup hive --service metastore &
[1] 13490
nohup: 忽略输入并把输出追加到"nohup.out" 
回车

[root@node1 bin]# nohup hive --service hiveserver2 &
[2] 13632
nohup: 忽略输入并把输出追加到"nohup.out" 
回车


[root@node1 bin]# jps
...
13490 RunJar
13632 RunJar


[root@node1 bin]# 
# 注意:10000端口号一般需要等待3分钟左右才会查询到
[root@node1 bin]# lsof -i:10000
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    18804 root  520u  IPv6 266172      0t0  TCP *:ndmp (LISTEN)
# 此处代表hive启动成功

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

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

相关文章

Java jdbc连接Oracle时出现ORA-28040: No matching authentication protocol报错

一、问题描述 升级了oracle数据库版本后,同时也更新了oracle的驱动为ojdbc8.jar,Java重新通过jdbc连接Oracle时出现ORA-28040: No matching authentication protocol报错。 完整报错信息 java.sql.SQLException: ORA-28040: No matching authenticati…

重庆市5米数字高程(DEM)数据

重庆位于中国西南部、长江上游地区,地跨东经10511~11011、北纬2810~3213之间的青藏高原与长江中下游平原的过渡地带。东邻湖北、湖南,南靠贵州,西接四川,北连陕西;辖区东西长470千米,南北宽450千米&#xf…

uni-app——項目day01

配置uni-app開發環境 uni-app快速上手 | uni-app官网 创建项目 图中四个划线就是要配置的地方. 选择vue2还是vue3看个人选择。 目录结构 但是现在新版本创建的项目已经没有components目录了,需要自己创建。 项目运行到微信开发者工具 使用git管理项目 node-mod…

C++初阶(十)模板初阶

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、泛型编程1、如何实现一个通用的交换函数呢?2、引出模板 二、函数模板1、函数模…

蓝桥杯之模拟与枚举day1

Question1卡片(C/CA组第一题) 这个是一道简单的模拟枚举题目&#xff0c;只要把对应每次的i的各个位都提取出来&#xff0c;然后对应的卡片数目减去1即可。属于打卡题目。注意for循环的特殊使用即可 #include <iostream> using namespace std; bool solve(int a[],int n…

Android逆向fiddler抓包工具——理解HTTP协议

HTTP协议格式 HTTP协议是一种应用非常广泛的应用层协议&#xff0c;当我们在浏览器中输入一个URL(“网址”)时&#xff0c;浏览器就会给客户端发送一个HTTP请求&#xff0c;服务器收到请求之后&#xff0c;就会返回一个HTTP响应。 为了能够看到HTTP请求和响应的详细内容&…

SQL触发器

触发器是与表有关的数据库对象。 在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发 器中定义的SQL语句集合。 触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。 使用别名OLD和NEW来引用触发器中发生变化的…

linux系统中查看防火墙开放的端口状态 开放端口和禁用端口号操作命令

一、查看防火墙状态 查看防火墙状态&#xff1a;systemctl status firewalld 开启防火墙&#xff1a;systemctl start firewalld 关闭防火墙&#xff1a;systemctl stop firewalld 若遇到无法开启 先用&#xff1a;systemctl unmask firewalld.service 然后&#xff1a;s…

1.3数据结构之复杂度 力扣题目移除元素

移除元素首先我们可能会想到内存的释放&#xff0c;但是内存的释放是一次性的&#xff0c;不能断断续续&#xff0c;所以不能直接free掉。 思路1&#xff1a;时间复杂度是&#xff1a;O(n) 空间复杂度是&#xff1a;O(n) 思路2&#xff1a;时间复杂度&#xff1a;O(n) 空间复…

TortoiseSVN 状态图标不显示的两种解决办法

文章目录 TortoiseSVN 方式解决注册表方式解决 TortoiseSVN 方式解决 在桌面或者资源管理器中鼠标右键打开 TortoiseSVN 设置选择 Icon Overlays (图标覆盖)Status cache&#xff08;状态缓存&#xff09; 选择 ‘Shell’ 选择 Icon Overlays&#xff08;图标覆盖&#xff09;…

在软件测试过程中如何有效的开展接口自动化测试!

一.简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中&#xff0c;通过对接口的自动化测试来提高测试效率和测试质量&#xff0c;减少人工测试的工作量和测试成本&#xff0c;并且能够快速发现和修复接口错误&…

ARMday04(开发版简介、LED点灯)

开发版简介 开发板为stm32MP157AAA,附加一个拓展版 硬件相关基础知识 PCB PCB&#xff08; Printed Circuit Board&#xff09;&#xff0c;中文名称为印制电路板&#xff0c;又称印刷线路板&#xff0c;是重要的电子部件&#xff0c;是电子元器件的支撑体&#xff0c;是电子…

JVM虚拟机-虚拟机性能监控、故障处理工具

1基础故障处理工具 jps&#xff08;JVM Process Status Tool&#xff09;是&#xff1a;虚拟机进程状况工具 作用&#xff1a;可以列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执行主类&#xff08;Main Class&#xff0c;main()函数所在的类&#xff09;名称以及这些进…

人工智能数学基础3:用Python 编程求极限

求极限&#xff0c;并用Python 编程求极限 使用洛必达法则来求解 利用泰勒展开的方法来求解这个极限 import sympyx sympy.Symbol(x) f (sympy.sin(x) - x * sympy.cos(x)) / (sympy.sin(x) ** 3)limit_value sympy.limit(f, x, 0) print(limit_value)

【QT】qt打包程序后无法正常启动

本人在自己电脑上打包Qt程序后可以正常运行&#xff0c;但换了个电脑就无法运行了&#xff0c;显示应用程序无法正常启动&#xff08;0xc000007b&#xff09;。 造成这种情况的原因是因为系统变量的原因&#xff0c;我用的win10自带的cmd。 应该采用Qt自带的cmd&#xff0c;打开…

人工智能基础——python:Pandas与数据处理

人工智能的学习之路非常漫长&#xff0c;不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心&#xff0c;我为大家整理了一份600多G的学习资源&#xff0c;基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

四入进博会,优衣库围绕科技可持续演绎“服装进化论”

11月5日&#xff0c;第六届中国国际进口博览会在上海拉开帷幕。这些年来&#xff0c;进博巨大的平台效应&#xff0c;使其成为各个行业头部品牌的秀场&#xff0c;也持续为消费者、产业链带来惊喜。 今年&#xff0c;也是全球服装界科技知名品牌——优衣库的第四次进博之旅。从…

OpenCV校准棋盘集合

棋盘格可以与相机校准工具一起使用&#xff0c;例如ROS的camera_calibration包。您可以通过单击下面的任何链接免费下载 PDF 格式的各种棋盘&#xff0c;没有水印或广告。此外&#xff0c;还添加了基于 JavaScript 的棋盘生成器&#xff0c;允许您生成自定义尺寸。 提示&#…

《持续交付:发布可靠软件的系统方法》- 读书笔记(十三)

持续交付&#xff1a;发布可靠软件的系统方法&#xff08;十三&#xff09; 第 13 章 组件和依赖管理13.1 引言13.2 保持应用程序可发布13.2.1 将新功能隐蔽起来&#xff0c;直到它完成为止13.2.2 所有修改都是增量式的13.2.3 通过抽象来模拟分支 13.3 依赖13.3.1 依赖地狱13.3…

AlphaControls控件TsRadioGroup的使用

通常使用AlphaControls控件中的TsRadioGroup时&#xff0c;往往使用默认值&#xff0c;会造成TsRadioGroup标题被TsRadioGroup的ITEMs占用&#xff0c;严重影响美观&#xff1a; 解决方案&#xff0c;通过对TsRadioGroup的ContentVOffset属性&#xff0c;设置为10。即可立即改善…