- 浏览: 146243 次
- 性别:
- 来自: 哈尔滨
-
最新评论
-
yuesen0007:
厉害
MySQL逗号分割字段的行列转换技巧(转载) -
书音棋:
107x 写道 不错,谢谢!很早之前搞的,希望对你有用。
hive优化之------控制hive任务中的map数和reduce数 -
书音棋:
chwshuang 写道感觉哥们是做开发的,不是专门做测试的! ...
压力测试你应该知道的几个道理 -
chwshuang:
感觉哥们是做开发的,不是专门做测试的!因为我也深有体会!不知道 ...
压力测试你应该知道的几个道理 -
107x:
不错,谢谢!
hive优化之------控制hive任务中的map数和reduce数
1、需要的jar包:
commons-codec-1.4.jar
commons-logging-1.0.4.jar
hadoop-0.20.2-core.jar
hbase-0.20.6.jar
log4j-1.2.15.jar
zookeeper-3.2.2.jar
2、已有表结构:
1、表名:scores
2、列族:
course:art
course:math
grade:
3、scan 'scores'的内容:
ROW COLUMN+CELL
Jerry column=course:art, timestamp=1301294630194, value=80
Jerry column=course:math, timestamp=1301294630132, value=100
Jerry column=grade:, timestamp=1301294630073, value=2
Jim column=course:art, timestamp=1301294630363, value=97
Jim column=course:math, timestamp=1301294630305, value=100
Jim column=grade:, timestamp=1301294630247, value=3
Tom column=course:art, timestamp=1301294630015, value=97
Tom column=course:math, timestamp=1301294629987, value=87
Tom column=grade:, timestamp=1301294629931, value=1
package org.myhbase;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
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.filter.FilterList;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.io.Cell;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseBasic03 {
private static HBaseConfiguration hbaseConfig=null;
static{
Configuration config=new Configuration();
config.set("hbase.zookeeper.quorum","192.168.10.149,192.168.10.44,192.168.10.49");
config.set("hbase.zookeeper.property.clientPort", "2181");
hbaseConfig=new HBaseConfiguration(config);
}
/**
* get方式,通过rowKey查询
* @param tablename
* @param rowKey
* @throws IOException
*/
public static void selectByRowKey(String tablename,String rowKey) throws IOException{
HTable table=new HTable(hbaseConfig,tablename);
Get g = new Get(Bytes.toBytes(rowKey));
Result r=table.get(g);
for(KeyValue kv:r.raw()){
System.out.println("column: "+new String(kv.getColumn()));
System.out.println("value: "+new String(kv.getValue()));
}
}
/**
* get方式,通过rowKey、column查询
* @param tablename
* @param rowKey
* @param column
* @throws IOException
*/
public static void selectByRowKeyColumn(String tablename,String rowKey,String column) throws IOException{
HTable table=new HTable(hbaseConfig,tablename);
Get g = new Get(Bytes.toBytes(rowKey));
g.addColumn(Bytes.toBytes(column));
Result r=table.get(g);
for(KeyValue kv:r.raw()){
System.out.println("column: "+new String(kv.getColumn()));
System.out.println("value: "+new String(kv.getValue()));
}
}
public static void selectByFilter(String tablename,List<String> arr) throws IOException{
HTable table=new HTable(hbaseConfig,tablename);
FilterList filterList = new FilterList();
Scan s1 = new Scan();
for(String v:arr){ // 各个条件之间是“与”的关系
String [] s=v.split(",");
filterList.addFilter(new SingleColumnValueFilter(Bytes.toBytes(s[0]),
Bytes.toBytes(s[1]),
CompareOp.EQUAL,Bytes.toBytes(s[2])
)
);
// 添加下面这一行后,则只返回指定的cell,同一行中的其他cell不返回
// s1.addColumn(Bytes.toBytes(s[0]), Bytes.toBytes(s[1]));
}
s1.setFilter(filterList);
ResultScanner ResultScannerFilterList = table.getScanner(s1);
for(Result rr=ResultScannerFilterList.next();rr!=null;rr=ResultScannerFilterList.next()){
for(KeyValue kv:rr.list()){
System.out.println("row : "+new String(kv.getRow()));
System.out.println("column : "+new String(kv.getColumn()));
System.out.println("value : "+new String(kv.getValue()));
}
}
}
public static void main(String [] args) throws IOException{
// 按rowkey查询,查询Tom行的所有cell
HBaseBasic03.selectByRowKey("scores","Tom");
// 按rokey 和 column 来查询,查询Tom行course列族的所有列值
HBaseBasic03.selectByRowKeyColumn("scores","Tom","course");
// Filter多条件查询,条件:查询 course列族中art列值为97 ,且 course列族中math列值为100的行
List<String> arr=new ArrayList<String>();
arr.add("course,art,97");
arr.add("course,math,100");
HBaseBasic03.selectByFilter("scores",arr);
}
}
1.连接HBase中的表testtable,用户名:root,密码:root
public void ConnectHBaseTable()
{
Configuration conf = new Configuration();
conf.set("hadoop.job.ugi", "root,root");
HBaseConfiguration config = new HBaseConfiguration();
try
{
table = new HTable(config, "testtable");
}catch(Exception e){e.printStackTrace();}
}
2.根据行名name获得一行数据,存入Result.注意HBase中的表数据是字节存储的。
下面的例子表示获得行名为name的行的famA列族col1列的数据。
String rowId = "name";
Get get = new Get(rowId);
Result result = hTable.get(get);
byte[] value = result.getValue(famA, col1);
System.out.println(Bytes.toString(value));
3.向表中存数据
下面的例子表示写入一行。行名为abcd,famA列族col1列的数据为"hello world!"。
byte[] rowId = Bytes.toBytes("abcd");
byte[] famA = Bytes.toBytes("famA");
byte[] col1 = Bytes.toBytes("col1");
Put put = new Put(rowId).
add(famA, col1, Bytes.toBytes("hello world!"));
hTable.put(put);
4.扫描的用法(scan):便于获得自己需要的数据,相当于SQL查询。
byte[] famA = Bytes.toBytes("famA");
byte[] col1 = Bytes.toBytes("col1");
HTable hTable = new HTable("test");
//表示要查询的行名是从a开始,到z结束。
Scan scan = new Scan(Bytes.toBytes("a"), Bytes.toBytes("z"));
//用scan.setStartRow(Bytes.toBytes(""));设置起始行
//用scan.setStopRow(Bytes.toBytes(""));设置终止行
//表示查询famA族col1列
scan.addColumn(famA, col1);
//注意,下面是filter的写法。相当于SQL的where子句
//表示famA族col1列的数据等于"hello world!"
SingleColumnValueFilter singleColumnValueFilterA = new SingleColumnValueFilter(
famA, col1, CompareOp.EQUAL, Bytes.toBytes("hello world!"));
singleColumnValueFilterA.setFilterIfMissing(true);
//表示famA族col1列的数据等于"hello hbase!"
SingleColumnValueFilter singleColumnValueFilterB = new SingleColumnValueFilter(
famA, col1, CompareOp.EQUAL, Bytes.toBytes("hello hbase!"));
singleColumnValueFilterB.setFilterIfMissing(true);
//表示famA族col1列的数据是两者中的一个
FilterList filter = new FilterList(Operator.MUST_PASS_ONE, Arrays
.asList((Filter) singleColumnValueFilterA,
singleColumnValueFilterB));
scan.setFilter(filter);
ResultScanner scanner = hTable.getScanner(scan);
//遍历每个数据
for (Result result : scanner) {
System.out.println(Bytes.toString(result.getValue(famA, col1)));
}
5.上面的代码容易出错的地方在于,需要导入HBase的类所在的包。导入时需要选择包,由于类可能出现在HBase的各个子包中,所以要选择好,下面列出常用的包。尽量用HBase的包
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
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.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.FilterList.Operator;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
6.下面列出HBase常用的操作
(1)时间戳到时间的转换.单一的时间戳无法给出直观的解释。
public String GetTimeByStamp(String timestamp)
{
long datatime= Long.parseLong(timestamp);
Date date=new Date(datatime);
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
String timeresult=format.format(date);
System.out.println("Time : "+timeresult);
return timeresult;
}
(2)时间到时间戳的转换。注意时间是字符串格式。字符串与时间的相互转换,此不赘述。
public String GetStampByTime(String time)
{
String Stamp="";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date;
try
{
date=sdf.parse(time);
Stamp=date.getTime()+"000";
System.out.println(Stamp);
}catch(Exception e){e.printStackTrace();}
return Stamp;
}
发表评论
-
压力测试你应该知道的几个道理
2016-03-11 12:03 270631.从压力测试说 ... -
压力测试你应该知道的几个道理
2016-02-25 17:41 371.从压力测试说起 压 ... -
MySQL逗号分割字段的行列转换技巧(转载)
2013-07-24 19:10 28560前言: 由于很多业务表因为历史原因或者性能原因,都 ... -
MongoDB shell命令行的使用
2013-03-26 17:21 1207首先要启动MongoDB shell工具,即bin下的mo ... -
HBase Merging Regions
2013-03-09 09:45 2177我承认我之前不知道hbase还能做merge region操 ... -
datanode或者tasktracker crash
2013-03-04 19:29 1123有的时候, datanode或者tasktracker c ... -
Tomcat线程池设置
2012-12-24 15:57 1688在Tomcat6下可以更改配置,为Tomcat更改线程池实现: ... -
Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
2012-12-21 17:01 940tomcat的运行模式有3种.修改他们的运行模式.3种模 ... -
安装m2eclipse插件 (转载)
2012-12-19 14:22 10341. 安装m2eclipse插件 要用Eclips ... -
mysql定时器
2012-10-18 11:35 1852ALTER EVENT `testEvent` ON S ... -
Command模式(命令)
2012-09-14 10:01 1269Command模式(命令) Java深入到一 ... -
hive导出查询结果到本地文件
2012-08-15 15:00 7342最近在使用hive时,需要将hive查询的数据导出到本地文件系 ... -
hive 调优(转)
2012-08-15 14:27 1194优化时,把hive sql当做map reduce程序来 ... -
使用hive读取hbase数据
2012-08-15 10:25 5090Mapr框架安装完后,安装与配置hbase、hive。其 ... -
hive的Specified key was too long; max key length is 767 bytes问题解决
2012-08-14 15:08 4381当在hive中show table 时如果报以下错时 ... -
M2_REPO介绍
2012-08-13 22:32 1187M2_REPO是一个用来定义 maven 2仓库在硬盘中 ... -
hadoop优化
2012-08-13 22:16 979从三个方面着手优化 :1. hadoop配置2. 设计mapr ... -
大数据量处理(转载)
2012-08-10 15:23 15821. 给定a、b两个文件,各存放50亿个url,每个url各占 ... -
js url传参 中文乱码
2012-07-13 15:41 2541在项目中经常回存在通过JS去请求操作的事件发生,而这些请 ... -
hadoop hbase Ganglia 汇总
2012-07-09 17:16 21169.2.1. hbase.regionserver.bl ...
相关推荐
编译环境Windows 或 LinuxJava 8,64 位Maven 3.1.1+(用于构建)可持续发展蜂巢黑斑羚sparksql急板钻头hbase 上的 sql(phoenix)注presto所支持的jdk为1.8+,即如果该客户端使用的不是1.8+,则无法连接!...
编译环境Windows or LinuxJava 8, 64-bitMaven 3.1.1+ (for building)支持组件hiveimpalasparksqlprestodrillsql on hbase(phoenix)注意presto 所支持的jdk为1.8+,即如果该客户端使用的不是1.8+,则无法连接!...
这一协议规定了转载和使用文档内容时的限制,以保护内容的原作者权益,禁止将内容以任何不能直接下载的形式展现,以及任何以获利为目的的用途。 总体来看,这份文档内容全面,不仅提供了大数据平台搭建所需的技术...
基于Django花卉商城系统的设计与实现_2885fb37--.zip
智慧农业,作为现代农业的新篇章,正引领着农业生产的革命性变革。本解决方案以物联网、云计算、大数据等先进技术为核心,为农业生产打造了一套全面、智能的管理系统。 想象一下,从温室大棚到广袤田野,智能传感器遍布每个角落,它们能实时感知空气温湿度、土壤水分、光照强度等环境参数,仿佛为农作物装上了“眼睛”和“耳朵”。这些数据通过物联网技术传输到云端,经过大数据分析,为农民提供精准的种植建议,如何时灌溉、施肥、防虫,让农业生产变得更加科学、高效。 更有趣的是,通过智慧农业平台,农民可以远程监控作物生长情况,甚至用手机就能控制温室大棚的遮阳板、通风设备等,实现“指尖上的农业”。此外,方案还包含了农产品可追溯系统,从田间到餐桌,每一步都可追溯,让消费者吃得放心。而智慧农业电商平台,则让农产品销售更加便捷,农民直接对接市场,收益倍增。 总之,这套智慧农业解决方案不仅让农业生产变得更加智能、高效,还提升了农产品的质量和安全,为农民带来了实实在在的收益,开启了农业现代化的新篇章。 对于想要投身智慧农业领域的你来说,这不仅仅是一套解决方案,更是一把开启现代农业大门的钥匙,引领你走向更加辉煌的未来。
内容概要:本文档详细介绍了DeepSeek本地部署与WebUI可视化的一般步骤。本地部署方面,涵盖了环境准备(硬件要求如多核CPU、8GB以上内存或带适当显存的NVIDIA GPU,软件环境涵盖操作系统如Ubuntu 20.04及以上版本、Python环境及依赖库如PyTorch或TensorFlow)、获取DeepSeek模型代码和权重(通过官方仓库克隆代码,从指定渠道下载权重)、模型配置与启动(配置模型参数,运行启动脚本以初始化模型和服务)。WebUI可视化部分则推荐了Streamlit和Gradio两种框架,介绍了它们的安装、使用方法(通过编写脚本调用DeepSeek API构建交互界面),以及集成与部署(确保WebUI与模型服务之间的数据正确传递,在本地运行后可通过浏览器访问)。 适合人群:对深度学习模型部署有一定了解的技术人员,尤其是那些希望将DeepSeek模型应用于本地环境并提供用户友好界面的研发人员。 使用场景及目标:①为希望在本地环境中运行DeepSeek模型的研究者或开发者提供详细的部署指南;②帮助用户快速搭建一个带有图形化操作界面的DeepSeek应用,降低使用门槛,提高用户体验。 阅读建议:在阅读时,应根据自己的操作系统环境和硬件条件调整相应的配置要求,同时注意按照官方文档的具体指引操作,确保各组件版本兼容,以便顺利完成部署和可视化工作。
MISRA C 2014和MISRA CPP 2008版本
Revit2024二次开发之安装Addin
内容概要:本文详细介绍了文生视频大模型及AI人应用方案的设计与实现。文章首先阐述了文生视频大模型的技术基础,包括深度生成模型、自然语言处理(NLP)和计算机视觉(CV)的深度融合,以及相关技术的发展趋势。接着,文章深入分析了需求,包括用户需求、市场现状和技术需求,明确了高效性、个性化和成本控制等关键点。系统架构设计部分涵盖了数据层、模型层、服务层和应用层的分层架构,确保系统的可扩展性和高效性。在关键技术实现方面,文章详细描述了文本解析与理解、视频生成技术、AI人交互技术和实时处理与反馈机制。此外,还探讨了数据管理与安全、系统测试与验证、部署与维护等重要环节。最后,文章展示了文生视频大模型在教育、娱乐和商业领域的应用场景,并对其未来的技术改进方向和市场前景进行了展望。 适用人群:具备一定技术背景的研发人员、产品经理、数据科学家以及对AI视频生成技术感兴趣的从业者。 使用场景及目标:①帮助研发人员理解文生视频大模型的技术实现和应用场景;②指导产品经理在实际项目中应用文生视频大模型;③为数据科学家提供技术优化和模型改进的思路;④让从业者了解AI视频生成技术的市场潜力和发展趋势。 阅读建议:本文内容详尽,涉及多个技术细节和应用场景,建议读者结合自身的专业背景和技术需求,重点阅读与自己工作相关的章节,并结合实际项目进行实践和验证。
黑板风格毕业答辩模板是一系列富有创意和趣味性的答辩文档模板,专为追求独特表达的大学生设计。这25个模板模拟了传统黑板的效果,结合了手绘风格与现代设计理念,使得内容呈现既生动又具学术感。每个模板都强调清晰的结构和易于理解的布局,适用于各类学科和研究领域,帮助学生有效地展示研究成果和核心观点。 黑板风格不仅带来亲切感,还能唤起人们对课堂学习的回忆,为答辩增添了轻松而专业的氛围。这些模板配备了丰富的图标、示意图和配色,既美观又实用,能够帮助学生在答辩中更好地吸引评审的注意力,增强信息的传达效果。无论是科技、艺术还是人文社科,黑板风格毕业答辩模板都能够为你的演示增添一份独特的魅力,提升你的表现,助力你在毕业答辩中取得成功。
delphi_ACCESS宠物医院
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
DDS Accepted Assessment Instruments DDS 认可的评估工具.doc
mysql安装配置教程 本教程将指导您在Windows操作系统上安装和配置MySQL数据库,适用于MySQL 8.0及以上版本。本教程以清晰的步骤说明,确保初学者也能顺利完成安装和基本配置。
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
内容概要:《智慧教育应用发展研究报告(2025年)》由中国信息通信研究院发布,全面梳理了全球及我国智慧教育的发展现状和趋势。报告指出,智慧教育通过多种数字技术促进教育模式、管理模式和资源生成等方面的变革。国外经济体如欧盟、美国、韩国和日本纷纷通过顶层设计推动智慧教育发展,而我国则通过政策支持、基础设施建设、技术融合等多方面努力,推动智慧教育进入“快车道”。智慧教育应用场景分为智慧校园和校外教育两类,涵盖教学、考试、评价、管理和服务等多个方面。报告还详细分析了支撑智慧教育发展的技术、产业、基础设施和安全能力的发展趋势,并指出了当前面临的挑战及建议。 适用人群:教育领域的政策制定者、教育管理者、教育技术从业者、研究人员和关心教育发展的社会各界人士。 使用场景及目标:①了解全球及我国智慧教育的最新进展和趋势;②为政策制定者提供决策参考;③为教育管理者和技术从业者提供实施智慧教育的具体指导;④促进教育技术的研发和应用。 其他说明:报告强调了智慧教育在促进教育公平、提升教育质量、推动教育模式创新等方面的重要性,并呼吁加强跨领域协同攻关、缩小教育数字化差距、强化网络信息安全和提升教师数字素养,以应对当前面临的挑战。
华为AC6003-8固件系统 网上确实 不好找啊
内容概要:这是一份实习证明模板,用于证明学生在指定单位完成实习经历。主要内容包括学生的学校、年级、专业以及姓名,明确标注了实习开始日期、实习单位名称、具体岗位、薪资待遇、单位地址及联系方式等信息,还列出了实习期间的指导教师及其联系方式。文件最后设有单位公章、单位负责人签字及联系电话的位置,并标明开具证明的日期。; 适合人群:即将或正在实习的大学生、大专生以及其他需要开具实习证明的学生群体。; 使用场景及目标:①为学生提供规范的实习证明文件,方便学校、企业或其他相关机构核实实习情况;②作为实习经历的正式书面记录,可用于求职、升学等场合。; 其他说明:此模板可根据不同学校和单位的具体要求进行适当调整,确保信息完整性和准确性。在填写时应注意核实各项信息的真实性,确保与实际情况相符。
IMG_20250416_154832.jpg
游戏亲测无毒可用,可在Win10、Win11等系统直接运行(执行ra95.exe,无需虚拟机) #初代经典红警,#红警95,#RTS,#电脑游戏,#怀旧游戏