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)
HBase监控
也想洒脱
JanusGraph hbase
Prometheus+Grafana搭建HBase监控参考https://blog.csdn.net/devcloud/article/details/115069449
HBase 监控 | HBase Metrics 初探(一)
禅克
前言:对于任意一个系统而言,做好监控都是非常重要的,HBase也不例外。经常,我们会从JMX中获取相关指标来做展示、对HBase进行监控,那这些指标是怎么生成的呢?如果你想自定义自己的监控指标又该怎么做呢?基于好奇之心和学习的目的,最近打算学习一下HBase监控相关原理及实现,今天先简单捋一捋思路。1.如何下手?我一向比较喜欢先看项目所依赖的pom文件,打开HBase源码,有两个非常相关的模块:h
深入探索Hadoop技术:全面学习指南
引言在大数据时代,高效地存储、处理和分析海量数据已成为企业决策与创新的关键驱动力。Hadoop,作为开源的大数据处理框架,以其强大的分布式存储和并行计算能力,以及丰富的生态系统,为企业提供了应对大规模数据挑战的有效解决方案。本文旨在为初学者和进阶者提供一份详尽的Hadoop技术学习指南,涵盖HDFS、MapReduce、YARN等核心组件,以及Hive、Pig、HBase等生态系统工具,助您踏上H
Hbase - 表导出CSV数据
kikiki1
新鲜文章,昨天刚经过线上验证过的,使用它导出了3亿的用户数据出来,花了半个小时,性能还是稳稳的,好了不吹牛皮了,直接上代码吧。MR考查了Hbase的各种MR,没有发现哪一个是能实现的,如果有请通知我,我给他发红包。所以我们只能自己来写一个MR了,编写一个Hbase的MR,官方文档上也有相应的例子。我们用来加以化妆就得到我们想要的了。导出的CSV格式为admin,22,北京admin,23,天津依赖
ftp文件服务器有连接数限制,查看ftp服务器连接数命令
赵承铭
ftp文件服务器有连接数限制
查看ftp服务器连接数命令内容精选换一换本章节适用于MRS3.x之前版本。Loader支持以下多种连接,每种连接的配置介绍可根据本章节内容了解。obs-connectorgeneric-jdbc-connectorftp-connector或sftp-connectorhbase-connector、hdfs-connector或hive-connectorOBS连接是Loa“数据导入”章节适用于
HBase总结
HBase1.HBase核心概念HBase的作用HBase主要用于存储和管理超大规模的结构化或半结构化数据(如PB级),特点包括:高扩展性:通过分布式架构横向扩展,支持数千台服务器高吞吐量:适合实时随机读写(如用户行为日志、实时分析)强一致性:保证同一行数据的原子性操作灵活的数据模型:支持动态列和稀疏存储典型应用场景:互联网公司的用户行为日志存储(如点击流数据)社交媒体的实时消息存储物联网设备时序
Hadoop核心组件最全介绍
Cachel wood
大数据开发 hadoop 大数据 分布式 spark 数据库 计算机网络
文章目录一、Hadoop核心组件1.HDFS(HadoopDistributedFileSystem)2.YARN(YetAnotherResourceNegotiator)3.MapReduce二、数据存储与管理1.HBase2.Hive3.HCatalog4.Phoenix三、数据处理与计算1.Spark2.Flink3.Tez4.Storm5.Presto6.Impala四、资源调度与集群管
HBase 开发:使用Java操作HBase
睡觉的时候我不困
hbase java python
第1关:创建表任务描述相关知识如何使用Java连接HBase数据库HBaseConfigurationConnectionFactory创建表HBase2.X创建表编程要求测试说明任务描述本关任务:使用Java代码在HBase中创建表。相关知识为了完成本关任务,你需要掌握:1.如何使用Java连接HBase数据库,2.如何使用Java代码在HBase中创建表。如何使用Java连接HBase数据库J
头歌作业-HBase 开发:使用Java操作HBase
http_lizi
hbase java python
第一关packagestep1;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.HBaseConfiguration;importorg.apache.hadoop.hbase.HColumnDescriptor;importorg.apache.h
PostgreSql、Hbase的安装
月光一族吖
postgresql hbase 数据库
在CentOS8中安装PostgreSQL和HBase,以下是详细步骤,包括使用sudo权限的命令:安装PostgreSQL更新系统包在两台CentOS8上运行以下命令,确保系统是最新的:sudodnfupdate-y安装PostgreSQLCentOS8默认仓库提供PostgreSQL。你可以直接安装所需版本的PostgreSQL:sudodnfinstall-ypostgresql-serve
HDFS与HBase有什么关系?
lucky_syq
hdfs hbase hadoop
1、HDFS文件存储系统和HBase分布式数据库HDFS是Hadoop分布式文件系统。HBase的数据通常存储在HDFS上。HDFS为HBase提供了高可靠性的底层存储支持。Hbase是Hadoopdatabase,即Hadoop数据库。它是一个适合于非结构化数据存储的数据库,HBase基于列的而不是基于行的模式。
Hbase和关系型数据库、HDFS、Hive的区别
别这么骄傲
hive hbase 数据库
目录1.Hbase和关系型数据库的区别2.Hbase和HDFS的区别3.Hbase和Hive的区别1.Hbase和关系型数据库的区别关系型数据库Hbase存储适合结构化数据,单机存储适合结构化和半结构数据的松散数据,分布式存储功能(1)支持ACID(2)支持join(3)使用主键PK(4)数据类型:int、varchar等(1)仅支持单行事务(2)不支持join,把数据糅合到一张大表(3)行键ro
大数据基础知识-Hadoop、HBase、Hive一篇搞定
原来是猪猪呀
hadoop 大数据 分布式
HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构,其核心设计包括分布式文件系统(HDFS)和MapReduce编程模型;Hadoop是一个开源的分布式计算框架,旨在帮助用户在不了解分布式底层细节的情况下,开发分布式程序。它通过利用集群的力量,提供高速运算和存储能力,特别适合处理超大数据集的应用程序。Hadoop生态圈Hadoop生态圈是一个由多个基于Hadoop开发的相
Hadoop、HDFS、Hive、Hbase区别及联系
静心观复
大数据 hadoop hdfs hive
Hadoop、HDFS、Hive和HBase是大数据生态系统中的关键组件,它们都是由Apache软件基金会管理的开源项目。下面将深入解析它们之间的区别和联系。HadoopHadoop是一个开源的分布式计算框架,它允许用户在普通硬件上构建可靠、可伸缩的分布式系统。Hadoop通常指的是整个生态系统,包括HadoopCommon(共享库和工具)、HadoopDistributedFileSystem(
大数据(1)-hdfs&hbase
viperrrrrrr
大数据 hdfs hbase
hbase&hdfs一、体系结构HDFS是一个标准的主从(Master/Slave)体系结构的分布式系统;HDFS集群包含一个或多个NameNode(NameNodeHA会有多个NameNode)和多个DataNode(根据节点情况规划),用户可以通过HDFS客户端同NameNode和DataNode进行交互以访问文件系统。HDFS公开文件系统名称空间,并允许将用户数据存储在文件中。在内部,一个文
HBase 开发:使用Java操作HBase 第1关:创建表
是草莓熊吖
hbase 大数据 Educoder hbase hadoop 大数据
为了完成本关任务,你需要掌握:1.如何使用Java连接HBase数据库,2.如何使用Java代码在HBase中创建表。如何使用Java连接HBase数据库Java连接HBase需要两个类:HBaseConfigurationConnectionFactoryHBaseConfiguration要连接HBase我们首先需要创建Configuration对象,这个对象我们需要通过HBaseConfig
Hbase-表操作
红笺Code
Hbase hbase 大数据 数据分析 非关系型数据库 zookeeper
目录一、创建表:1.创建表时指定列族的属性2.创建表时不指定列族的属性多学一招:克隆表二、查看表信息三、查看表四、停用和启用表1.停用表2.启用表多学一招:停用或启用多个表五、判断表1.exists命令2.is_enabled命令3.is_disabled命令六、修改表1.修改表属性(1)添加属性(2)删除属性2.修改列族(1)修改列族属性(2)添加列族(3)删除列族七、删除表drop命令多学一招
头歌 当HBase遇上MapReduce
敲代码的苦13
头歌 hbase mapreduce 数据库
头歌当HBase遇上MapReduce第1关:HBase的MapReduce快速入门代码行:packagecom.processdata;importjava.io.IOException;importjava.util.List;importjava.util.Scanner;importorg.apache.hadoop.conf.Configuration;importorg.apache.
大数据集群架构hadoop集群、Hbase集群、zookeeper、kafka、spark、flink、doris、dataeas(二)
争取不加班!
hadoop hbase zookeeper 大数据 运维
zookeeper单节点部署wget-chttps://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz下载地址tarxfapache-zookeeper-3.8.4-bin.tar.gz-C/data/&&mv/data/apache-zookeeper-3.8.4-bin//data/zoo
JT808教程:设置/查询终端参数
REDISANT提供互联网与物联网开发测试套件#互联网与中间件:RedisAssistantZooKeeperAssistantKafkaAssistantRocketMQAssistantRabbitMQAssistantPulsarAssistantHBaseAssistantNoSqlAssistantEtcdAssistantGarnetAssistant工业与物联网:MQTTAssist
Squirrel: 通用SQL、NoSQL客户端
antui1957
安装配置数据库配置驱动配置连接如果你的工作中,需要使用到多个数据库,又不想在多种客户端之间切换来切换去。那么就需要找一款支持多数据库的客户端工具了。如果你要连接多个关系型数据库,你就可以使用NavicatPremium。但是如果你有使用到NOSQL(譬如HBase、MongoDB等),还是建议使用SquirrelSQLClient。1、安装下载地址:http://squirrel-sql.sour
使用datax进行mysql的表恢复
是桃萌萌鸭~
mysql 数据库
DataXDataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括MySQL、SQLServer、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS等各种异构数据源之间高效的数据同步功能。FeaturesDataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上Dat
hbase:meta 表解析
有数的编程笔记
HBase
hbase:meta表中存储了Hbase集群中全部表的所有的region信息,在Hbase2.x之后新增了表的状态信息。hbase:meta表的结构非常简单,在Hbase2.x之前整个表只有一个名为info的ColumnFamily。在Hbase2.x新增表状态信息后,增加了名为table的ColumnFamily。HBase保证hbase:meta表始终只有一个Region,这是为了确保meta
Hadoop等大数据处理框架的Java API
扬子鳄008
Java hadoop java 大数据
Hadoop是一个非常流行的大数据处理框架,主要用于存储和处理大规模数据集。Hadoop主要有两个核心组件:HDFS(HadoopDistributedFileSystem)和MapReduce。此外,还有许多其他组件,如YARN(YetAnotherResourceNegotiator)、HBase、Hive等。下面详细介绍Hadoop及其相关组件的JavaAPI及其使用方法。HadoopHad
手把手教你玩转 Sqoop:从数据库到大数据的「数据搬运工」
AAA建材批发王师傅
数据库 sqoop 大数据 hive hdfs
一、Sqoop是什么?——数据界的「超级搬运工」兄弟们,今天咱们聊个大数据圈的「搬运小能手」——Sqoop!可能有人会问:这玩意儿跟Flume啥区别?简单来说:Flume是专门搬日志数据的「快递员」而Sqoop是搬数据库数据的「搬家公司」它的名字咋来的?SQL+Hadoop,直接告诉你核心技能:在关系型数据库(比如MySQL)和Hadoop家族(HDFS、Hive、HBase)之间疯狂倒腾数据!核
【请关注】hBase要用的顺畅的思路
DoWeixin6
数据相关 数据库
玩楞一下HBase,要让这玩意儿在大数据量下跑得顺,索引和优化可都是实打实的硬活。先说索引这块。HBase就认RowKey这个主索引,所有数据都按它排得明明白白。平时查数据,只要RowKey设计得好,直接就能定位到对应的Region,速度快得很。但RowKey要是拍脑袋瞎写,比如全按时间戳排序,那准得出大问题——数据全往一个Region挤,妥妥的热点,集群直接卡住。所以设计RowKey时,我一般会
【赵渝强老师】HBase的体系架构
赵渝强老师
NoSQL数据库 hbase 架构 数据库 大数据 hadoop hdfs nosql
HBase是大表(BigTable)思想的一个具体实现。它是一个列式存储的NoSQL数据库,适合执行数据的分析和处理。简单来说,就是适合执行查询操作。从体系架构的角度看,HBase是一种主从架构,包含:HBaseHMaster、RegionServer和ZooKeeper,下图展示了这一架构。其中:HBaseHMaster负责Region的分配及数据库的创建和删除等操作。Regionserver负
大数据学习(141)-分布式数据库
viperrrrrrr
大数据 学习 分布式 clickhouse hdfs hbase
在分布式数据库中主要有hdfs、hbase、clickhouse三种。HDFS(HadoopDistributedFileSystem)、HBase和ClickHouse都是处理大数据的分布式系统,但它们的设计目标、架构和适用场景有所不同。一、HDFS(HadoopDistributedFileSystem)HDFS是Hadoop生态系统的一部分,是一个高度容错的系统,适合存储大量数据。它被设计为
TiDB 替换 HBase 全场景实践指南 ——从架构革新到业务赋能
TiDB 社区干货传送门
tidb hbase 架构 数据库 大数据
作者:数据源的TiDB学习之路原文来源:https://tidb.net/blog/c687d474第一章:HBase的历史使命与技术瓶颈1.1HBase的核心价值与经典场景作为Hadoop生态的核心组件,HBase凭借LSM-Tree存储引擎和Region分片机制,在2010年代成为海量数据存储的标杆。其典型场景包括:日志流处理:支持Kafka每日TB级数据持久化,写入吞吐达百万级QPS(如某头
【Ambari3.0.0 部署】Step3—安装JDK17与JDK1.8-适用于el8
TTBIGDATA
ambari bigtop hdp hidataplus edp 大数据 el8
如果有其他系统部署需求可以参考原文https://doc.janettr.com/install/manual/Step3—安装JDK17与JDK1.8Ambari3.0及部分Bigtop/Hadoop新组件强制要求JDK17,而HBase/Hive/Spark生态仍有组件长期依赖JDK1.8。因此推荐双版本共存方案,让集群灵活兼容各种大数据组件,满足未来升级和遗留需求。JDK17与JDK1.8可
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