1. HBase简介
1.1 什么是HBase
HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。
HBASE是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable使用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBASE同样利用Hadoop MapReduce来处理HBASE中的海量数据;Google Bigtable利用Chubby作为协同服务,HBASE利用Zookeeper作为协同服务。
1.2 与传统数据库的对比
1、传统数据库遇到的问题:
1)数据量很大的时候无法存储; 2)没有很好的备份机制; 3)数据达到一定数量开始缓慢,很大的话基本无法支撑;
2、HBASE优势:
1)线性扩展,随着数据量增多可以通过节点扩展进行支撑; 2)数据存储在hdfs上,备份机制健全; 3)通过zookeeper协调查找数据,访问速度快。
1.3 HBase集群中的角色
1、一个或者多个主节点,Hmaster;
2、多个从节点,HregionServer;
3、HBase依赖项,zookeeper;
2. HBase数据模型
2.1 HBase的存储机制
HBase是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列 。后续列的值连续存储在磁盘上。表中的每个单元格值都具有时间戳。总之,在一个HBase:
表是行的集合。
行是列族的集合。
列族是列的集合。
列是键值对的集合。
这里的列式存储或者说面向列,其实说的是列族存储,HBase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。
HBase 和 RDBMS的比较
RDBMS的表:
HBase的表:
2.2 Row Key 行键
与nosql数据库一样,row key是用来表示唯一一行记录的主键 ,HBase的数据时按照RowKey的字典顺序 进行全局排序的,所有的查询都只能依赖于这一个排序维度。访问HBASE table中的行,只有三种方式:
1. 通过单个row key访问;
2. 通过row key的range(正则)
3. 全表扫描
Row key 行键(Row key)可以是任意字符串(最大长度是64KB,实际应用中长度一般为10-1000bytes),在HBASE内部,row key保存为字节数组。存储时,数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)
2.3 Columns Family 列族
列簇:HBASE表中的每个列,都归属于某个列族。列族是表的schema的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如courses:history,courses:math 都属于courses这个列族。
2.4 Cell
由{row key,columnFamily,version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存储。
关键字:无类型、字节码
2.5 Time Stamp 时间戳
HBASE中通过rowkey和columns确定的为一个存储单元称为cell。每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位整型。时间戳可以由HBASE(在数据写入时自动)赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显示赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。
为了避免数据存在过多版本造成的管理(包括存储和索引)负担,HBASE提供了两种数据版本回收方式。一是保存数据的最后n个版本,而是保存最近一段时间内的版本(比如最近7天)。用户可以针对每个列族进行设置。
3. HBase原理
HBase系统架构体系图
组成部件说明:
Client:
使用HBase RPC机制与HMaster和HRegionServer进行通信 Client与HMaster进行管理类操作 Client与HRegionServer进行数据读写类操作
Zookeeper:
Zookeeper Quorum存储-ROOT-表地址、HMaster地址 HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况 Zookeeper避免HMaster单点问题
Zookeeper的主要作用:客户端首先联系ZooKeeper子集群(quorum)(一个由ZooKeeper节点组成的单独集群)查找行健。上述过程是通过ZooKeeper获取含有-ROOT-的region服务器名(主机名)来完成的。通过含有-ROOT-的region服务器可以查询到含有.META.表中对应的region服务器名,其中包含请求的行健信息。这两处的主要内容都被缓存下来了,并且都只查询一次。最终,通过查询.META服务器来获取客户端查询的行健数据所在region的服务器名。一旦知道了数据的实际位置,即region的位置,HBase会缓存这次查询的信息,同时直接联系管理实际数据的HRegionServer。所以,之后客户端可以通过缓存信息很好地定位所需的数据位置,而不用再次查找.META.表。
HMaster:
HMaster没有单点问题,HBase可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行 主要负责Table和Region的管理工作: 1. 管理用户对表的增删改查操作 2. 管理HRegionServer的负载均衡,调整Region分布 3. Region Split后,负责新Region的分布 4. 在HRegionServer停机后,负责失效HRegionServer上Region迁移
HRegionServer:
HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写
HRegionServer管理一系列HRegion对象; 每个HRegion对应Table中一个Region,HRegion由多个HStore组成; 每个HStore对应Table中一个Column Family的存储; Column Family就是一个集中的存储单元,故将具有相同IO特性的Column放在一个Column Family会更高效。
可以看到,client访问hbase上的数据并不需要master参与(寻址访问zookeeper和region server,数据读写访问region server),master仅仅维护table和region的元数据信息(table的元数据信息保存在zookeeper上),负载很低。HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列族创建一个Store实例,每个Store都会有一个MemStore和0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile,HFile就是实际的存储文件。因此,一个HRegion(表)有多少个列族就有多少个Store。一个HRegionServer会有多个HRegion和一个HLog。
HRegion:
table在行的方向上分隔为多个Region。Region是HBase中分布式存储和负载均衡的最小单元,即不同的region可以分别在不同的Region Server上,但同一个Region是不会拆分到多个server上。
Region按大小分隔,每个表一般是只有一个region。随着数据不断插入表,region不断增大,当region的某个列族达到一个阀值(默认256M)时就会分成两个新的region。
每个region由以下信息标识:
<表名,startRowKey,创建时间>
由目录表(-ROOT-和.META.)记录该region的endRowKey
HRegion定位:Region被分配给哪个RegionServer是完全动态的,所以需要机制来定位Region具体在哪个region server。
HBase使用三层结构来定位region:
通过zookeeper里的文件/hbase/rs得到-ROOT-表的位置。-ROOT-表只有一个region。
通过-ROOT-表查找.META.表的第一个表中相应的region的位置。其实-ROOT-表是.META.表的第一个region;.META.表中的每一个region在-ROOT-表中都是一行记录。
通过.META.表找到所要的用户表region的位置。用户表中的每个region在.META表中都是一行记录。
注意:
-ROOT-表永远不会被分隔为多个region,保证了最多需要三次跳转,就能定位到任意的region。client会将查询的位置信息缓存起来,缓存不会主动失效,因此如果client上的缓存全部失效,则需要进行6次网络来回,才能定位到正确的region,其中三次用来发现缓存失效,另外三次用来获取位置信息。
table和region的关系
table默认最初只有一个region,随着记录数的不断增加而变大,起初的region会逐渐分裂成多个region,一个region有【startKey, endKey】表示,不同的region会被master分配给相应的regionserver管理。
region是hbase分布式存储和负载均衡的最小单元,不同的region分不到不同的regionServer。
注意:region虽然是分布式存储的最小单元,但并不是存储的最小单元。region是由一个或者多个store组成的,每个store就是一个column family。每个store又由memStore和1至多个store file 组成(memstore到一个阀值会刷新,写入到storefile,有hlog来保证数据的安全性,一个regionServer有且只有一个hlog)
HStore:
HBase存储的核心。由MemStore和StoreFile组成。MemStore是Stored Memory Buffer。HLog:
引入HLog原因:在分布式系统环境中,无法避免系统出错或者宕机,一旦HRegionServer意外退出,MemStore中的内存数据就会丢失,引入HLog就是防止这种情况。
工作机制: 每个HRegionServer中都会有一个HLog对象,HLog是一个实现Write Ahead Log的类,每次用户操作写入MemStore的同时,也会写一份数据到HLog文件,HLog文件定期会滚动出新,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知,HMaster首先处理遗留的HLog文件,将不同region的log数据拆分,分别放到相应region目录下,然后再将失效的region重新分配,领取到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复。
3.1 HBase的存储格式
HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,格式主要有两种:
1. HFile,HBase中Key-Value数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile。
2. HLog File,HBase中WAL(Write Ahead Log)的存储格式,物理上是Hadoop的Sequence File
HFile
图片解释:
HFile文件不定长,长度固定的块只有两个:Trailer和FileInfo
Trailer中指针指向其他数据块的起始点
File Info中记录了文件的一些Meta信息,例如:AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY等
Data Index和Meta Index块记录了每个Data块和Meta块的起始点
Data Block是HBase I/O的基本单元,为了提高效率,HRegionServer中有基于LRU的Block Cache机制
每个Data块的大小可以在创建一个Table的时候通过参数指定,大号的Block有利于顺序Scan,小号Block利于随机查询
每个Data块除了开头的Magic以外就是一个个KeyValue对拼接而成, Magic内容就是一些随机数字,目的是防止数据损坏
HFile里面的每个KeyValue对就是一个简单的byte数组。这个byte数组里面包含了很多项,并且有固定的结构。
KeyLength和ValueLength:两个固定的长度,分别代表Key和Value的长度
Key部分:Row Length是固定长度的数值,表示RowKey的长度,Row 就是RowKey
Column Family Length是固定长度的数值,表示Family的长度
接着就是Column Family,再接着是Qualifier,然后是两个固定长度的数值,表示Time Stamp和Key Type(Put/Delete)
Value部分没有这么复杂的结构,就是纯粹的二进制数据
HLog File
HLog文件就是一个普通的Hadoop Sequence File,Sequence File 的Key是HLogKey对象,HLogKey中记录了写入数据的归属信息,除了table和region名字外,同时还包括 sequence number和timestamp,timestamp是“写入时间”,sequence number的起始值为0,或者是最近一次存入文件系统中sequence number。
HLog Sequece File的Value是HBase的KeyValue对象,即对应HFile中的KeyValue
3.2 写流程
1) Client通过Zookeeper的调度,向RegionServer发出写数据请求,在Region中写数据;
2) 数据被写入Region的MemStore,知道MemStore达到预设阀值(即MemStore满);
3) MemStore中的数据被Flush成一个StoreFile;
4) 随着StoreFile文件的不断增多,当其数量增长到一定阀值后,触发Compact合并操作,将多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除;
5) StoreFiles通过不断的Compact合并操作,逐步形成越来越大的StoreFile;
6) 单个StoreFile大小超过一定阀值后,触发Split操作,把当前Region Split成2个新的Region。父Region会下线,新Split出的2个子Region会被HMaster分配到相应的RegionServer上,使得原先1个Region的压力得以分流到2个Region上。
可以看出HBase只有增添数据,所有的更新和删除操作都是在后续的Compact历程中举行的,使得用户的写操作只要进入内存就可以立刻返回,实现了HBase I/O的高性能。
3.3 读流程
1) Client访问Zookeeper,查找-ROOT-表,获取. META. 表信息;
2) 从. META. 表查找,获取存放目标数据的Region信息,从而找到对应的RegionServer;
3) 通过RegionServer获取需要查找的数据;
4) RegionServer的内存分为MemStore和BlockCache两部分,MemStore主要用于写数据,BlockCache主要用于读数据。读请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并把读的结果放入BlockCache。
寻址过程:client—>Zookeeper—>ROOT表—>. META. 表—>RegionServer—>Region—>client
4. HBASE命令
4.1 命令的进退
1、hbase提供了一个shell的终端给用户交互
hbase shell
2、如果退出执行quit 命令
4.2 命令
名称
命令表达式
查看hbase状态
status
创建表
create '表名','列族名1','列族名2','列族名N'
查看所有表
list
描述表
describe '表名'
判断表存在
exists '表名'
判断是否禁用启用表
is_enabled '表名' is_disabled '表名'
添加记录
put '表名','rowkey','列族:列','值'
查看记录rowkey下的所有数据
get '表名','rowkey'
查看所有记录
scan '表名'
查看表中的记录总数
count '表名'
获取某个列族
get '表名','rowkey','列族:列'
获取某个列族的某个列
get '表名','rowkey','列族:列'
删除记录
delete '表名','行名','列族:列'
删除整行
deleteall '表名','rowkey'
删除一张表
先要屏蔽该表,才能对该表进行删除 第一步 disable '表名',第二步 drop '表名'
清空表
truncate '表名'
查看某个表某个列中所有数据
scan '表名',{COLUMNS=>'列族名:列名'}
更新记录
就是重新一遍,进行覆盖,hbase没有修改,都是追加
具体实例:
1、查看HBase运行状态 status
2、创建表 create
,{NAME => , VERSIONS => }
创建一个User表,并且有一个info列族
3、查看所有表 list
4、描述表详情 describe 'User'
5、判断表是否存在 exists 'User'
6、启用或禁用表 is_disabled 'User' is_enabled 'User'
7、添加记录,即插入数据,语法:put
,,,
8、根据rowKey查询某个记录,语法:get
,,[, ...]
9、查询所有记录,语法:scan
,{COLUMNS => [family:column, ...], LIMIT => num}
扫描所有记录
扫描前2条
范围查询
另外,还可以添加TIMERANGE和FILTER等高级功能,STARTROW、ENDROW必须大写,否则报错,查询结果不包含等于ENDROW的结果集。
10、统计表记录数,语法:count
, {INTERVAL => intervalNum,CACHE => cacheNum}
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度。
11、删除
删除列
删除整行
删除表中所有数据
12、禁用或启用表
禁用表
启用表
12、删除表
删除前,必须先disable
你可能感兴趣的:(大数据入门)
【大数据入门核心技术-HBase】(七)HBase Python API 操作
forest_long
大数据技术入门到21天通关 hbase 大数据 hadoop zookeeper hive
5)单元格(Cell)每一个行键、列族、列标识共同确定一个单元格,单元格的内容没有特定的数据类型,以二进制字节来存储。每个单元格保存着同一份数据的多个版本,不同时间版本的数据按照时间先后顺序排序,最新的数据排在最前面。单元格可以用元组来进行访问。6)时间戳(Timestamp)在默认情况下,每一个单元格插入数据时都会用时间戳来进行版本标识。读取单元格数据时,如果时间戳没有被指定,则默认返回最新的数
【大数据入门核心技术-Flume】(二)Flume安装部署
forest_long
大数据技术入门到21天通关 big data hadoop 大数据 hbase flume
目录一、准备工作1、基本Hadoop环境安装2、下载安装包二、安装1、解压2、修改环境变量3、修改并配置flume-env.sh文件4、验证是否安装成功一、准备工作1、基本Hadoop环境安装参考Hadoop安装【大数据入门核心技术-Hadoop】(五)Hadoop3.2.1非高可用集群搭建【大数据入门核心技术-Hadoop】(六)Hadoop3.2.1高可用集群搭建2、下载安装包官方网址:
【大数据入门核心技术-Hive】(十一)HiveSQL数据分区
forest_long
大数据技术入门到21天通关 大数据 hive hadoop 数据仓库 hdfs
目录一、分区的概念二、创建分区1)静态分区1、单分区测试2、多分区测试2)动态分区3、动态分区和静态分区混合使用三、分区的其它操作1、恢复分区2、归档分区3、交换分区四、分区数据查询1、单分区数据查询2、多分区数据查询方法1:通过union方法2:通过or一、分区的概念数据分区的概念以及存在很久了,通常使用分区来水平分散压力,将数据从物理上移到和使用最频繁的用户更近的地方,以及实现其目的。hive
【大数据入门核心技术-Hive】(十六)hive表加载csv格式数据或者json格式数据
forest_long
大数据技术入门到21天通关 大数据 hive hadoop 开发语言 后端 数据仓库
一、环境准备hive安装部署参考:【大数据入门核心技术-Hive】(三)Hive3.1.2非高可用集群搭建【大数据入门核心技术-Hive】(四)Hive3.1.2高可用集群搭建二、hive加载Json格式数据1、数据准备vistu.json[{"id":111,"name":"name111"},{"id":222,"name":"name22"}]上传到hdfshadoopfs-putstu.j
大数据入门--Flume(一)安装教程与案例
许中宝
大数据 flume 大数据
Flume(一)安装教程与案例安装教程案例监控端口数据官方案例(netcat-logger)实时监控单个追加文件(exec-hdfs)进阶版存在的问题实时监控目录下多个新文件(taildir)实时监控目录下多个新文件(spooldir-hdfs)安装教程下载安装apache-flume-1.9.0-bin.tar.gz解压配置JAVA_HOMEviconf/flume-env.sh.templat
No.2大数据入门 | 环境搭建:jdk1.8安装及环境配置
滚滚红尘_8133
上一篇文章我们安装了虚拟机以及linux操作系统,接下来就要安装在操作系统上运作的大数据核心hadoop分布式系统基础架构!Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS,Hadoop的框架最核心的设计就是:HDFS和MapReduce:HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算,因此安装完hadoop以
大数据入门-大数据技术概述(二)
水坚石青
大数据理论 大数据 spark kafka
目录大数据入门系列文章1.大数据入门-大数据是什么2.大数据入门-大数据技术概述(一)一、简介二、技术详解1.分布式协调服务:Zookeeper2.分布式资源管理器:Yarn3.计算引擎:Spark4.查询引擎:Impala5.分布式消息系统:Kafka6.日志收集系统:Flume大数据入门系列文章1.大数据入门-大数据是什么2.大数据入门-大数据技术概述(一)最近在收集整理大数据入门文章,各位盆
大数据入门--zookeeper(一)--集群搭建与常用指令
许中宝
大数据 zookeeper 大数据 zookeeper
Zookeeper单机搭建下载官方安装包#解压tar-zxvfzookeeper-3.4.5.tar.gz-C/opt/module/#配置zoo.conf,只需要将conf/zoo_sample.conf重命名为zoo.conf即可mvconf/zoo_sample.cfgconf/zoo.cfg#启动bin/zkServer.shstart#查询状态bin/zkServer.shstatus#
【大数据入门核心技术-Tez】(三)Tez与Hive整合
forest_long
大数据技术入门到21天通关 hive 大数据 hadoop hbase mapreduce
一、准备工作1、Hadoop和Hive安装【大数据入门核心技术-Hadoop】(五)Hadoop3.2.1非高可用集群搭建【大数据入门核心技术-Hadoop】(六)Hadoop3.2.1高可用集群搭建【大数据入门核心技术-Hive】(三)Hive3.1.2非高可用集群搭建【大数据入门核心技术-Hive】(四)Hive3.1.2高可用集群搭建二、Tez与Hive整合hive有三种引擎:mapredu
大数据就业方向-(工作)ETL开发
王哪跑nn
面试 大数据 etl 数据仓库 面试
上一篇文章:大数据-大数据入门第一篇|关于大数据你了解多少?-CSDN博客目录1.ETL概念2.ETL的用处3.ETL实现方式4.ETL体系结构5.什么是ETL技术?6.ETL工作流程7.ETL工程师的岗位价值8.ETL工程师进阶指南1.ETL概念ETL是英文Extract-Transform-Load的缩写,用来描述将数据从源端经过抽取(extract)、转换(transform)、加载(loa
「干货」2018你最应该学习的硬技能(零基础大数据入门)
data_ting
2017可谓是人工智能元年,在各类人工智能公司如雨后春笋般成立的今天,我们来聊一聊什么是人工智能?大数据与人工智能究竟有何关联?什么是大数据?如何赶上这个新风口?如何入门大数据呢?1.什么是人工智能?大数据与人工智能究竟有何关联?人工智能是它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学(定义来源:百度百科)归根到底人工智能是让机器去学习人类的思维方式,机器
大数据入门
Dazer007
javaweb
好记星不如烂笔头,这里记录平时工作中用到的东西,不喜可以留言。大数据大数据最早我是16年左右听到的被吹嘘的很火,但具体是什么自己很模糊。目前自己的理解是,大数据是在传统的IT项目中增加了一个部门(大数据部门),主要是处理海量的一些非结构形数据,进行分析提取有用的一点数据放回到结构性数据库中,供决策者进行决策。大数据80%的使用场景都是让没有完成交易,促使客户完成,完成变现。大数据最早是谷歌Goog
大数据 - 大数据入门第一篇 | 关于大数据你了解多少?
王哪跑nn
大数据 大数据
1.1概述大数据(BigData):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据主要解决、海量数据的采集、存储和分析计算问题。按顺序给出数据存储单位:bit,Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。1Byte=8bit1K=1024By
【大数据入门核心技术-Hadoop】(六)Hadoop3.2.1高可用集群搭建
forest_long
大数据技术入门到21天通关 hadoop 大数据 hdfs zookeeper hive
目录一、Hadoop部署的三种方式1、Standalonemode(独立模式)2、Pseudo-Distributedmode(伪分布式模式)3、Clustermode(集群模式)二、准备工作1、先完成zk高可用搭建2、/etc/hosts增加内容3、各台服务器分别创建目录4、关闭防火墙和禁用swap交换分区5、三台机器间免密6、安装jdk7、下载好hadoop安装包三、高可用配置1、配置core
大数据入门二(YARN部署)
倾白首
1.入门HDFS存储MapReduce计算SparkFlinkYarn资源作业调度伪分布式部署要求环境配置文件参数文件ssh无密码启动jps命令[hadoop@hadoop002~]$jps28288NameNodeNN27120Jps28410DataNodeDN28575SecondaryNameNodeSNN1.MapReducejobonYarn[hadoop@hadoop002hadoo
【大数据入门二——yarn和mapreduce】
墨卿风竹
连续几天夜里加餐,让我想起了新兵连的夜训,在你成为合格战士之前,你必须经历新兵连的过程,,,,其实每个行业都有一个属于它自己的新兵连,不经历此处的磨练,你难以在这个行业立足,我承认先天的资本,但我更相信后天的努力,也许有的人奋斗一生都没有达到他人的起点,我为他人荒废人生而感到可耻,为此人奋斗一生而感到幸福,我们即使渺小,我也要努力绽放,苔花如米小,也学牡丹开!————————————————前言:
Window10下安装ClickHouse详解
爱游泳的老白
数据库 clickhouse windows linux
随着互联网技术的发展,海量数据已经成为公司决策分析的重要来源,ClickHouse有着大数据入门和低学习成本(支持SQL)的优势,但基本上都是在Linux环境下安装.如果想在Windows下安装一个来学习和测试该如何操作?本文就帮你详细讲解如何在Windows10下安装和配置.在Windows10下有2中安装方式:在虚拟机里安装Linux,然后在安装ClickHouse通过Windows10的Li
大数据入门学习必读好书推荐,请收藏!
腾讯云开发者
身处于一个大数据时代,大数据无疑是近期最时髦的词汇了。不管是云计算、社交网络,还是物联网、移动互联网和智慧城市,都要与大数据搭上联系。随着云计算、移动互联网和物联网等新一代信息技术的创新和应用普及。学习大数据,除了网课,一些经典的技术书籍是非常实用且有帮助的。为了跟上技术更迭的节奏,不落人后,最好的方式是继续刷新自己的知识,同时保持上手的经验。在这行业中要取得成功,需要完美的项目经验和技能组合。尽
大数据流处理框架:Spark Streaming与Storm
成都加米谷大数据
大数据计算的第一代框架Hadoop,是致力于解决离线计算的问题而产生的,在离线批处理上性能优异,但是在实时流处理上,一直被诟病。Hadoop之后,Spark和Storm在流处理上成为对手。今天的大数据入门分享,我们就主要来讲讲,流处理框架SparkStreaming与Storm。ApacheSpark流处理Spark框架的出现,是在HadoopMapReduce基础上继承研发而来,本质上来说,还是
大数据入门---1.大数据介绍
学无止境的大象
# 大数据 hadoop spark hdfs mapreduce kafka
大数据的介绍无处不在的大数据大数据的爆炸式增长大数据的特征大数据与我们的生活息息相关思考:那么我们如何对这些数据进项存储与分析呢?我们的hadoop就是在这样的场景下应运而生的1.HADOOP背景介绍1.1什么是HADOOP(1)HADOOP是apache旗下的一套开源软件平台(2)HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理1.HADOOP的核心组件
【大数据入门核心技术-Doris】(三)Doris基础使用
forest_long
大数据技术入门到21天通关 大数据 bigdata hadoop doris hive hbase mpp
一、安装部署参考:【大数据入门核心技术-Doris】(二)Doris安装部署二、用户相关使用1、用户登录启动完Doris程序之后,可以通过root或admin用户连接到Doris集群。使用下面命令即可登录Doris,登录后进入到Doris对应的Mysql命令行操作界面mysql-hFE_HOST-P9030-urootFE_HOST是任一FE节点的IP地址,9030是fe.conf中的query_
大数据入门:Hadoop HDFS存储原理
成都加米谷大数据
在大数据处理当中,最核心要解决的其实就是两个问题,大数据存储和大数据计算。在Hadoop生态当中,解决大数据存储,主要依靠就是HDFS,再配合数据库去完成。今天的大数据入门分享,我们就来讲讲HadoopHDFS存储原理。1、什么是HDFS?HDFS即Hadoopdistributedfilesystem(hadoop分布式文件系统),在Hadoop当中负责分布式存储阶段的任务,它是一个分布式的文件
大数据入门之hadoop集群搭建(CentOS 7)
Charon.(卡隆)
大数据 hadoop
hadoop集群搭建安装系统在VMware下创建新的虚拟机这里需要和自己电脑匹配可以从资源监视器中看到自己的cpu数量,由于需要4台虚拟机,所以这里用4个处理器内核用于一台虚拟机中这里的内存也与自己电脑的实际情况匹配由于桥接网络麻烦,因此这里用网络地址转换这里的磁盘大小是在使用时具体用多少是多少,并不是从自己电脑的实际磁盘大小取出2.运行此虚拟机3.进行配置这里涉及的linux磁盘分区的知识,想要
25款大数据入门与实战电子书+视频教程(全程干货)
菜鸟窝
本资源由菜鸟窝大数据教研团队整理的,共有1.3GB学习资源(电子书)含Hadoop大数据与挖掘实战、Hbase实战、Spark大数据处理技术、Spark高级数据分析、大数据存储MongoDB实战、大数据架构师指南、数据算法、大数据挖掘等25本必读电子书~以及10个入门到实战的视频教程,勾搭助教weixin:BT474849免费领取哦~image.png
-大数据入门-2-Hadoo-MapReduce详解
吾..二..二
若泽大数据=拓展
mapreduce是hadoop的计算框架,既然是做计算的框架,那么表现形式就是有个输入(input),mapreduce操作这个输入(input),通过本身定义好的计算模型,得到一个输出(output),这个输出就是我们所需要的结果。计算模型的运行规则。在运行一个mapreduce计算任务时候,任务过程被分为两个阶段:map阶段和reduce阶段,每个阶段都是用键值对(key/value)作为输
不会真的有人看不懂 Linux 小白都能看懂的大数据入门(一) 图文
热忱 ㅤ ㅤ
大数据笔记
一、概述1.1Linux的历史操作系统,英语OperatingSystem简称为OS。说道操作系统就需要先讲一讲Unix,UNIX操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的贝尔实验室开发。而linux就是一款类Unix系统。通常
大数据Hadoop环境安装
不倒翁_z
大数据学习 big data hadoop hdfs 大数据 mapreduce
前言工作场景的需要,最近开始学习起了大数据相关的东西。对于我这个初学者,大数据入门就是首先得学会Hadoop环境的安装,按照步骤如遇相关问题,请指正。Hadoop环境的安装,我是用自己电脑借助VMwareworkstation构建了三个虚拟机节点,进行安装的。准备阶段准备三个虚拟机节点,我分配的资源是2核2G内存50G硬盘资源每个虚拟机节点,保证1.关闭三台虚拟机防火墙三台虚拟机必须保证内网互通(
大数据入门:Hadoop Yarn组件基础解析
成都加米谷大数据
在Hadoop框架当中,Yarn组件是在Hadoop2.0之后的版本开始引入,主要是为了解决资源管理和调度的相关问题,是在大数据平台的实际运用当中,根据实际需求而引入的解决方案。今天的大数据入门分享,我们就来对HadoopYarn组件做个简单的基础解析。Yarn简介Yarn是YetAnotherResourceNegotiator的缩写,在Hadoop生态当中,作为通用的资源管理系统与调度平台,去
大数据入门之zookeeper的功能及工作原理,未完待续……
尚学先生
如果大家对大数据开发感兴趣,可以点击文章“了解更多”,了解和报名大数据免费学习交流课程!!!1.Zookeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。2.Zookeeper提
大数据入门:Hadoop Yarn组件基础解析
加米谷大数据张老师
大数据 hadoop 大数据 分布式计算 yarn mapreduce
在Hadoop框架当中,Yarn组件是在Hadoop2.0之后的版本开始引入,主要是为了解决资源管理和调度的相关问题,是在大数据平台的实际运用当中,根据实际需求而引入的解决方案。今天的大数据入门分享,我们就来对HadoopYarn组件做个简单的基础解析。Yarn简介Yarn是YetAnotherResourceNegotiator的缩写,在Hadoop生态当中,作为通用的资源管理系统与调度平台,去
关于旗正规则引擎下载页面需要弹窗保存到本地目录的问题
何必如此
jsp 超链接 文件下载 窗口
生成下载页面是需要选择“录入提交页面”,生成之后默认的下载页面<a>标签超链接为:<a href="<%=root_stimage%>stimage/image.jsp?filename=<%=strfile234%>&attachname=<%=java.net.URLEncoder.encode(file234filesourc
【Spark九十八】Standalone Cluster Mode下的资源调度源代码分析
bit1129
cluster
在分析源代码之前,首先对Standalone Cluster Mode的资源调度有一个基本的认识:
首先,运行一个Application需要Driver进程和一组Executor进程。在Standalone Cluster Mode下,Driver和Executor都是在Master的监护下给Worker发消息创建(Driver进程和Executor进程都需要分配内存和CPU,这就需要Maste
linux上独立安装部署spark
daizj
linux 安装 spark 1.4 部署
下面讲一下linux上安装spark,以 Standalone Mode 安装
1)首先安装JDK
下载JDK:jdk-7u79-linux-x64.tar.gz ,版本是1.7以上都行,解压 tar -zxvf jdk-7u79-linux-x64.tar.gz
然后配置 ~/.bashrc&nb
Java 字节码之解析一
周凡杨
java 字节码 javap
一: Java 字节代码的组织形式
类文件 {
OxCAFEBABE ,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组
}
&nbs
java各种小工具代码
g21121
java
1.数组转换成List
import java.util.Arrays;
Arrays.asList(Object[] obj); 2.判断一个String型是否有值
import org.springframework.util.StringUtils;
if (StringUtils.hasText(str)) 3.判断一个List是否有值
import org.spring
加快FineReport报表设计的几个心得体会
老A不折腾
finereport
一、从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度。否则每次设计时模板均要从远程读取数据,速度相当慢!!
二、找一个富文本编辑软件(如NOTEPAD+)编辑SQL语句,这样会很好地检查语法。有时候带参数较多检查语法复杂时,结合FineReport中生成的日志,再找一个第三方数据库访问软件(如PL/SQL)进行数据检索,可以很快定位语法错误。
mysql linux启动与停止
墙头上一根草
如何启动/停止/重启MySQL一、启动方式1、使用 service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inin
Spring中事务管理浅谈
aijuans
spring 事务管理
Spring中事务管理浅谈
By Tony Jiang@2012-1-20 Spring中对事务的声明式管理
拿一个XML举例
[html]
view plain
copy
print
?
<?xml version="1.0" encoding="UTF-8"?>&nb
php中隐形字符65279(utf-8的BOM头)问题
alxw4616
php中隐形字符65279(utf-8的BOM头)问题
今天遇到一个问题. php输出JSON 前端在解析时发生问题:parsererror.
调试:
1.仔细对比字符串发现字符串拼写正确.怀疑是 非打印字符的问题.
2.逐一将字符串还原为unicode编码. 发现在字符串头的位置出现了一个 65279的非打印字符.
 
调用对象是否需要传递对象(初学者一定要注意这个问题)
百合不是茶
对象的传递与调用技巧
类和对象的简单的复习,在做项目的过程中有时候不知道怎样来调用类创建的对象,简单的几个类可以看清楚,一般在项目中创建十几个类往往就不知道怎么来看
为了以后能够看清楚,现在来回顾一下类和对象的创建,对象的调用和传递(前面写过一篇)
类和对象的基础概念:
JAVA中万事万物都是类 类有字段(属性),方法,嵌套类和嵌套接
JDK1.5 AtomicLong实例
bijian1013
java thread java多线程 AtomicLong
JDK1.5 AtomicLong实例
类 AtomicLong
可以用原子方式更新的 long 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicLong 可用在应用程序中(如以原子方式增加的序列号),并且不能用于替换 Long。但是,此类确实扩展了 Number,允许那些处理基于数字类的工具和实用工具进行统一访问。
 
自定义的RPC的Java实现
bijian1013
java rpc
网上看到纯java实现的RPC,很不错。
RPC的全名Remote Process Call,即远程过程调用。使用RPC,可以像使用本地的程序一样使用远程服务器上的程序。下面是一个简单的RPC 调用实例,从中可以看到RPC如何
【RPC框架Hessian一】Hessian RPC Hello World
bit1129
Hello world
什么是Hessian
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary p
【Spark九十五】Spark Shell操作Spark SQL
bit1129
shell
在Spark Shell上,通过创建HiveContext可以直接进行Hive操作
1. 操作Hive中已存在的表
[hadoop@hadoop bin]$ ./spark-shell
Spark assembly has been built with Hive, including Datanucleus jars on classpath
Welcom
F5 往header加入客户端的ip
ronin47
when HTTP_RESPONSE {if {[HTTP::is_redirect]}{ HTTP::header replace Location [string map {:port/ /} [HTTP::header value Location]]HTTP::header replace Lo
java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/2541117420116135376632/
写了个java版的
public class GreatestLeftRightDiff {
/**
* Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。
* 求所有数对之差的最大值。例如在数组
mongoDB 索引
开窍的石头
mongoDB索引
在这一节中我们讲讲在mongo中如何创建索引
得到当前查询的索引信息
db.user.find(_id:12).explain();
cursor: basicCoursor 指的是没有索引
&
[硬件和系统]迎峰度夏
comsci
系统
从这几天的气温来看,今年夏天的高温天气可能会维持在一个比较长的时间内
所以,从现在开始准备渡过炎热的夏天。。。。
每间房屋要有一个落地电风扇,一个空调(空调的功率和房间的面积有密切的关系)
坐的,躺的地方要有凉垫,床上要有凉席
电脑的机箱
基于ThinkPHP开发的公司官网
cuiyadll
行业系统
后端基于ThinkPHP,前端基于jQuery和BootstrapCo.MZ 企业系统
轻量级企业网站管理系统
运行环境:PHP5.3+, MySQL5.0
系统预览
系统下载:http://www.tecmz.com
预览地址:http://co.tecmz.com
各种设备自适应
响应式的网站设计能够对用户产生友好度,并且对于
Transaction and redelivery in JMS (JMS的事务和失败消息重发机制)
darrenzhu
jms 事务 承认 MQ acknowledge
JMS Message Delivery Reliability and Acknowledgement Patterns
http://wso2.com/library/articles/2013/01/jms-message-delivery-reliability-acknowledgement-patterns/
Transaction and redelivery in
Centos添加硬盘完全教程
dcj3sjt126com
linux centos hardware
Linux的硬盘识别:
sda 表示第1块SCSI硬盘
hda 表示第1块IDE硬盘
scd0 表示第1个USB光驱
一般使用“fdisk -l”命
yii2 restful web服务路由
dcj3sjt126com
PHP yii2
路由
随着资源和控制器类准备,您可以使用URL如 http://localhost/index.php?r=user/create访问资源,类似于你可以用正常的Web应用程序做法。
在实践中,你通常要用美观的URL并采取有优势的HTTP动词。 例如,请求POST /users意味着访问user/create动作。 这可以很容易地通过配置urlManager应用程序组件来完成 如下所示
MongoDB查询(4)——游标和分页[八]
eksliang
mongodb MongoDB游标 MongoDB深分页
转载请出自出处:http://eksliang.iteye.com/blog/2177567 一、游标
数据库使用游标返回find的执行结果。客户端对游标的实现通常能够对最终结果进行有效控制,从shell中定义一个游标非常简单,就是将查询结果分配给一个变量(用var声明的变量就是局部变量),便创建了一个游标,如下所示:
> var
Activity的四种启动模式和onNewIntent()
gundumw100
android
Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置:
<acti
攻城狮送女友的CSS3生日蛋糕
ini
html Web html5 css css3
在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>攻城狮送女友的CSS3生日蛋糕-柯乐义<
读源码学Servlet(1)GenericServlet 源码分析
jzinfo
tomcat Web servlet 网络应用 网络协议
Servlet API的核心就是javax.servlet.Servlet接口,所有的Servlet 类(抽象的或者自己写的)都必须实现这个接口。在Servlet接口中定义了5个方法,其中有3个方法是由Servlet 容器在Servlet的生命周期的不同阶段来调用的特定方法。
先看javax.servlet.servlet接口源码:
package
JAVA进阶:VO(DTO)与PO(DAO)之间的转换
snoopy7713
java VO Hibernate po
PO即 Persistence Object VO即 Value Object
VO和PO的主要区别在于: VO是独立的Java Object。 PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。
实际上,这个VO被用作Data Transfer
mongodb group by date 聚合查询日期 统计每天数据(信息量)
qiaolevip
每天进步一点点 学习永无止境 mongodb 纵观千象
/* 1 */
{
"_id" : ObjectId("557ac1e2153c43c320393d9d"),
"msgType" : "text",
"sendTime" : ISODate("2015-06-12T11:26:26.000Z")
java之18天 常用的类(一)
Luob.
Math Date System Runtime Rundom
System类
import java.util.Properties;
/**
* System:
* out:标准输出,默认是控制台
* in:标准输入,默认是键盘
*
* 描述系统的一些信息
* 获取系统的属性信息:Properties getProperties();
*
*
*
*/
public class Sy
maven
wuai
maven
1、安装maven:解压缩、添加M2_HOME、添加环境变量path
2、创建maven_home文件夹,创建项目mvn_ch01,在其下面建立src、pom.xml,在src下面简历main、test、main下面建立java文件夹
3、编写类,在java文件夹下面依照类的包逐层创建文件夹,将此类放入最后一级文件夹
4、进入mvn_ch01
4.1、mvn compile ,执行后会在