小编Mis*_*man的帖子

3
推荐指数
1
解决办法
1352
查看次数

低频通话的Bigtable扫描/获取响应时间(等待时间)非常高

我在10个实例的bigtable中有一个小表(大小为100Mb)。当我尝试每1分钟扫描/获取一行时,通话延迟超过300毫秒。如果我打的是更频繁的呼叫,例如每秒一次,则延迟为50-60ms。我不确定如何改善低频通话的性能。这是预期的行为吗?还是我做错了什么。

这是我的测试代码。我为两个与大表的hbase客户端连接创建了一个执行程序。但是低频连接响应的速度要比进行更频繁呼叫的连接慢。

有什么建议么?

package com.bids;

import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
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.FilterList;
import org.apache.hadoop.hbase.util.Bytes;
import org.fusesource.jansi.AnsiConsole;

public class BTConnectTest {
    public static void main(String[] args) throws IOException, InterruptedException {

        Configuration hBaseConfig = HBaseConfiguration.create();
        hBaseConfig.set("google.bigtable.project.id", "xxxxxxx");
        hBaseConfig.set("google.bigtable.cluster.name", "hbase-test1");
        hBaseConfig.set("google.bigtable.zone.name", "us-central1-b");
        hBaseConfig.set("hbase.client.connection.impl", "com.google.cloud.bigtable.hbase1_1.BigtableConnection");

        ExecutorService executor = Executors.newSingleThreadExecutor();

        final Connection bigTableConnection1 = ConnectionFactory.createConnection(hBaseConfig, executor); …
Run Code Online (Sandbox Code Playgroud)

java google-cloud-bigtable

3
推荐指数
1
解决办法
1158
查看次数

Google Compute Engine VM实例:VFS:无法在未知块上挂载根fs

由于某些启动顺序问题,我在Google Compute Engine上的实例无法启动。

因此,我创建了另一个实例并重新配置了我的机器。

我的问题:

  1. 托管一些网站时如何处理这些问题?
  2. 如何从旧磁盘恢复数据?

日志

  

    [0.348577]密钥类型可信注册
    [0.349232]密钥类型已加密注册
    [0.349769] AppArmor:启用了AppArmor sha1策略哈希
    [0.350351] ima:未找到TPM芯片,正在激活TPM旁路!
    [0.351070] EVM:HMAC属性:0x1
    [0.351549]幻数:11:333:138
    [0.352077]块ram3:哈希匹配
    [0.352550] rtc_cmos 00:00:将系统时钟设置为2015-12-19 17:06:53 UTC(1450544813)
    [0.353492] BIOS EDD设备v0.16 2004年6月25日,找到0个设备
    [0.354108] EDD信息不可用。
    [0.536267]输入:AT Translated Set 2键盘为/ devices / platform / i8042 / serio0 / input / input2
    [0.537862] md:在自动检测之前,等待所有设备可用
    [0.538979] md:如果您不使用raid,请使用raid = noautodetect
    [0.539969] md:自动检测RAID阵列。
    [0.540699] md:已扫描0,并添加了0个设备。
    [0.541565] md:自动运行...
    [0.542093] md:...自动运行完成。
    [0.542723] VFS:无法打开根设备“ sda1”或未知块(0,0):错误-6
    [0.543731]请附加正确的“ root =”引导选项;这是可用的分区:
    [0.545011]内核崩溃-不同步:VFS:无法在未知块(0,0)上安装根fs
    [0.546199] CPU:0 PID:1 Comm:swapper / 0未污染3.19.0-39-generic#44〜14.04.1-Ubuntu
    [0.547579]硬件名称:Google Google,BIOS Google 01/01/2011
    [0.548728] ffffea00008ae140 ffff880024ee7db8 ffffffff817af92b …

filesystems boot disk google-compute-engine

3
推荐指数
1
解决办法
1334
查看次数

如何使用HBase API删除Google Cloud Bigtable中单行的列

我正在使用HBase API访问Google Cloud Bigtable,但每当我尝试删除列时:

Delete delete = new Delete(r.getRow());
delete.addColumn(CF, Bytes.toBytes(d.seqid()));
delete.addColumn(CF, COL_LEASE);
tasksTable.delete(delete);
Run Code Online (Sandbox Code Playgroud)

我得到了UnsupportedOperationException:

java.lang.UnsupportedOperationException: Cannot delete single latest cell.
at com.google.cloud.bigtable.hbase.adapters.DeleteAdapter.throwIfUnsupportedPointDelete(DeleteAdapter.java:85)
at com.google.cloud.bigtable.hbase.adapters.DeleteAdapter.adapt(DeleteAdapter.java:141)
at com.google.cloud.bigtable.hbase.adapters.HBaseRequestAdapter.adapt(HBaseRequestAdapter.java:71)
at com.google.cloud.bigtable.hbase.BigtableTable.delete(BigtableTable.java:307)
at queue.BigTableRowBackedQueue.poll(BigTableRowBackedQueue.java:54)
Run Code Online (Sandbox Code Playgroud)

我在代码中看到它出现在这里.

我可以从HBase Java客户端中删除整行,并且可以使用HBase shell删除单个列.

如何在不删除Java客户端中的行的情况下删除列?

java google-cloud-platform google-cloud-bigtable

3
推荐指数
1
解决办法
1196
查看次数

Bigtable行键场景避免热点?

Bigtable行键场景避免热点?

一家公司需要您在 Google Bigtable 中创建一个架构,以便对过去 2 年的记录进行历史分析。传入的每条记录每 15 分钟发送一次,并包含设备的唯一标识符和数据记录。最常见的查询是针对给定设备在给定日期的所有数据。您应该使用哪种模式?

  • A.行键:date#device_id,列数据:data_point
  • B.行键:日期,列数据:device_id,data_point
  • C.行键:device_id,列数据:日期,data_point
  • D、行键:data_point,列数据:device_id、日期
  • E.行键:date#data_point,列数据:device_id

上面最好的选择是什么?

bigtable google-cloud-bigtable

3
推荐指数
1
解决办法
3243
查看次数

Google云端存储:批量修改ACL

我们正在将服务器迁移到Google云计算引擎,并开始将云存储视为CDN选项.我通过开发者控制台上传了大约1,000个文件,但问题是所有用户的所有对象权限都设置为无.我找不到任何方法来编辑所有权限以授予所有用户读者访问权限.我错过了什么吗?

google-cloud-storage

2
推荐指数
1
解决办法
1747
查看次数

Gmock设置参数

在GMock测试方法,我需要设置了参数变量的地址,这样的输出参数dequeue(),这是data指向变量ch:

MOCK_METHOD1(dequeue, void(void* data));

char ch = 'm';
void* a = (void*)&ch;

EXPECT_CALL(FQO, dequeue(_))
    .WillOnce(/*here I need to set argument to a*/);
Run Code Online (Sandbox Code Playgroud)

我试图找出副作用,但一直出错.

c++ gmock

2
推荐指数
1
解决办法
6075
查看次数

如何从Vagrant VM中访问Docker容器

我有一个Vagrant设置,提供两个Docker容器.Docker容器启动没有问题.在Vagrant VM中,我可以运行docker ps并看到两个容器都连接到正确的端口.如果我运行,docker logs XXX我会看到我的Redis和Mongo守护进程都在运行.但是从Vagrant盒子本身我无法telnet或访问任何正在运行的服务.我总是拒绝连接.如何让Vagrant VM看到Docker中运行的正在运行的服务?

Vagrantfile看起来像:

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.host_name = "trusty"

  config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
  config.vm.box = "trusty64"

  config.vm.network :private_network, ip: "192.168.10.12"
  config.vm.network :forwarded_port, guest: 6379, host: 6379
  config.vm.network :forwarded_port, guest: 27017, host: 27017

  config.vm.provision "docker" do |d|
    d.pull_images 'dockerfile/redis'
    d.pull_images 'dockerfile/mongodb'

    d.run 'dockerfile/redis', ports: ['6379:6379'], name: 'redis', expose: [6379]
    d.run 'dockerfile/mongodb', ports: ['27017:27017'], name: 'mongodb'
  end
end 
Run Code Online (Sandbox Code Playgroud)

vagrant docker vagrantfile boot2docker

2
推荐指数
1
解决办法
2908
查看次数

将 VHD 文件导入 Google Compute Engine

有没有办法使用 VHD 在 Google Cloud 上创建虚拟机实例?它看起来非常简单,并且在 Azure 云上有详细记录,但我在 G-Cloud 上找不到任何信息。

看来我在浪费时间在 Google Cloud 上重新创建服务器,而且我很快就失去了 Google Cloud 的价值。

vhd google-compute-engine

2
推荐指数
1
解决办法
3287
查看次数

GCS中删除的全局一致性

来自GCS docs的以下片段:

强大的全局一致性还扩展到对象的删除(DELETE)操作和更改现有对象和存储区ACL的更新(PUT)操作.如果删除对象并收到成功响应,则立即尝试下载(GET)对象将导致404 Not Found状态代码.同样,如果更改对象或存储桶上的ACL并且收到成功响应,则新应用的对象或存储区ACL立即可用.

令人困惑的是,我认为全局一致性意味着我不会得到404 Not Found错误,对吧?

google-cloud-storage

2
推荐指数
1
解决办法
107
查看次数