鲁春利的工作笔记 ,好记性不如烂笔头
Java客户端:
org.apache.hadoop.hbase.client.HTable类:该类的读写是非线程安全的,不再作为client API提供给开发用户使用,建议通过Table类替代。
/**
* Creates an object to access a HBase table.
* @param conf Configuration object to use.
* @param tableName Name of the table.
* @throws IOException if a remote or network exception occurs
* @deprecated Constructing HTable objects manually has been deprecated.
* {@link Connection} to instantiate a {@link Table} instead.
*/
@Deprecated
public HTable(Configuration conf, final String tableName)
throws IOException {
this(conf, TableName.valueOf(tableName));
}
org.apache.hadoop.hbase.client.Table类:
org.apache.hadoop.hbase.client.HConnectionManager类:
org.apache.hadoop.hbase.client.HBaseAdmin类:
@InterfaceAudience.Private
@InterfaceStability.Evolving
public class HBaseAdmin implements Admin {
private static final Log LOG = LogFactory.getLog(HBaseAdmin.class);
// 略
@Deprecated
public HBaseAdmin(Configuration c)
throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
// Will not leak connections, as the new implementation of the constructor
// does not throw exceptions anymore.
this(ConnectionManager.getConnectionInternal(new Configuration(c)));
this.cleanupConnectionOnClose = true;
}
// 略
}
# 说明:HBaseAdmin不在作为客户端API使用,标记为Private表示为HBase-internal class。
# 使用Connection#getAdmin()来获取Admin实例。
org.apache.hadoop.hbase.client.ConnectionFactory类:
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class ConnectionFactoryextends Object
// Example:
Connection connection = ConnectionFactory.createConnection(config);
Table table = connection.getTable(TableName.valueOf("table1"));
try {
// Use the table as needed, for a single operation and a single thread
} finally {
table.close();
connection.close();
}
客户端使用示例:
package com.invic.hbase;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.PageFilter;
import org.apache.hadoop.hbase.util.Bytes;
/**
*
* @author lucl
* HBase的配置实例
*
*/
public class HBaseManagerMain {
private static final Log LOG = LogFactory.getLog(HBaseManagerMain.class);
// 在Eclipse中运行时报错如下
// Caused by: java.lang.ClassNotFoundException: org.apache.htrace.Trace
// Caused by: java.lang.NoClassDefFoundError: io/netty/channel/ChannelHandler
// 需要把单独的htrace-core-3.1.0-incubating.jar和netty-all-4.0.5.final.jar导入项目中
private static final String TABLE_NAME = "m_domain";
private static final String COLUMN_FAMILY_NAME = "cf";
/**
* @param args
*/
public static void main(String[] args) {
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.master", "nnode:60000");
conf.set("hbase.zookeeper.property.clientport", "2181");
conf.set("hbase.zookeeper.quorum", "nnode,dnode1,dnode2");
HBaseManagerMain manageMain = new HBaseManagerMain();
try {
/**
* HTable类读写时是非线程安全的,已经标记为Deprecated
* 建议通过org.apache.hadoop.hbase.client.Connection来获取实例
*/
Connection connection = ConnectionFactory.createConnection(conf);
Admin admin = connection.getAdmin();
/**
* 列出所有的表
*/
manageMain.listTables(admin);
/**
* 判断表m_domain是否存在
*/
boolean exists = manageMain.isExists(admin);
/**
* 存在就删除
*/
if (exists) {
manageMain.deleteTable(admin);
}
/**
* 创建表
*/
manageMain.createTable(admin);
/**
* 再次列出所有的表
*/
manageMain.listTables(admin);
/**
* 添加数据
*/
manageMain.putDatas(connection);
/**
* 检索数据-表扫描
*/
manageMain.scanTable(connection);
/**
* 检索数据-单行读
*/
manageMain.getData(connection);
/**
* 检索数据-根据条件
*/
manageMain.queryByFilter(connection);
/**
* 删除数据
*/
manageMain.deleteDatas(connection);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 列出表
* @param admin
* @throws IOException
*/
private void listTables (Admin admin) throws IOException {
TableName [] names = admin.listTableNames();
for (TableName tableName : names) {
LOG.info("Table Name is : " + tableName.getNameAsString());
}
}
/**
* 判断表是否存在
* @param admin
* @return
* @throws IOException
*/
private boolean isExists (Admin admin) throws IOException {
/**
* org.apache.hadoop.hbase.TableName为为代表了表名字的Immutable POJO class对象,
* 形式为:。
* static TableName valueOf(byte[] fullName)
* static TableName valueOf(byte[] namespace, byte[] qualifier)
* static TableName valueOf(ByteBuffer namespace, ByteBuffer qualifier)
* static TableName valueOf(String name)
* static TableName valueOf(String namespaceAsString, String qualifierAsString)
* HBase系统默认定义了两个缺省的namespace
* hbase:系统内建表,包括namespace和meta表
* default:用户建表时未指定namespace的表都创建在此
* 在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。
*
*/
TableName tableName = TableName.valueOf(TABLE_NAME);
boolean exists = admin.tableExists(tableName);
if (exists) {
LOG.info("Table " + tableName.getNameAsString() + " already exists.");
} else {
LOG.info("Table " + tableName.getNameAsString() + " not exists.");
}
return exists;
}
/**
* 创建表
* @param admin
* @throws IOException
*/
private void createTable (Admin admin) throws IOException {
TableName tableName = TableName.valueOf(TABLE_NAME);
LOG.info("To create table named " + TABLE_NAME);
HTableDescriptor tableDesc = new HTableDescriptor(tableName);
HColumnDescriptor columnDesc = new HColumnDescriptor(COLUMN_FAMILY_NAME);
tableDesc.addFamily(columnDesc);
admin.createTable(tableDesc);
}
/**
* 删除表
* @param admin
* @throws IOException
*/
private void deleteTable (Admin admin) throws IOException {
TableName tableName = TableName.valueOf(TABLE_NAME);
LOG.info("disable and then delete table named " + TABLE_NAME);
admin.disableTable(tableName);
admin.deleteTable(tableName);
}
/**
* 添加数据
* @param connection
* @throws IOException
*/
private void putDatas (Connection connection) throws IOException {
String [] rows = {"baidu.com_19991011_20151011", "alibaba.com_19990415_20220523"};
String [] columns = {"owner", "ipstr", "access_server", "reg_date", "exp_date"};
String [][] values = {
{"Beijing Baidu Technology Co.", "220.181.57.217", "北京", "1999年10月11日", "2015年10月11日"},
{"Hangzhou Alibaba Advertising Co.", "205.204.101.42", "杭州", "1999年04月15日", "2022年05月23日"}
};
TableName tableName = TableName.valueOf(TABLE_NAME);
byte [] family = Bytes.toBytes(COLUMN_FAMILY_NAME);
Table table = connection.getTable(tableName);
for (int i = 0; i < rows.length; i++) {
System.out.println("========================" + rows[i]);
byte [] rowkey = Bytes.toBytes(rows[i]);
Put put = new Put(rowkey);
for (int j = 0; j < columns.length; j++) {
byte [] qualifier = Bytes.toBytes(columns[j]);
byte [] value = Bytes.toBytes(values[i][j]);
put.addColumn(family, qualifier, value);
}
table.put(put);
}
table.close();
}
/**
* 检索数据-单行获取
* @param connection
* @throws IOException
*/
private void getData(Connection connection) throws IOException {
LOG.info("Get data from table " + TABLE_NAME + " by family.");
TableName tableName = TableName.valueOf(TABLE_NAME);
byte [] family = Bytes.toBytes(COLUMN_FAMILY_NAME);
byte [] row = Bytes.toBytes("baidu.com_19991011_20151011");
Table table = connection.getTable(tableName);
Get get = new Get(row);
get.addFamily(family);
// 也可以通过addFamily或addColumn来限定查询的数据
Result result = table.get(get);
List cells = result.listCells();
for (Cell cell : cells) {
String qualifier = new String(CellUtil.cloneQualifier(cell));
String value = new String(CellUtil.cloneValue(cell), "UTF-8");
// @Deprecated
// LOG.info(cell.getQualifier() + "\t" + cell.getValue());
LOG.info(qualifier + "\t" + value);
}
}
/**
* 检索数据-表扫描
* @param connection
* @throws IOException
*/
private void scanTable(Connection connection) throws IOException {
LOG.info("Scan table " + TABLE_NAME + " to browse all datas.");
TableName tableName = TableName.valueOf(TABLE_NAME);
byte [] family = Bytes.toBytes(COLUMN_FAMILY_NAME);
Scan scan = new Scan();
scan.addFamily(family);
Table table = connection.getTable(tableName);
ResultScanner resultScanner = table.getScanner(scan);
for (Iterator it = resultScanner.iterator(); it.hasNext(); ) {
Result result = it.next();
List cells = result.listCells();
for (Cell cell : cells) {
String qualifier = new String(CellUtil.cloneQualifier(cell));
String value = new String(CellUtil.cloneValue(cell), "UTF-8");
// @Deprecated
// LOG.info(cell.getQualifier() + "\t" + cell.getValue());
LOG.info(qualifier + "\t" + value);
}
}
}
/**
* 安装条件检索数据
* @param connection
*/
private void queryByFilter(Connection connection) {
// 简单分页过滤器示例程序
Filter filter = new PageFilter(15); // 每页15条数据
int totalRows = 0;
byte [] lastRow = null;
Scan scan = new Scan();
scan.setFilter(filter);
// 略
}
/**
* 删除数据
* @param connection
* @throws IOException
*/
private void deleteDatas(Connection connection) throws IOException {
LOG.info("delete data from table " + TABLE_NAME + " .");
TableName tableName = TableName.valueOf(TABLE_NAME);
byte [] family = Bytes.toBytes(COLUMN_FAMILY_NAME);
byte [] row = Bytes.toBytes("baidu.com_19991011_20151011");
Delete delete = new Delete(row);
// @deprecated Since hbase-1.0.0. Use {@link #addColumn(byte[], byte[])}
// delete.deleteColumn(family, qualifier); // 删除某个列的某个版本
delete.addColumn(family, Bytes.toBytes("owner"));
// @deprecated Since hbase-1.0.0. Use {@link #addColumns(byte[], byte[])}
// delete.deleteColumns(family, qualifier) // 删除某个列的所有版本
// @deprecated Since 1.0.0. Use {@link #(byte[])}
// delete.addFamily(family); // 删除某个列族
Table table = connection.getTable(tableName);
table.delete(delete);
}
}
转载于:https://blog.51cto.com/luchunli/1737117
你可能感兴趣的:(HBase-1.0.1学习笔记(五)HBase Java客户端)
废字
承晔儿
觉得很划算你下班后喜欢的话几点能到你的技术就觉得男的女的你没上课都觉得好滴呵呵英语u加肥加大记得记得几等奖阿姐大祭司i宋速度好的好的也是五盒合开四岁嘟嘟嘟嘟嘟嘟嘟嘟乳液呵呵呵呵决绝鳄鱼度地逗我们CN君度嘟嘟嘟四十度野葛根男滴
杭州市10家亲子鉴定中心机构地址一览(附2024最新收费标准)
国医基因孙主任
杭州亲子鉴定中心机构地址在哪里?杭州亲子鉴定中心机构地址在杭州市余杭区五常街道高顺路6号(杭州国医基因)。本文整理了杭州正规权威机构名录供大家参考,杭州有许多可以做dna亲子鉴定中心的机构,本文整理了杭州市正规dna亲子鉴定咨询机构及杭州市正规鉴定机构名录,部分机构不能进行亲子鉴定,请根据业务范围自行选择。杭州司法鉴定机构名单参考1、浙江省立同德医院司法鉴定所;浙江省杭州市余杭区五常街道五常大道华
231篇 觉察日志
语宝妈
今晚到家后,孩子说自己做了泡面吃,那我就自己解决晚餐了。满足的吃完晚餐后,我习惯靠墙站五分钟。靠墙站其实挺累,斋站着等时间会觉得很漫长,所以打开英语听演讲,这样时间就过得快多了。远远叫我,妈妈,我需要你的帮助。我走过去,看到远远又拼出一个新的乐高模型,现在需要穿绳子,我帮远远穿绳子,一起找零件,我真欣赏儿子这种专注和投入,特别让我佩服,陪儿子做他热爱的,我感觉也很好。以前远远让我陪伴他做的“游戏”
使用Ansible批量部署Zabbix Agent服务器
DpgrMl
服务器 ansible zabbix
Ansible是一种强大的自动化工具,可以帮助简化IT基础架构的部署和管理。在本文中,我们将使用Ansible来批量部署ZabbixAgent服务器。ZabbixAgent是一个用于监控和收集服务器指标的客户端程序,它允许Zabbix服务器通过Agent主动收集数据。以下是我们将要执行的步骤:安装Ansible:首先,我们需要在部署Ansible的主机上安装Ansible软件包。可以通过在终端中运
本地代理和服务器代理区别
就叫飞六吧
服务器 运维
两种代理模式对比模式1:本地代理(通过客户端)本地应用→本地客户端→远程服务器→目标地址(127.0.0.1:port)(真正的代理服务器)例子:Clash/V2Ray客户端在本地监听127.0.0.1:7890客户端连接到远程的Shadowsocks/VMess服务器实际上经过了两跳模式2:直连公网代理本地应用→代理服务器→目标地址(proxy.example.com:8080)例子:直接连接公
自考本科加分80,大专加分60,一线城市户口价值180万!
自考大集汇
很多人都不知道落户一线城市户口的好处,今天这篇文章带大家认识拥有一线城市户口的好处和价值、并能够根据自身条件尽快落入。现如今的一线城市,没有本地户籍的常住人口数量庞大。根据“十三五”规划,到今年2020年,深圳常住人口发展目标将达到1480万人。而作为一个人口过千万的城市,深圳的户籍人口仅300多万,人口结构出现严重倒挂。而一线城市的户口价值也是相对较大的,因此众多人挤破头也想拥有一线城市的户口,
2019.07.26跟老公吵嘴
lenal_cb96
时间:2019.07.26星期五闺女三周五【读经长智慧】读经人:闺女、妈妈。本周读经计划:《易经》噬he卦、bi卦,《诗经》12-25,《少年儿童诗词启蒙》141-150。《新概念英语》27【为自己而读】《道德经》第64遍。《易经》第8遍晚上吃完饭,问爸爸要陪闺女玩还是要洗碗,爸爸选择去洗碗。他洗碗有个习惯,就是把桌子上的碗一个一个拿进去洗,就是一个洗完再出来拿一个进去洗。我就觉得很难接受,洗碗不
傅临州白月光(自渡)完结版免费在线阅读_《自渡》全章节阅读_傅临州白月光(自渡)全文免费在线阅读_自渡完整版免费在线阅读_傅临州白月光(自渡)完结版免费在线阅读_《自渡》全章节阅读
全本全集小说
傅临州白月光(自渡)完结版免费在线阅读_《自渡》全章节阅读_傅临州白月光(自渡)全文免费在线阅读_自渡完整版免费在线阅读_傅临州白月光(自渡)完结版免费在线阅读_《自渡》全章节阅读主角配角:傅临州白月光简介:结婚第五年,我在微博看到傅临州与白月光同游法国的相拥照片,白月光配文——破镜也是可以重圆的我手滑不小心点了个赞,很快傅临州的电话打了过来他的语气冰冷无情,对我只有责怪:“江知念,你怎么那么爱显
【详细解析!】Python语法基础
小新在学习
python python 开发语言
python基础语法1.优先级:在运算代码的时候,我们优先级是先乘除后加减注意:1.1:在python中,2/3=0.666666而不是0;在python里面的相除就是数学意义上的相除1.2:某一个结果为1.666666666665,而不是667,是因为我们在编程里面是一般是没有四舍五入的概念的;这个结果我们在代码里面称之为浮点数.IEE745标准,在这套规则下,我们在内存中表示浮点数的时候,可能
HTTPie: 开发者友好的http客户端工具
fire-flyer
http 网络协议 restful 开发工具
一、HTTPie简介HTTPie是一个以开发者体验为核心的命令行HTTP客户端工具,目标是替代curl等传统工具,简洁优雅地发送HTTP请求并读取响应,尤其适用于调试、测试和日常开发中的RESTfulAPI操作。项目主页:HTTPie–APItestingclientthatflowswithyouGitHub:https://github.com/httpie/httpie二、核心特性功能类别H
贵妃将我虐待致死后,暴君杀疯了我皇上薛贵妃完结版小说全文免费阅读_完结的小说贵妃将我虐待致死后,暴君杀疯了我皇上薛贵妃
六小升
《贵妃将我虐待致死后,暴君杀疯了》主角:我皇上薛贵妃简介:我是医圣门下唯一女弟子。山中采药时,偶然救了一受伤少年。少年信誓旦旦,说长大定娶我为妻。我权当玩笑,没放心上。十年后,少年成为了一代暴君。在我和师兄的大婚之日,他带兵杀死我师兄,将我抢进了宫。“朕说过会娶你。你的夫君,只能是朕!”为表真心,他封我为后,独宠我一人。朝中大臣提出异议,便被五马分尸。可我不爱他,更无法接受这个杀我师兄的暴君。无论
2023-06-16
84fb7f2f5c31
#接龙20230616婚恋关系柯建希直播间金句今日主题:什么时候你感动了伴侣?今日歌曲:樱花树下的约定梦柯1.周五早上好!2.学习是要付出极大的努力。通过学习不断的超越自我,进入超我。3.电脑,手机,重启都会好,人生也一样。4.生命不止,学习不止。5.遇事不焦虑!淡定!6.不愿意学习重启人生,所以一直买单。7.找不到答案时,去看看世界,走进家文化工作坊,通过学习,还一个不一样的自己。8.不为学习买
Python 大数据分析(二)
绝不原创的飞龙
默认分类 默认分类
原文:annas-archive.org/md5/5058e6970bd2a8d818ecc1f7f8fef74a译者:飞龙协议:CCBY-NC-SA4.0第六章:第五章处理缺失值和相关性分析学习目标到本章结束时,你将能够:使用PySpark检测和处理数据中的缺失值描述变量之间的相关性计算PySpark中两个或多个变量之间的相关性使用PySpark创建相关矩阵在本章中,我们将使用Iris数据集处理
web前端进阶之Javascript设计模式面向对象篇
jia林
前言:在此说明Javascript设计模式所讲内容和知识点来自双越老师(wangEditor富文本开源作者)的视频,内容通俗易懂,受益匪浅,结合自己的学习心得整理成笔记,与大家分享,愿在前端的道路上越走越远.....从“写好代码”到“设计代码”的过程,不仅是技术的提升,更是编程思维的提升,而这其中最关键的就是设计模式,是否理解并掌握设计模式,也是衡量程序员能力的标准之一。学习前提使用过jquery
搜索技巧_野猫学习笔记
野猫行天下
自从进入互联网时代,学霸们就越来越霸不了了,因为现在学富五车的人根本干不过会找车的人,你再怎么学富五车,也干不过人家会网络搜索。因此,为了让大家能继续保持学霸的地位,我今天就来跟大家聊聊怎样找车——如何才能利用网络快、准、狠地解决自己的所有问题。01使用专业化、高效的网站什么叫专业化、高效的网站,以了解兰陵王为例,你可以在以下3个网站上搜索,很快就能全方位地了解他(学识力、颜值力、防御力、摧毁力,
爆单了!量化北恒私募实盘大赛周一丰不要信!盈利却因为流水不够无法提现,投票助力选号被骗苦不堪言!
天权顾问
量化北恒私募实盘大赛周一丰投票项目安全吗?量化北恒私募实盘大赛周一丰积分投票已经亏损被骗了怎么办?警惕!量化北恒私募实盘大赛周一丰十选五项目合法吗——杀猪盘骗局!被骗提不了款!提不了现!出不来金!不要上当!自古有句话讲得好“人善被欺、马善被骑”,现如今也是被骗子利用到了极致,人善就真该被欺骗吗?狡猾的骗子们就利用到了这点,利用同情心、爱心去进行诈骗,宣传公益捐款、爱心慈善打比赛来骗取资金!正常的投
redis秒杀之lua脚本
stand_forever
redis redis lua 数据库
Lua脚本核心原理:1.单线程模型:Redis使用单线程处理命令,所有命令按顺序执行。Lua脚本会被视为一个整体任务,执行期间不会被其他命令中断。2.原子性保证:将库存检查、扣减、订单记录等多个操作放在一个脚本中,会连续执行,中间不会有其他客户端操作插入。保证了脚本的原子性。3.无需锁机制:由于Redis的单线程特性,Lua脚本天然避免了并发冲突,无需额外加锁。实现流程:1.首先库存预热:活动开始
游戏分析-《第五人格》
M_Yan_9cdd
《第五人格》是网易首款非对称性对抗竞技手游。荒诞哥特画风,悬疑烧脑剧情。刺激的1V4对抗玩法,都将给玩家带来全新的游戏体验。玩家可以选择扮演监管者或求生者,展开激烈的对抗。游戏类型——可玩性竞技类游戏决定了游戏的玩法存在着对立的2方,基本上是建立在平等的对抗关系,并且存在合作的关系。但是《第五人格》是非对称性的,一方很强势但是孤军作战;一方比较缩小,多人合作,这一不对称的关系使玩家以多取胜或者以一
感恩日记第199天20190612
屈玉华
早上起来,有点儿流鼻涕,是要感冒的节奏,感恩身体提醒我要好好照顾自己!今天比较热,下午练队形对每个人都是考验,很多人都戴帽子、口罩,而我什么装备也没有,都说我抗晒,是我不喜欢把自己捂起来,至于晒黑,转换角度:难得有晒太阳的机会,补钙了!练了一个多小时,回单位上班,五点半离开办公室,忽然想朋友了,就给她打了个电话,她在加班,六点半才结束,我们就约见面了,想见就约了,不用刻意准备,一切都是那么自然,又
江枫沈棠(为爱入赘)全本免费在线阅读_江枫沈棠全集在线阅读_为爱入赘(江枫沈棠)全章节在线阅读_江枫沈棠全章节在线阅读_为爱入赘(江枫沈棠)最新章节在线阅读_(为爱入赘)最新章节在线阅读
全本全集小说
江枫沈棠(为爱入赘)全本免费在线阅读_江枫沈棠全集在线阅读_为爱入赘(江枫沈棠)全章节在线阅读_江枫沈棠全章节在线阅读_为爱入赘(江枫沈棠)最新章节在线阅读_(为爱入赘)最新章节在线阅读主角配角:江枫沈棠简介:7她习惯性指责的话说完,林晟唇角勾起得意的笑我整个人气的胸腔剧烈地起伏颤抖没想到到了今天,她竟然连站出来承认自己错误的勇气都没有!女儿是从她身上掉下来的肉,她却能绝情到这种程度这就是我爱了五
12月18日总结:黄芪桂枝五物汤及黄芪的药性(续)
茫茫宠
治疗脱肛或者治疗痔疮这个提一下的,黄芪这个药物它本来就是一个会沿着人的三焦把人体的很多东西托起来的药,黄芪10枳壳1你要治胃下垂啦,子宫下垂啦,或者是脱肛。痔疮药里面常常有枳壳,枳壳是用来宽肠的。慢性的对于淋巴的结块,最有效的药物,是桂枝系。淋巴结块大腿内部鼠蹊部位的,当归四逆汤常年虚劳气血不通这个淋巴结块那用,小建中汤,黄芪建中汤。虚劳的淋巴结块,那是桂枝汤系比较有用。黄芪建中汤的效果会走到三焦
秋园(五,田四送人,仁受离世)
博学的毛婆婆
昨天讲了,秋园一家到了要靠讨米过日子,但讨米终究不是长久办法,仁受、秋园一家接下来怎么填饱这么多肚子呢?仁受还在关押,一家人除了吃饭整天就在大路上看路的尽头,盼望仁受能早日回来。而在这期间第5个孩子田四出生。第7天上仁受回来了,秋园看着沧桑憔悴的仁受忍不住哭了。转眼间,冬天到了5口之家,仅有一场破棉絮,仁受提议有一外甥欠自己的钱就没还过,可以去他家里看看能否救济一下。秋园带着之骅去了,一进门没提还
岁月流淌的洋峪河(五)
关中文苑
王东海五箩圈腿的哥哥嘿嘿嘿一笑,‘这有啥呢!说就说嘛。’他一拍自己的胸脯再一拍身边的弟弟继续说道,‘我叫吴连喜,我弟弟叫吴连福,我俩是双胞胎,我比他只大了半天;我的家在商州东城青石桥街,是当地有名的猎户,十六岁那年冬天,我跟爷爷出猎五峰山时,突然的一场暴风雪耽搁了行程,歇在黑风崖一户周姓人家,认识了比我大两岁的彩凤姑娘,我俩一见倾心,彼此爱慕,她的父母更是欢心满意,放开让我们谈心相处,几天下来我们
替身退场去父留子,总裁急疯了苏溪傅晏辞(精彩新书)完整全集免费阅读
九月文楼
替身退场去父留子,总裁急疯了苏溪傅晏辞(精彩新书)完整全集免费阅读主角:苏溪傅晏辞简介:结婚一年,不过是一场笑话。也是苏溪作茧自缚换来的结果。“我们离婚吧!”苏溪把离婚协议放在了傅晏辞的办公桌上。男人脸色有些发沉,声音清冷,“苏溪,欲情故纵对我来说,没有任何用。”“正牌都回来了,我一个赝品,摆在傅家不合适。”苏溪藏起已经怀有一个月的身孕,毅然离开傅家。五年后,苏溪成为了一名著名的室内设计师,带着儿
05/09先秦小记·真实的禅让制
开心果子
昨天写到通过黄帝战蚩尤的故事,捋顺了三皇五帝的关系,三皇五帝的统治时期才是家天下真正的开始。今天我们来看看尧、舜、禹的禅让制。尧是帝喾之子,帝喾是黄帝的曾孙。舜是黄帝的八世孙,还娶了尧的女儿娥皇和女英。禹是黄帝的玄孙,颛顼的孙子,帝喾是颛顼的侄子。当然在上古时代,一颗族群部落,随着几代人的繁衍,必然是相互之间都有血缘关系。那为什么没有人定义为家天下,而是禅让制呢?当时的部落首领也确实是有德者居之,
30年的梦
三金九
第二百五十八章(七字)(我明白,是人性在起作用,我做错事会责备任何人,但绝不责备自己。我扮演着愚蠢的人去批评、指责和抱怨。我时常会付诸实践,证明我是对的。真正自控的高尚人格才懂得理解和宽容。)2018年某月某日晚上八点多,我坐公交车到了罗湖xx公交站牌。我下车之后,顺着大道往南边荔枝树林方向走着。过了半小时,我走到了大道路边的草沟黑洞旁边。我往黑洞里面喊着,你在吗?这时,流浪汉从黑洞里面走出来,爬
快速排序Java代码简洁实现
SKY技术修炼指南
算法
学习过数据结构的同学们都知道,快速排序算法是一种时间复杂度为O(nlogn)的排序算法,在各种排序算法中算是较为高效的方法,企业面试中也经常有手撕快排的环节。本文将阐述算法的基本思想,并用Java代码的形式实现快速排序代码。算法思想快速排序主要采用分治的基本思想,每次将一个位置上的数据归位,此时该数左边的所有数据都比该数小,右边所有的数据都比该数大,然后递归将已归位的数据左右两边再次进行快排,从而
如何防止重复提交订单?
天天摸鱼的java工程师
java
如何防止重复提交订单?作者:Java后端开发工程师一、背景介绍:为什么会产生重复提交?在电商平台中,用户提交订单是一个非常敏感的动作。这通常涉及:库存扣减优惠券核销支付下单消息发送但用户总喜欢:点两次“提交订单”按钮网络卡顿时刷新页面使用浏览器回退再次提交结果就是:重复提交订单,造成资源浪费,甚至业务损失!二、问题分析:重复提交的常见场景场景示例用户行为多次点击按钮、浏览器刷新接口幂等性差接口无幂
如何设计一个高并发短链接服务(如 bit.ly)?
天天摸鱼的java工程师
java
如何设计一个高并发短链接服务(如bit.ly)?引言:在社交媒体营销、短信推广等场景中,短链接服务已成为互联网基础设施的关键组件。全球每天有数十亿短链接被创建,如Bitly、TinyURL等服务每天处理数十亿请求。作为一名拥有8年经验的Java架构师,我曾主导设计过日处理千万级短链接的系统。今天我将从原理到实现,深度解析如何构建一个高性能、高可用、可扩展的短链接服务。一、业务场景与技术挑战1.1核
如何将电商单体应用拆分为微服务?拆分粒度如何权衡?
天天摸鱼的java工程师
微服务 java
如何将电商单体应用拆分为微服务?拆分粒度如何权衡?引言:在电商行业高速发展的今天,系统扩展性和交付速度成为核心竞争力。许多企业初期采用单体架构快速上线,但随着业务规模扩大,单体应用逐渐成为制约发展的瓶颈。你是否也面临这样的挑战:代码库臃肿不堪、发布周期越来越长、局部故障导致全局瘫痪、技术栈升级举步维艰?作为一名有8年开发经验的Java工程师,我曾主导多个大型电商系统的微服务拆分。今天我将分享从业务
HttpClient 4.3与4.3版本以下版本比较
spjich
java httpclient
网上利用java发送http请求的代码很多,一搜一大把,有的利用的是java.net.*下的HttpURLConnection,有的用httpclient,而且发送的代码也分门别类。今天我们主要来说的是利用httpclient发送请求。
httpclient又可分为
httpclient3.x
httpclient4.x到httpclient4.3以下
httpclient4.3
Essential Studio Enterprise Edition 2015 v1新功能体验
Axiba
.net
概述:Essential Studio已全线升级至2015 v1版本了!新版本为JavaScript和ASP.NET MVC添加了新的文件资源管理器控件,还有其他一些控件功能升级,精彩不容错过,让我们一起来看看吧!
syncfusion公司是世界领先的Windows开发组件提供商,该公司正式对外发布Essential Studio Enterprise Edition 2015 v1版本。新版本
[宇宙与天文]微波背景辐射值与地球温度
comsci
背景
宇宙这个庞大,无边无际的空间是否存在某种确定的,变化的温度呢?
如果宇宙微波背景辐射值是表示宇宙空间温度的参数之一,那么测量这些数值,并观测周围的恒星能量输出值,我们是否获得地球的长期气候变化的情况呢?
&nbs
lvs-server
男人50
server
#!/bin/bash
#
# LVS script for VS/DR
#
#./etc/rc.d/init.d/functions
#
VIP=10.10.6.252
RIP1=10.10.6.101
RIP2=10.10.6.13
PORT=80
case $1 in
start)
/sbin/ifconfig eth2:0 $VIP broadca
java的WebCollector爬虫框架
oloz
爬虫
WebCollector主页:
https://github.com/CrawlScript/WebCollector
下载:webcollector-版本号-bin.zip将解压后文件夹中的所有jar包添加到工程既可。
接下来看demo
package org.spider.myspider;
import cn.edu.hfut.dmic.webcollector.cra
jQuery append 与 after 的区别
小猪猪08
1、after函数
定义和用法:
after() 方法在被选元素后插入指定的内容。
语法:
$(selector).after(content)
实例:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></scr
mysql知识充电
香水浓
mysql
索引
索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。
根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。
大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;
MYISAM和InnoDB存储引擎
我的架构经验系列文章索引
agevs
架构
下面是一些个人架构上的总结,本来想只在公司内部进行共享的,因此内容写的口语化一点,也没什么图示,所有内容没有查任何资料是脑子里面的东西吐出来的因此可能会不准确不全,希望抛砖引玉,大家互相讨论。
要注意,我这些文章是一个总体的架构经验不针对具体的语言和平台,因此也不一定是适用所有的语言和平台的。
(内容是前几天写的,现附上索引)
前端架构 http://www.
Android so lib库远程http下载和动态注册
aijuans
andorid
一、背景
在开发Android应用程序的实现,有时候需要引入第三方so lib库,但第三方so库比较大,例如开源第三方播放组件ffmpeg库, 如果直接打包的apk包里面, 整个应用程序会大很多.经过查阅资料和实验,发现通过远程下载so文件,然后再动态注册so文件时可行的。主要需要解决下载so文件存放位置以及文件读写权限问题。
二、主要
linux中svn配置出错 conf/svnserve.conf:12: Option expected 解决方法
baalwolf
option
在客户端访问subversion版本库时出现这个错误:
svnserve.conf:12: Option expected
为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,如### This file controls the configuration of the svnserve daemon, if you##
MongoDB的连接池和连接管理
BigCat2013
mongodb
在关系型数据库中,我们总是需要关闭使用的数据库连接,不然大量的创建连接会导致资源的浪费甚至于数据库宕机。这篇文章主要想解释一下mongoDB的连接池以及连接管理机制,如果正对此有疑惑的朋友可以看一下。
通常我们习惯于new 一个connection并且通常在finally语句中调用connection的close()方法将其关闭。正巧,mongoDB中当我们new一个Mongo的时候,会发现它也
AngularJS使用Socket.IO
bijian1013
JavaScript AngularJS Socket.IO
目前,web应用普遍被要求是实时web应用,即服务端的数据更新之后,应用能立即更新。以前使用的技术(例如polling)存在一些局限性,而且有时我们需要在客户端打开一个socket,然后进行通信。
Socket.IO(http://socket.io/)是一个非常优秀的库,它可以帮你实
[Maven学习笔记四]Maven依赖特性
bit1129
maven
三个模块
为了说明问题,以用户登陆小web应用为例。通常一个web应用分为三个模块,模型和数据持久化层user-core, 业务逻辑层user-service以及web展现层user-web,
user-service依赖于user-core
user-web依赖于user-core和user-service
依赖作用范围
Maven的dependency定义
【Akka一】Akka入门
bit1129
akka
什么是Akka
Message-Driven Runtime is the Foundation to Reactive Applications
In Akka, your business logic is driven through message-based communication patterns that are independent of physical locatio
zabbix_api之perl语言写法
ronin47
zabbix_api之perl
zabbix_api网上比较多的写法是python或curl。上次我用java--http://bossr.iteye.com/blog/2195679,这次用perl。for example: #!/usr/bin/perl
use 5.010 ;
use strict ;
use warnings ;
use JSON :: RPC :: Client ;
use
比优衣库跟牛掰的视频流出了,兄弟连Linux运维工程师课堂实录,更加刺激,更加实在!
brotherlamp
linux运维工程师 linux运维工程师教程 linux运维工程师视频 linux运维工程师资料 linux运维工程师自学
比优衣库跟牛掰的视频流出了,兄弟连Linux运维工程师课堂实录,更加刺激,更加实在!
-----------------------------------------------------
兄弟连Linux运维工程师课堂实录-计算机基础-1-课程体系介绍1
链接:http://pan.baidu.com/s/1i3GQtGL 密码:bl65
兄弟连Lin
bitmap求哈密顿距离-给定N(1<=N<=100000)个五维的点A(x1,x2,x3,x4,x5),求两个点X(x1,x2,x3,x4,x5)和Y(
bylijinnan
java
import java.util.Random;
/**
* 题目:
* 给定N(1<=N<=100000)个五维的点A(x1,x2,x3,x4,x5),求两个点X(x1,x2,x3,x4,x5)和Y(y1,y2,y3,y4,y5),
* 使得他们的哈密顿距离(d=|x1-y1| + |x2-y2| + |x3-y3| + |x4-y4| + |x5-y5|)最大
map的三种遍历方法
chicony
map
package com.test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class TestMap {
public static v
Linux安装mysql的一些坑
chenchao051
linux
1、mysql不建议在root用户下运行
2、出现服务启动不了,111错误,注意要用chown来赋予权限, 我在root用户下装的mysql,我就把usr/share/mysql/mysql.server复制到/etc/init.d/mysqld, (同时把my-huge.cnf复制/etc/my.cnf)
chown -R cc /etc/init.d/mysql
Sublime Text 3 配置
daizj
配置 Sublime Text
Sublime Text 3 配置解释(默认){// 设置主题文件“color_scheme”: “Packages/Color Scheme – Default/Monokai.tmTheme”,// 设置字体和大小“font_face”: “Consolas”,“font_size”: 12,// 字体选项:no_bold不显示粗体字,no_italic不显示斜体字,no_antialias和
MySQL server has gone away 问题的解决方法
dcj3sjt126com
SQL Server
MySQL server has gone away 问题解决方法,需要的朋友可以参考下。
应用程序(比如PHP)长时间的执行批量的MYSQL语句。执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。都容易引起MySQL server has gone away。 今天遇到类似的情景,MySQL只是冷冷的说:MySQL server h
javascript/dom:固定居中效果
dcj3sjt126com
JavaScript
<!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&
使用 Spring 2.5 注释驱动的 IoC 功能
e200702084
spring bean 配置管理 IOC Office
使用 Spring 2.5 注释驱动的 IoC 功能
developerWorks
文档选项
将打印机的版面设置成横向打印模式
打印本页
将此页作为电子邮件发送
将此页作为电子邮件发送
级别: 初级
陈 雄华 ( [email protected] ), 技术总监, 宝宝淘网络科技有限公司
2008 年 2 月 28 日
&nb
MongoDB常用操作命令
geeksun
mongodb
1. 基本操作
db.AddUser(username,password) 添加用户
db.auth(usrename,password) 设置数据库连接验证
db.cloneDataBase(fromhost)
php写守护进程(Daemon)
hongtoushizi
PHP
转载自: http://blog.csdn.net/tengzhaorong/article/details/9764655
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。php也可以实现守护进程的功能。
1、基本概念
&nbs
spring整合mybatis,关于注入Dao对象出错问题
jonsvien
DAO spring bean mybatis prototype
今天在公司测试功能时发现一问题:
先进行代码说明:
1,controller配置了Scope="prototype"(表明每一次请求都是原子型)
@resource/@autowired service对象都可以(两种注解都可以)。
2,service 配置了Scope="prototype"(表明每一次请求都是原子型)
对象关系行为模式之标识映射
home198979
PHP 架构 企业应用 对象关系 标识映射
HELLO!架构
一、概念
identity Map:通过在映射中保存每个已经加载的对象,确保每个对象只加载一次,当要访问对象的时候,通过映射来查找它们。其实在数据源架构模式之数据映射器代码中有提及到标识映射,Mapper类的getFromMap方法就是实现标识映射的实现。
二、为什么要使用标识映射?
在数据源架构模式之数据映射器中
//c
Linux下hosts文件详解
pda158
linux
1、主机名: 无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。 公网:IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。 局域网:每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机
nginx配置文件粗解
spjich
java nginx
#运行用户#user nobody;#启动进程,通常设置成和cpu的数量相等worker_processes 2;#全局错误日志及PID文件#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log inf
数学函数
w54653520
java
public
class
S {
// 传入两个整数,进行比较,返回两个数中的最大值的方法。
public
int
get(
int
num1,
int
nu
| |