Example 7. Examples
#Create a namespace
create_namespace 'my_ns'
#create my_table in my_ns namespace
create 'my_ns:my_table', 'fam'
#drop namespace
drop_namespace 'my_ns'
#alter namespace
alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
Predefined namespaces
在hbase中有2个已经预先定义好的特殊namespace:
hbase ——特殊namespace,用于包含hbase中内部table。
defalut —— 没有明确定义namespace的table,会被归纳到这个namespace。
Example 8. Examples
#namespace=foo and table qualifier=bar
create 'foo:bar', 'fam'
#namespace=default and table qualifier=bar
create 'bar', 'fam'
Table
table在定义schema时就提前声明。
Row
row key是未解释的字节。 row按字典顺序排列,最低顺序首先出现在表中。
Column Family
在hbase中,所有的column都必须组合进某个column family里。一个column family的所有column成员都必须有相同的前缀。例如column“courses:history”和“courses:math”都是“courses”column family的成员。冒号分隔符分隔了column family和column qualifier。column family prefix必须由可打印字符组成。column qualifier可由任意字符组成。column family需要在schema设计阶段就提前声明。column不需要在schema设计阶段就提前声明,可以在table启动时动态添加。
物理上,所有的column family成员在文件系统中是存储在一起的。因为tuning规范和storeage规范是在column family级别完成的,所以建议所有的column family成员具有相同的一般访问模式和大小特征。
Cell
{row,column,version}元组精确地指定了HBase中的cell。 cell内容是未解释的字节。
Data Model Operations
4个主要的data model operation是get、put、scan和delete。可以通过table实例使用这些操作。
Get
get返回特定row的属性。通过Table.get执行get操作。
Put
如果一个key是新的,put操作添加新的row到table中,如果key已经存在,则更新原有的row。通过Table.put执行put操作。
Scan
scan允许对指定属性的多个row进行迭代。
下面是在一个table实例上执行scan操作的示例。假设table填充了一批row,row key分别为”row1“,”row2“,”row3“,还有一批row,它们的row key是”abc1“,”abc2“,”abc3“。下面示例展示了使用scan实例返回以”row“开头的row。
public static final byte [] CF = " cf " .getBytes();
public static final byte [] ATTR = " attr " .getBytes();
...
Table table = ...
Scan scan = new Scan();
scan.addColumn(CF, ATTR);
scan.setRowPrefixFilter(Bytes.toBytes(" row " ));
ResultScanner rs = table.getScanner(scan);
try {
for (Result r = rs.next(); r != null ; r = rs.next()) {
}
} finally {
rs.close();
}
Delete
Delete操作从table中删除一个row。通过table.delete执行delete操作。
hbase不会修改数据,因此通过创建名为tombstone的新标记来处理删除操作。这些tombstone,以及已经死去的value,会在主要的compaction操作中清除干净。
关于删除某个版本的column的信息,请查阅version.delete。
Versions
一个{row,column,version}元祖精确定义了在hbase中的一个cell。即使row和column相同也可能有无限个cell,但在version这个维度上仅有一个。
虽然row和column key是用字节表示的,但version是用long类型表示的。通常这个long类型包含了时间实例,例如java.util.Date.getTime() 或者 System.currentTimeMillis()返回的时间实例,即:1970年1月1日UTC 午夜和当前时间之间的差值(以毫秒为单位)。
在hbase中version是按降序存储的,所以读取一个store file时,最近的value总是第一个被找到。
在cell version的语义上有很多混淆,特别的:
如果对一个cell的多次写入具有相同的version,则只有最后一次写入是可以读取的。 以非递增版本顺序编写cell是可以的。
Specifying the Number of Versions to Store
对于给定的一个column,确定它在存储时的最大version数,是column schema的一部分。可以在表创建时确定,也可以通过alter命令修改HColumnDescriptor.DEFAULT_VERSIONS。在hbase 0.96之前,默认保持的version是3,在hbase 0.96以及更新的版本已经改为默认为1。
Example 9. Modify the Maximum Number of Versions for a Column Family
This example uses HBase Shell to keep a maximum of 5 versions of all columns in column family f1
. You could also use HColumnDescriptor.
hbase> alter ‘t1′, NAME => ‘f1′, VERSIONS => 5
Example 10. Modify the Minimum Number of Versions for a Column Family
You can also specify the minimum number of versions to store per column family. By default, this is set to 0, which means the feature is disabled. The following example sets the minimum number of versions on all columns in column family f1
to 2
, via HBase Shell. You could also use HColumnDescriptor.
hbase> alter ‘t1′, NAME => ‘f1′, MIN_VERSIONS => 2
Versions and HBase Operations
在这个章节中,我们将会看到hbase核心操作在version维度上的行为。
Get/Scan
get操作基于scan实现,下面对get操作的讨论等同于scan。
默认情况下,当你没有明确一个version就执行get操作时,返回的是值最大的version的cell。这个默认行为可以通过以下方式修改。
要返回多个版本,请参阅Get.setMaxVersions()
要返回除最新版本以外的其他版本,请参阅Get.setTimeRange()
要检索小于或等于给定值的最新版本,从而在某个时间点给出记录的“最新”状态,只需使用从0到所需版本的范围,并将最大版本设置为1。
Default Get Example
下面的get操作会返回row的当前版本。
public static final byte [] CF = " cf " .getBytes();
public static final byte [] ATTR = " attr " .getBytes();
...
Get get = new Get(Bytes.toBytes(" row1 " ));
Result r = table.get(get);
byte [] b = r.getValue(CF, ATTR);
Versioned Get Example
下面的get操作会返回row的最近的3个版本。
public static final byte [] CF = " cf " .getBytes();
public static final byte [] ATTR = " attr " .getBytes();
...
Get get = new Get(Bytes.toBytes(" row1 " ));
get.setMaxVersions(3 );
Result r = table.get(get);
byte [] b = r.getValue(CF, ATTR);
List kv = r.getColumn(CF, ATTR);
Put
put操作总是基于时间戳创建一个新版本的cell。默认情况下系统使用server的currentTimeMillis,但你可以自己明确该version(=long整型),在column级别上。这意味着您可以分配过去或未来的时间,或将长时间值用于非时间目的。
要覆盖已经存在的value,请将其放入你要重写的cell的同一个row,column,version中。
下列put操作隐式使用当前时间作为版本号添加数据。
public static final byte [] CF = " cf " .getBytes();
public static final byte [] ATTR = " attr " .getBytes();
...
Put put = new Put(Bytes.toBytes(row));
put.add(CF, ATTR, Bytes.toBytes( data));
table.put(put);
下面put操作有明确设置的version timestamp。
public static final byte [] CF = " cf " .getBytes();
public static final byte [] ATTR = " attr " .getBytes();
...
Put put = new Put( Bytes.toBytes(row));
long explicitTimeInMs = 555 ;
put.add(CF, ATTR, explicitTimeInMs, Bytes.toBytes(data));
table.put(put);
注意:version timastamp由HBase内部使用,用于诸如生存时间计算之类的事情。 通常最好避免自己设置时间戳。 优先使用该行的单独时间戳属性,或者将时间戳记作为row key的一部分,或者同时使用两者。
Delete
hbase有三种不同的内部delete标记。查阅Scanning in HBase: Prefix Delete Marker.关于这三种类型的讨论:
Delete:删除一个column的一个特定版本。
Delete column:删除一个column的所有版本。
Delete family:删除一个特定column family的所有column。
当删除整行时,HBase将在内部为每个ColumnFamily(即不是每个单独的列)创建一个tombstone。
delete操作通过tombstone标记完成。例如,假设我们想要删除一行。 为此,您可以指定一个版本,否则默认使用currentTimeMillis。这意味着删除版本小于或等于此版本的所有单元格。 HBase从不修改数据,例如删除不会立即删除(或标记为已删除)存储文件中对应于删除条件的条目。相反,写一个所谓的tombstone,它会掩盖删除的值。 当HBase进行重大压缩时,tombstone将被处理以实际移除死亡值以及tombstone本身。 如果您在删除行时指定的版本大于行中任何值的版本,则可以考虑删除整行。
Sort Order
所有数据模型操作HBase以排序顺序返回数据。 首先按行,然后按ColumnFamily,然后是column qualifier,最后是timestamp(timestamp反向排序,因此最新的记录会首先返回)。
Column Metadata
ColumnFamily的内部KeyValue实例之外不存储列元数据。 因此,尽管HBase不仅可以支持每行大量的列,还可以支持行之间的异构列,但您有责任跟踪列名。
获得ColumnFamily存在的一组完整列的唯一方法是处理所有行。 有关HBase如何在内部存储数据的更多信息,请参阅keyvalue。
Joins
hbase是否支持join操作是dist-list上的一个常见问题,一个简单的答案是,它不支持。 如本章所述,HBase中读取的数据模型操作是Get和Scan。
但是,这并不意味着您的应用程序不支持等效的join功能,但您必须自己动手。 两个主要策略是在写入HBase时对数据进行非规格化,或者在您的应用程序或MapReduce代码中使用查找表并进行HBase表之间的连接(并且正如RDBMS'演示的那样,有几种策略取决于HBase的大小 表格,例如,嵌套循环与散列连接)。 那么最好的方法是什么? 这取决于你想要做什么,因此没有一个适用于每个用例的答案。
ACID
See ACID Semantics. Lars Hofhansl has also written a note on ACID in HBase.
完。
你可能感兴趣的:(hbase)
大数据学习(67)- Flume、Sqoop、Kafka、DataX对比
viperrrrrrr
大数据 学习 flume kafka sqoop datax
大数据学习系列专栏:哲学语录:用力所能及,改变世界。如果觉得博主的文章还不错的话,请点赞+收藏⭐️+留言支持一下博主哦工具主要作用数据流向实时性数据源/目标应用场景Flume实时日志采集与传输从数据源到存储系统实时日志文件、网络流量等→HDFS、HBase、Kafka等日志收集、实时监控、实时分析Sqoop关系型数据库与Hadoop间数据同步关系型数据库→Hadoop生态系统(HDFS、Hive、
HBase学习二:HBase的表结构
hucs420109
HBase HBase
HBase的表结构初次接触HBase,可能看到以下描述会懵:“基于列存储”,“稀疏MAP”,“RowKey”,“ColumnFamily”。其实没那么高深,我们需要分两步来理解HBase,就能够理解为什么HBase能够“快速地”“分布式地”处理“大量数据”了。内存结构文件存储结构先介绍几个名称概念行键RowKey:行键,类似mysql中的主键,Table中的记录按照RowKey排序,行键是表结构的
分布式存储—— HBase数据模型 详解
Future_yzx
分布式 hbase 数据库
目录1.3HBase数据模型1.3.1两类数据模型1.3.2数据模型的重要概念1.3.3数据模型的操作1.3.4数据模型的特殊属性1.3.5CAP原理与最终一致性1.3.6小结本文章参考、总结于学校教材课本《HBase开发与应用》1.3HBase数据模型在开始学习HBase之前非常有必要先学习HBase的特性,因此本节将介绍HBase的逻辑模型、物理模型和访问HBase的方法等。和传统的关系型数据
分布式存储学习——HBase表结构设计
Future_yzx
oracle 数据库
目录1.4.1模式创建1.4.2Rowkey设计1.4.3列族定义1.4.3.1可配置的数据块大小1.4.3.2数据块缓存1.4.3.3布隆过滤器1.4.3.4数据压缩1.4.3.5单元时间版本1.4.3.6生存时间1.4.4模式设计实例1.4.4.1实例1:动物分类1.4.4.2实例2:店铺与商品1.4.4.3实例3:网上商城用户消费记录1.4.4.4实例4:微博用户与粉丝1.4.4.5小结本文
HBase2.6.1部署文档
CXH728
zookeeper hbase
1、HBase概述ApacheHBase是基于Hadoop分布式文件系统(HDFS)之上的分布式、列存储、NoSQL数据库。它适合处理结构化和半结构化数据,能够存储数十亿行和数百万列的数据,并支持实时读写操作。HBase通常应用于需要快速随机读写、低延迟访问以及高吞吐量的场景,例如大规模日志处理、社交网络数据存储等。HBase特性列存储模型:HBase的数据是按列族存储的,适合高稀疏数据。行键分区
使用Couchbase中的向量搜索进行智能查询
eahba
python
技术背景介绍Couchbase是一种强大的分布式NoSQL数据库,广泛应用于云、移动、AI和边缘计算应用中。其向量搜索功能,作为全文搜索服务的一部分,支持在应用中进行高效的语义查询。这为开发者在实现AI驱动的应用时提供了极大的便利。核心原理解析Couchbase的向量搜索利用向量嵌入技术对文本进行处理,可以实现基于语义相似度的查询。这与传统的关键词匹配有根本的不同,更适合AI应用场景中模糊或语义相
Zookeeper与Kafka学习笔记
上海研博数据
zookeeper kafka 学习
一、Zookeeper核心要点1.核心特性分布式协调服务,用于维护配置/命名/同步等元数据采用层次化数据模型(Znode树结构),每个节点可存储<1MB数据典型应用场景:HadoopNameNode高可用HBase元数据管理Kafka集群选举与状态管理2.设计限制内存型存储,不适合大数据量场景数据变更通过版本号(Version)控制,实现乐观锁机制采用ZAB协议保证数据一致性二、Kafka核心架构
phoenix无法连接hbase shell创建表失败_报错_PleaseHoldException: Master is initializing---记录020_大数据工作笔记0180
添柴程序猿
hbase连接报错 phoenix连接hbase phoenix PleaseHoldExcep
今天发现,我的phoenix,去连接hbase集群,怎么也连不上了,奇怪了...弄了一晚上org.apache.hadoop.hbase.PleaseHoldException:Masterisinitializing[root@hadoop120bin]#ll总用量184-rwxr-xr-x.1rootroot36371月222020chaos-daemon.sh-rwxr-xr-x.1root
regionserver实例僵住问题分析
spring208208
hbase hbase
问题现象:应用提交超时,发现regionserver实例异常。hbase原生页面这个实例dead,业务连接到这个rs的进程超时8个regionserver实例。D08在18:30分后显示warning,应用提交任务到这个rs节点超时,hbase控制台不显示d08的rs信息了。19:30在页面停止rs实例失败,然后kill进程。18:30统计图等就不刷新了,但是机器里rs进程在。d08节点还有dn,
hbase 默认目录_[HBase] HBase数据存储目录解析
weixin_39577422
hbase 默认目录
Hbase在hdfs上的存储位置,根目录是由配置项hbase.rootdir决定,默认就是"/hbase"/hbase/WALs在该目录下,对于每个RegionServer,都会对应1~n个子目录/hbase/oldWALs当/hbase/WALs中的HLog文件被持久化到存储文件时,它们就会被移动到/hbase/oldWALs/hbase/hbase.id集群的唯一ID/hbase/hbase.
hbase-05 namespace、数据的确界&TTL
小技工丨
大数据技术学习 hbase 数据库 大数据
要点掌握HBase的命名空间namespace概念掌握HBase数据版本确界掌握HBase数据TTL1.HBase的namespace1.1namespace基本介绍在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。ApacheHBase从0.98.0,0.95.2两个版本号开始支持namespace级别的授权操作,HBase
Hbase在hdfs上的archive目录占用空间过大
宝罗Paul
大数据 hbase
hbase版本:1.1.2hadoop版本:2.7.3Hbase在hdfs上的目录/apps/hbase/data/archive占用空间过大,导致不停地发出hdfs空间使用率告警。【问题】告警信息alert:datanode_storageistriggered告警信息表明某个或某些datanode的HDFS存储空间使用率已超过阈值(我们设置的是80%),需要清理。[hdfs@master-2r
hbase集群archive目录过大问题处理
spring208208
大数据组件线上问题分析 hbase 数据库 大数据
1.问题现象现场反馈hbase集群/hbase/archive目录过大,大小约为1.52PB现场集群已经清理掉2个月以前的snapshot文件,当前archive目录文件仍不能释放现场发现1T以上的archive子目录有211个查看集群hbase配置,hmaster堆栈大小20GB,hmaster清理周期5分钟查看hmaster进程分配内存占用6G上下问题分析HMaster内存估算,假如/hbas
Flume-HBase-Kafka
正在緩沖҉99%
kafka Flume HBase 大数据
Flume-HBase-Kafka一、各自介绍1.Flume简介和特征2.HBase简介和特征3.Kafka简介和特征二、通过Flume读取日志文件写入到Kafka中在写入HBase各自作用一、各自介绍1.Flume简介和特征一、简介Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方
大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题
大模型大数据攻城狮
大数据 面试 职场和发展 面试题 数据仓库 算法
目录1描述Hadoop的架构和它的主要组件。2MapReduce的工作原理是什么?3什么是YARN,它在Hadoop中扮演什么角色?4Spark和HadoopMapReduce的区别是什么?5如何在Spark中实现数据的持久化?6SparkStreaming的工作原理是什么?7如何优化Spark作业的性能?8描述HBase的架构和它的主要组件。9HBase的读写流程是怎样的?10HBase如何处理
value error
wqq奋斗的小鸟
pyspark
ValueError:invalidliteralforint()withbase10:''int()函数只能转化数字组成的字符串
如何使用Spark Streaming将数据写入HBase
Java资深爱好者
spark hbase 大数据
在SparkStreaming中将数据写入HBase涉及到几个步骤。以下是一个基本的指南,帮助你理解如何使用SparkStreaming将数据写入HBase。1.环境准备HBase:确保HBase集群已经安装并运行。Spark:确保Spark已经安装,并且Spark版本与HBase的Hadoop版本兼容。HBaseConnectorforSpark:你需要使用HBase的SparkConnecto
华为MRS产品组件
QianJin_zixuan
hadoop hive 大数据 数据库架构 gaussdb
MRS:MRS是一个在华为云上部署和管理Hadoop系统的服务,一键即可部署Hadoop集群。MRS提供租户完全可控的一站式企业级大数据集群云服务(全栈大数据平台),轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件。集群管理:使用MRS的首要操作就是购买集群,MRS的扩容不论在存储还是计算能力上,都可以简单地通过增加Core节点或者Task节点来完成。集群Core节
HBase:大数据时代的“超级数据库”
狮歌~资深攻城狮
hbase 大数据
HBase:大数据时代的“超级数据库”你是不是也被数据淹没过?大家有没有这样的经历,手机里存了成千上万张照片,每次想找某一张特定的照片时,都得翻半天?或者在工作中面对堆积如山的数据报表,感觉像是在大海捞针。今天我们要聊的HBase,就是为了解决这种“数据洪流”的问题。什么是HBase?HBase是一个分布式的、面向列的开源数据库,它基于Google的Bigtable论文设计而成。简单来说,HBas
HBase常用的Filter过滤器操作
梵高的夏天
python 算法 机器学习
HBase常用的Filter过滤器操作_hbasefilter-CSDN博客HBase过滤器种类很多,我们选择8种常用的过滤器进行介绍。为了获得更好的示例效果,先利用HBaseShell新建students表格,并往表格中进行写入多行数据。一、数据准备工作(1)在默认命名空间中新建表格students,设置列族info、score。hbase:002:0>create'students','inf
Pinpoint应用性能管理工具Docker化安装
小苏少
Docker Linux 软件测试 docker pinpoint linux JVM监控
目录Pinpoint应用性能管理工具Docker化安装Pinpoint是什么为什么用Pinpoint下载hbase-create.hbase编写Dockerfile编写run.sh构建Dockerfile启动Pinpoint其他Pinpoint应用性能管理工具Docker化安装本文主要介绍Pinpoint应用性能管理工具Docker化安装,以及在后期Pinpoint进行版本升级时,如何同步升级Do
hbase put 写入数据慢_HBase
马斯克·贾
hbase put 写入数据慢
HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。逻辑结构物理存储结构数据模型逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。HBase的底层物理存储结构(K-V)。NameSpace命名空间,类似于关系型数据库的DatabBase概念,每个命名空间下有多个表。HBase有两个自带的命名空间,分别是hbase和default,hbase中存放的是H
如何用HBase轻松管理海量数据?
狮歌~资深攻城狮
hbase 大数据
如何用HBase轻松管理海量数据?小白也能学会的入门指南数据太多,头都大了?你有没有过这样的经历:面对堆积如山的数据文件,感觉像是被淹没在信息的海洋里?别担心,今天我们要聊的HBase,就是来帮你解决这个问题的神器。不管你是技术小白还是有一定经验的开发者,这篇文章都能让你轻松上手HBase。什么是HBase?HBase是一个分布式的、面向列的开源数据库,专门用来处理大规模数据。它基于Google的
Zookeeper(67) Zookeeper在HBase中的应用是什么?
辞暮尔尔-烟火年年
微服务 zookeeper hbase python
Zookeeper在HBase中起到了至关重要的作用,主要用于协调和管理HBase集群中的多个组件。具体来说,Zookeeper在HBase中的应用包括以下几个方面:Master选举:HBase集群中可以有多个Master节点,但只有一个处于Active状态,其余为Standby状态。Zookeeper用于进行Master节点的选举。RegionServer协调:Zookeeper用于管理和协调R
深入HBase——核心组件
黄雪超
大数据基础 # 深入HBase hbase 数据库 数据结构
引入通过上一篇对HBase核心算法和数据结构的梳理,我们对于其底层设计有了更多理解。现在我们从引入篇里面提到的HBase架构出发,去看看其中不同组件是如何设计与实现。核心组件首先,需要提到的就是HBase架构中会依赖到的Zookeeper和HDFS。对于HDFS看过深入HDFS的小伙伴,应该都不陌生,它提供了高可靠的海量数据存储和读写能力;而对于Zookeeper,它是一个分布式协调存储服务,主要
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
m0_74823705
面试 学习路线 阿里巴巴 大数据 架构
点一下关注吧!!!非常感谢!!持续更新!!!Java篇开始了!目前开始更新MyBatis,一起深入浅出!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已
Trae 项目常见问题解决方案
强和毓Hadley
Trae项目常见问题解决方案trae:postbox:MinimalisticFetchbasedHTTPclient项目地址:https://gitcode.com/gh_mirrors/tr/trae项目基础介绍Trae是一个基于FetchAPI的极简HTTP客户端,旨在提供一个简单、轻量级的HTTP请求工具。该项目的主要编程语言是TypeScript和JavaScript。Trae的设计理念
Hbase深入浅出
天才之上
数据存储 Hbase 大数据存储
目录HBase在大数据生态圈中的位置HBase与传统关系数据库的区别HBase相关的模块以及HBase表格的特性HBase的使用建议Phoenix的使用总结HBase在大数据生态圈中的位置提到大数据的存储,大多数人首先联想到的是Hadoop和Hadoop中的HDFS模块。大家熟知的Spark、以及Hadoop的MapReduce,可以理解为一种计算框架。而HDFS,我们可以认为是为计算框架服务的存
深入浅出了解HBase及RDD编程
山海王子
大数据 hbase
深入浅出了解HBaseHBase简介架构HBase是什么样的数据库?关键是数据模型关键要素:什么是单元格时间戳的功能是什么?HBase为什么能存储海量数据创建一个HBase表配置Spark编写程序读取HBase数据编写程序向HBase写入数据关于搭建HBase高可用集群的图文教程,可参考我的另一篇博文——安装并配置HBase集群(5个节点)。HBase简介HBase是GoogleBigTable的
HBase简介:高效分布式数据存储和处理
代码指四方
分布式 hbase 数据库 大数据
HBase简介:高效分布式数据存储和处理HBase是一个高效的、可扩展的分布式数据库,它是构建在ApacheHadoop之上的开源项目。HBase的设计目标是为大规模数据存储和处理提供高吞吐量和低延迟的解决方案。它可以在成百上千台服务器上运行,并能够处理海量的结构化和半结构化数据。HBase的核心特点包括:分布式存储:HBase使用Hadoop分布式文件系统(HDFS)作为底层存储,数据被分布在集
Dom
周华华
JavaScript html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
【Spark九十六】RDD API之combineByKey
bit1129
spark
1. combineByKey函数的运行机制
RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一
首先看一下combineByKey的方法说明:
msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解
daizj
mysql 设置密码
MySql给用户设置权限同时指定访问密码时,会提示如下错误:
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
问题原因:你输入的密码是明文。不允许这么输入。
解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串,
然后
路漫漫其修远兮 吾将上下而求索
周凡杨
学习 思索
王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注
Hadoop(二)对话单的操作
朱辉辉33
hadoop
Debug:
1、
A = LOAD '/user/hue/task.txt' USING PigStorage(' ')
AS (col1,col2,col3);
DUMP A;
//输出结果前几行示例:
(>ggsnPDPRecord(21),,)
(-->recordType(0),,)
(-->networkInitiation(1),,)
web报表工具FineReport常用函数的用法总结(日期和时间函数)
老A不折腾
finereport 报表工具 web开发
web报表工具FineReport常用函数的用法总结(日期和时间函数)
说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。
DATE
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。
c++ 宏定义中的##操作符
墙头上一根草
C++
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs
分析Spring源代码之,DI的实现
aijuans
spring DI 现 源代码
(转)
分析Spring源代码之,DI的实现
2012/1/3 by tony
接着上次的讲,以下这个sample
[java]
view plain
copy
print
for循环的进化
alxw4616
JavaScript
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
网络编程Socket和ServerSocket简单的使用
百合不是茶
网络编程基础 IP地址端口
网络编程;TCP/IP协议
网络:实现计算机之间的信息共享,数据资源的交换
协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去
端口:用于计算机之间的通信
每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识
0~65535
查看被使用的
JDK1.5 生产消费者
bijian1013
java thread 生产消费者 java多线程
ArrayBlockingQueue:
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。
ArrayBlockingQueue的常用方法:
JAVA版身份证获取性别、出生日期及年龄
bijian1013
java 性别 出生日期 年龄
工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。
CertificateNo.java
package com.bijian.study;
import java.util.Calendar;
import
【Java范型六】范型与枚举
bit1129
java
首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的
public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数
OK, ERROR;
public <T> T get(T type) {
return null;
【Nginx五】Nginx常用日志格式含义
bit1129
nginx
1. log_format
1.1 log_format指令用于指定日志的格式,格式:
log_format name(格式名称) type(格式样式)
1.2 如下是一个常用的Nginx日志格式:
log_format main '[$time_local]|$request_time|$status|$body_bytes
Lua 语言 15 分钟快速入门
ronin47
lua 基础
-
-
单行注释
-
-
[[
[多行注释]
-
-
]]
-
-
-
-
-
-
-
-
-
-
-
1.
变量 & 控制流
-
-
-
-
-
-
-
-
-
-
num
=
23
-
-
数字都是双精度
str
=
'aspythonstring'
java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
bylijinnan
java
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
mongoDB文档型数据库特点
开窍的石头
mongoDB文档型数据库特点
MongoDD: 文档型数据库存储的是Bson文档-->json的二进制
特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。
mongoDB传统型数据库对比
传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的
文档型数据库:不用定好数据结构,
[毕业季节]欢迎广大毕业生加入JAVA程序员的行列
comsci
java
一年一度的毕业季来临了。。。。。。。。
正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。
软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的
PHP操作Excel – PHPExcel 基本用法详解
cuiyadll
PHP Excel
导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties
IBM Webshpere MQ Client User Issue (MCAUSER)
darrenzhu
IBM jms user MQ MCAUSER
IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗?
答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。
http://stackoverflow.com/questions/20209429/how-mca-user-i
网线的接法
dcj3sjt126com
一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb
Vimium插件让键盘党像操作Vim一样操作Chrome
dcj3sjt126com
chrome vim
什么是键盘党?
键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。
在chrome里安装 vimium 插件
MongoDB查询(2)——数组查询[六]
eksliang
mongodb MongoDB查询数组
MongoDB查询数组
转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述
MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示:
> db.food.find()
{ "_id" : "001", "fruits" : [ "苹
cordova读写文件(1)
gundumw100
JavaScript Cordova
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
HTML5 FormData 进行文件jquery ajax 上传 到又拍云
ileson
jquery Ajax html5 FormData
html5 新东西:FormData 可以提交二进制数据。
页面test.html
<!DOCTYPE>
<html>
<head>
<title> formdata file jquery ajax upload</title>
</head>
<body>
<
swift appearanceWhenContainedIn:(version1.2 xcode6.4)
啸笑天
version
swift1.2中没有oc中对应的方法:
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
解决方法:
在swift项目中新建oc类如下:
#import &
java实现SMTP邮件服务器
macroli
java 编程
电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。
◆ SMTP 协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的
mongodb group by having where 查询sql
qiaolevip
每天进步一点点 学习永无止境 mongo 纵观千象
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {
Struts2 Pojo(六)
Luob.
POJO strust2
注意:附件中有完整案例
1.采用POJO对象的方法进行赋值和传值
2.web配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee&q
struts2步骤
wuai
struts
1、添加jar包
2、在web.xml中配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.st