Squirrel

Phoenix查询hbase

扶醉桌前 提交于 2021-02-15 00:52:55
https://www.cnblogs.com/linbingdong/p/5832112.html 这个很全看这个 HBase,一个NoSQL数据库,可存储大量非关系型数据。 HBase,可以用HBase shell进行操作,也可以用HBase Java api进行操作。HBase虽然是一个数据库,但是它的查询语句,很不太好用。要是能像使用Mysql等关系型数据库一样用sql语句操作HBase,那就很Perfect了。 现有工具有很多Hive,Tez,Impala,Shark / Spark,Phoenix等。今天主要记录Phoenix。 phoenix,由saleforce.com开源的一个项目,后又捐给了Apache。它相当于一个Java中间件,帮助开发者,像使用jdbc访问关系型数据库一些,访问NoSql数据库HBase。 phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用工具进行一些读或写操作。 其实,可以把Phoenix只看成一种代替HBase的语法的一个工具。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中

electron---项目打包

余生颓废 提交于 2020-11-28 23:56:56
创建一个应用目录:app,里面需要有必要的三个文件: index.html <! DOCTYPE html > < html > < head > < meta charset ="UTF-8" > < title > 百度 </ title > < style type ="text/css" > * { margin : 0px ; padding : 0px ; } #iframe { width : 100% ; height : 100% ; position : absolute ; top : 0px ; right : 0px ; bottom : 0px ; left : 0px ; } </ style > </ head > < body > < iframe id ="iframe" frameborder ="0" src ="https://www.baidu.com/" ></ iframe > < script > // You can also require other files to run in this process require( ' ./renderer.js ' ) </ script > </ body > </ html > main.js // Modules to control application life and

electron之打包成安装程序

允我心安 提交于 2020-11-28 23:56:38
1、安装 electron-winstaller    npm install --save-dev electron-winstaller 2、创建一个build.js var electronInstaller = require('electron-winstaller'); var path = require("path"); resultPromise = electronInstaller.createWindowsInstaller({ appDirectory: path.join('./out/haha-win32-x64'), //入口 outputDirectory: path.join('./tmp/build/installer64'), //出口 authors: 'yyt', exe: 'haha.exe', //名称 setupIcon: path.join('icon.ico'),//安装图标,必须本地 iconUrl: 'http://pm72qibzx.bkt.clouddn.com/icon.ico',//程序图标,必须url noMsi: true, }); resultPromise.then(() => console.log("It worked!"), (e) => console.log(`No dice: ${e

美团万亿级 KV 存储架构与实践

好久不见. 提交于 2020-08-09 22:36:36
KV 存储作为美团一项重要的在线存储服务,承载了在线服务每天万亿级的请求量。在 2019 年 QCon 全球软件开发大会(上海站)上,美团高级技术专家齐泽斌分享了《美团点评万亿级 KV 存储架构与实践》,本文系演讲内容的整理,主要分为四个部分:第一部分讲述了美团 KV 存储的发展历程;第二部分阐述了内存 KV Squirrel 架构和实践;第三部分介绍了持久化 KV Cellar 架构和实践;最后分享了未来的发展规划和业界新趋势。 美团点评 KV 存储发展历程 美团第一代的分布式 KV 存储如下图左侧的架构所示,相信很多公司都经历过这个阶段。在客户端内做一致性哈希,在后端部署很多的 Memcached 实例,这样就实现了最基本的 KV 存储分布式设计。但这样的设计存在很明显的问题:比如在宕机摘除节点时,会丢数据,缓存空间不够需要扩容,一致性哈希也会丢失一些数据等等,这样会给业务开发带来的很多困扰。 随着 Redis 项目的成熟,美团也引入了 Redis 来解决我们上面提到的问题,进而演进出来如上图右侧这样一个架构。大家可以看到,客户端还是一样,采用了一致性哈希算法,服务器端变成了 Redis 组成的主从结构。当任何一个节点宕机,我们可以通过 Redis 哨兵完成 Failover,实现高可用。但有一个问题还是没有解决,如果扩缩容的话,一致性哈希仍然会丢数据,那么这个问题该如何解决呢

大话Electron应用自动更新

江枫思渺然 提交于 2020-04-06 16:57:24
一、Windows下更新特有的问题 软件更新在Linux和macOS还好说,但是在Windows上可能会遇到UAC问题,常用的方法是:Windows计划任务、Windows Service,本质上这两种方式还是提权,Windows Service 与 Windows计划任务相比最大的特点就是可以与应用交互,Windows的更新就是使用Windows Update服务,即使在macOS的Edge浏览器也是使用的Microsoft Update服务。 二、手动更新 手动更新是下载完整的安装包,用户手动安装,如果数据需要保存在本地,那么不要将数据保存在应用安装目录,而是用户目录。 手动更新适合用户粘性高,非频繁更新的应用,在macOS的App Store中,通常只要上传安装包,用户终端可以自动更新。手动更新一般会有比较大的安装包,因为是完全下载。一般作为降级更新方案使用。 三、覆盖更新 程序自动替换,下载更新过程快,只需要重启应用,甚至不需要重启,但是容易出现写入文件失败,而且实现复杂,适合打补丁。 四、自动更新 应用程序自动下载,再次启动以后重新加载最新版本即可,一般这样的应用结构是由一个固定的应用启动程序读取不同的应用版本。 这样更新速度快,异步更新并且适合高频更新的应用。缺点就是实现有一定的难度。 五、Electron应用更新 (1)Web化 将业务视图存放到远程HTTPS服务器

Java Keyword Synchronized 学习记录

你离开我真会死。 提交于 2020-03-28 06:44:39
Synchronized Java编程思想:每个对象都包含了一把锁(也叫作“监视器”),它自动成为对象的一部分,调用任何synchronized方法时,对象就会被锁定,不可再调用那个对象的其他任何synchronized 方法,除非第一个方法完成了自己的工作,并解除锁定。 特点:Jvm层面,非公平,悲观,独占,可重入,重量级。 作用:修饰方法和代码块。 修饰方法和代码块 synchronized修饰静态方法,我们可以称其为“类锁”,即只要有一个线程实例对象获取该锁,其他线程实例对象都需要等待。修饰非静态方法,我们称之为对象锁,即不同的线程实例对象是可以调用同一类下的同步方法。 /** * @PackageName com.a.squirrel.synchronize * @Author: squirrel * @Date: 2018/6/25 10:04 * @Description: synchronized解析辅助类 */ public class SynchronizedDescription { private String tmpStr; private int tmpInt; /** * @Author squirrel * @Description 非静态同步方法 * @Date 2018/6/25 * @Param [synchronizedDescription]

【Hadoop】- HDFS Java客户端操作

人盡茶涼 提交于 2019-12-09 11:51:36
开发工具:eclipse + maven + jdk1.8 代码 package com.zhiwei.hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DistributedFileSystem; import org.apache.hadoop.hdfs.protocol.DatanodeInfo; import org.apache.hadoop.io.IOUtils; /** * 问题:Permission Denied * 设置hadoop目录的访问权限:hdfs dfs -chmod -R 777 hadoop目录路径 * Hadoop版本:hadoop

SQuirrel SQL Client 连接Hive

北城余情 提交于 2019-12-07 19:22:55
SQuirrel SQL Client是一个用Java写的数据库客户端,用JDBC统一数据库访问接口以后,可以通过一个统一的用户界面来操作MySQL、PostgreSQL、MSSQL、Oracle、Hive等等任何支持JDBC访问的数据库。使用起来非常方便。SQuirrel SQL Client的功能可以通过插件来扩展。SQuirrel SQL Client算是Swing的一个比较成功的应用了。 下面介绍额配置SQuirrel SQL Clien访问hive。 安装SQuirrel SQL Client software release JDK 1.8.0_131 SQuirrel SQL Client squirrel-sql-3.7.1-standard hive Apache-2.1.1 下载地址: http://sourceforge.net/projects/squirrel-sql/files/1-stable/3.7.1/squirrel-sql-3.7.1-standard.jar/download 执行安装命令: java -jar squirrel-sql-<version>-install.jar SQuirrel SQL Client 是有IzPack Java installer做的安装包,在windows下可以通过上述命令进行安装

Creating new classes/members at run-time in scripting languages used in C++ [closed]

非 Y 不嫁゛ 提交于 2019-12-07 04:08:17
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 3 years ago . I've been working on this problem off and on for a few months, and now wanted to really come up with a proper solution that will handle the case of creating new user-defined classes (and instances of those classes) with member functions/properties at run-time in a C++11 project. So far, I've been using SWIG

Creating new classes/members at run-time in scripting languages used in C++ [closed]

点点圈 提交于 2019-12-05 09:35:19
Closed. This question is off-topic . It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 3 years ago . I've been working on this problem off and on for a few months, and now wanted to really come up with a proper solution that will handle the case of creating new user-defined classes (and instances of those classes) with member functions/properties at run-time in a C++11 project. So far, I've been using SWIG (formerly with Python, now with Lua, exploring Squirrel). Like all the C++ binding/embedding libraries I