HDFS

hive内部表、外部表

强颜欢笑 提交于 2020-04-06 12:44:03
hive内部表、外部表区别自不用说,可实际用的时候还是要小心。 Hive的数据分为表数据和元数据,表数据是Hive中表格(table)具有的数据;而元数据是用来 存储 表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。下面分别来介绍。    一、Hive的数据存储   在 让你真正明白什么是hive 博文中我们提到Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中。Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。所以往Hive表里面导入数据只是简单的将数据移动到表所在的目录中(如果数据是在HDFS上;但如果数据是在本地文件系统中,那么是将数据复制到表所在的目录中)。   Hive中主要包含以下几种数据模型:Table(表),External Table(外部表),Partition(分区),Bucket(桶)(本博客会专门写几篇博文来介绍分区和桶)。   1、表:Hive中的表和关系型 数据库 中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表的数据,这个目录可以通过${HIVE_HOME}/conf/hive-site.xml配置文件中的hive.metastore.warehouse.dir属性来配置

HBase中的备份和故障恢复方法

不打扰是莪最后的温柔 提交于 2020-04-06 12:43:19
本文将对Apache HBase可用的数据备份机制和大量数据的故障恢复/容灾机制做简要介绍。 随着HBase在重要的商业系统中应用的大量添加,很多企业须要通过对它们的HBase集群建立健壮的备份和故障恢复(backup and disaster recovery, BDR)机制来保证它们的企业(数据)资产。 HBase和Apache Hadoop系统提供了很多内置的机制,能够高速而轻松的完毕PB级数据的备份和恢复工作。 在这篇文章中,你将会对在HBase中可用的数据备份机制有一个高层次的简要了解,而且知道多种数据恢复/容灾机制。在阅读了这篇文章之后,你应该能对你的业务须要那种BDR策略有了自己的推断。 你也应该明确各种机制各自的优缺点(适用于CDH 4.3.0/HBase 0.94.6及更高版本号)。 备份 HBase是一个基于LSM树(log-structured merge-tree)的分布式数据存储系统,它使用复杂的内部机制确保数据准确性、一致性、多版本号等。因此。你怎样获取数十个region server在HDFS和内存中的存储的众多HFile文件、WALs(Write-Ahead-Logs)的一致的数据备份? 让我们从最小的破坏性,最小的数据占用空间,最小的性能要求机制和工作方式到最具破坏性的逐一讲述: Snapshots Replication Export

hive表与外部表的区别

╄→гoц情女王★ 提交于 2020-04-06 12:42:54
相信很多用户都用过关系型数据库,我们可以在关系型数据库里面创建表(create table),这里要讨论的表和关系型数据库中的表在概念上很类似。我们可以用下面的语句在Hive里面创建一个表: hive> create table wyp(id int, > name string, > age int, > tele string) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY '\t' > STORED AS TEXTFILE; OK Time taken: 0.759 seconds 复制代码 这样我们就在Hive里面创建了一张普通的表,现在我们给这个表导入数据: hive> load data local inpath '/home/wyp/data/wyp.txt' into table wyp; Copying data from file:/home/wyp/data/wyp.txt Copying file: file:/home/hdfs/wyp.txt Loading data to table default.wyp Table default.wyp stats: [num_partitions: 0, num_files: 1, num_rows: 0, total_size: 67, raw_data_size

hive内部表与外部表区别

时光毁灭记忆、已成空白 提交于 2020-04-06 12:42:37
1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表的区别是什么? 4.删除表的时候,内部表与外部表有什么区别? 5.load data local inpath '/home/wyp/data/wyp.txt' into table wyp;的过程是什么样子的? 6.磁盘,hdfs,hive表他们之间的过程是什么样子的?   相信很多用户都用过关系型数据库,我们可以在关系型数据库里面创建表(create table),这里要讨论的表和关系型数据库中的表在概念上很类似。我们可以用下面的语句在Hive里面创建一个表: hive> create table wyp(id int, > name string, > age int, > tele string) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY '\t' > STORED AS TEXTFILE; OK Time taken: 0.759 seconds 复制代码 这样我们就在Hive里面创建了一张普通的表,现在我们给这个表导入数据: hive> load data local inpath '/home/wyp/data/wyp.txt' into table wyp; Copying data from file:/home

hbase_存储模型

孤人 提交于 2020-04-06 12:40:44
Hbase 是按列存储,所以每个列族存储在一个HDFS文件上。 Hbase表中的行是按照rowkey字典序进行排列的,并且表格在行的方向上被分割为多个region(按照行进行分割的) region 是hbase中分布存储和负载均衡的最小单元(不是存储的最小单元),不同region分布到不同regionserver上。 region有一个或多个store组成,每个store保存一个columns family列族。 每个store又由一个memstore和0到多个storefile组成 memstore存储在内存中,storefile存储在HDFS上 Hbase高速实现数据存储和访问源于hbase数据存储: 连接Zookeeper,从Zookeeper中找要读的数据。需要知道表中rowkey在region中的位置 客户端查找HRegionServer,HRegionServer管理众多Region HMaster也需要连接Zookeeper,链接的作用是:HMaster需要知道哪些HRegionServer是活动的及HRegionServer所在的位置,然后管理HRegionServer Hbase内部把数据写到HDFS上,DFS有客户端 Region中包含HLog,Store, 若一张表有几个列族,就有几个Store。Store中有多个Memstore及storefile

五分钟学后端技术:一篇文章教你读懂大数据技术栈!

青春壹個敷衍的年華 提交于 2020-04-06 08:22:52
作者:网易云 链接: https://www.zhihu.com/question/27696290/answer/381993207 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 什么是大数据 近几年,市场上出现了很多和大数据相关的岗位,不管是数据分析、数据挖掘,或者是数据研发,都是围绕着大数据来做事情,那么,到底什么是大数据,就是我们每一个要学习大数据技术的朋友要了解的事情了,根据百度百科的介绍 大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 [1] 中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。 [2] 思维导图 大数据方面核心技术有哪些? 大数据的概念比较抽象,而大数据技术栈的庞大程度将让你叹为观止。 大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、NoSQL数据库、数据仓库、机器学习、并行计算

项目讲解1

落爺英雄遲暮 提交于 2020-04-06 08:01:44
1.数据采集到hadoop中; 2.数据在采集过程中,一部分丢给hdfs,一部分丢该实时的处理系统(kafka) kafka严格上说并不是消息队列,消息队列是符合 gms 规范的,有先后顺序的,kafka不保证顺序,严格意义上说kafka是一个分布式的消息缓存,队列是取一个少一个,而缓存是一直存在的 为什么要放到kafka呢,因为要对数据进行实时处理,会接一个storm,实时流式计算系统,hadoop是离线系统 把数据抽取出来想要的字段,例如上网时间,电话号码,上网的流量,请求的url等,然后存储到Hbase中 Hbase与HDFS有什么区别? Hbase会根据每一行的主键(rowkey)的字典顺序将数据进行排序,因此只要把行键设计的好,就可以提高查询效率 大量的数据在Hbase存储,在mysql、cracle要就存满了,为什么在Hbase可以存储下? Hbase天生就是分布式实现的,mysql是靠人为取分库分表,而Hbase对用户呈现就是一张表,但是这张表本质上的分布在多个服务器上管理的,这样的好处就是这个表可以无限的扩容,像细胞一样分裂表,存储变大后就会分裂出其他表。对用户来说是透明的扩容 Hbase有一个主服务器Master,从服务器管理分,一般从服务器和datanode放在一起 Hbase的业务需求比较简单 获取基站数据 把基站信信息放到hafka中

flink业务使用记录

让人想犯罪 __ 提交于 2020-04-06 05:07:40
flink业务使用记录 部署好flink集群,我的模式是flink on yarn 新建flink处理逻辑代码模块 将该模块打成可执行的jar放到整个项目中 在flink客户端执行提交作业操作 在flink管理页面上查看业务详情。 Flink窗口函数(Window Functions) 定义完窗口分配器后,我们还需要为每一个窗口指定我们需要执行的计算,这是窗口的责任,当系统决定一个窗口已经准备好执行之后,这个窗口函数将被用来处理窗口中的每一个元素(可能是分组的)。 请参考: https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/windows.html#triggers 来了解当一个窗口准备好之后,Flink是如何决定的。   window函数可以是 ReduceFunction , FoldFunction 或者 WindowFunction 中的一个。前面两个更高效一些(),因为在每个窗口中增量地对每一个到达的元素执行聚合操作。一个 WindowFunction 可以获取一个窗口中的所有元素的一个迭代以及哪个元素属于哪个窗口的额外元信息。   有 WindowFunction 的窗口化操作会比其他的操作效率要差一些,因为Flink内部在调用函数之前会将窗口中的所有元素都缓存起来。这个可以通过

Java中的异常处理:何时抛出异常,何时捕获异常

大兔子大兔子 提交于 2020-04-05 22:09:36
今天在看hadoop源码时,想想自己最近在做的那个系统,发现很多异常处理的方式不对,还是按照传统的异常处理方式(即:采用返回值来标识程序出现的异常情况)。而hadoop中很多方法的声明是有异常抛出的,而我的系统中的很多方法的声明都没有抛出异常。只是判断了异常情况,并输出了错误提示,但是并没有抛出异常。 org.apache.hadoop.hdfs.protocol包下的Block类的readFields()方法: public void readFields(DataInput in) throws IOException { this .blockId = in.readLong(); this .numBytes = in.readLong(); this .generationStamp = in.readLong(); if (numBytes < 0 ) { throw new IOException("Unexpected block size: " + numBytes); // 抛出异常,要是的话就不会抛出,而只是System.out.println错误提示, } 1.如果方法声明名里面有throws异常,那么方法体里面可以不抛出异常。因为可以在方法声明中包含异常说明,但实际上却不抛出!这样做的好处是,为异常先占个位置,以后就可以抛出这种异常而不用修改修改已有的代码

Hadoop伪分布式安装

◇◆丶佛笑我妖孽 提交于 2020-04-05 21:08:39
1.安装jdk Linux下安装jdk-7u67-linux-x64.rpm 2.免密登录 ssl免密登录(centos6) 3.同步时间:date -s "2020-04-05 12:00:00" 4.配置Hadoop   在 Hadoop伪分布式安装 的基础上修改配置   4.1.在 Hadoop伪分布式安装 里面已经修改了Hadoop的环境变量,现在修改node1的core-site.xml     cd /opt/sxt/hadoop-2.6.5/etc/hadoop     vi core-site.xml     修改为:       <property>       <name>hadoop.tmp.dir</name>       <value>/var/sxt/hadoop/full</value>     </property>     把数据路劲/var/sxt/hadoop/pseudo改成/var/sxt/hadoop/full   4.2.修改node1的hdfs-site.xml     vi hdfs-site.xml     修改为:     <property>       <name>dfs.replication</name>       <value>2</value> # 现在有3个从节点,所以副本数可以设置为3