Cassandra keyspace strategy_options


Cassandra - Criar Keyspace.
Criando um Keyspace usando o Cqlsh.
Um espaço de chaves em Cassandra é um namespace que define a replicação de dados em nós. Um cluster contém um espaço de chaves por nó. Segue abaixo a sintaxe para criar um espaço de chaves usando a instrução CREATE KEYSPACE.
A instrução CREATE KEYSPACE tem duas propriedades: replicação e editáveis ​​duráveis.
Replicação.
A opção de replicação é especificar a estratégia de Camada de Replica e o número de réplicas desejadas. A tabela a seguir lista todas as estratégias de colocação de réplicas.
Usando esta opção, você pode instruir Cassandra a usar o commitlog para atualizações no KeySpace atual. Esta opção não é obrigatória e, por padrão, está definida como verdadeira.
Dado abaixo é um exemplo de criar um KeySpace.
Aqui estamos criando um KeySpace chamado TutorialsPoint.
Estamos usando a primeira estratégia de posicionamento de réplica, ou seja, Estratégia simples.
E estamos escolhendo o fator de replicação para 1 réplica.
Verificação.
Você pode verificar se a tabela foi criada ou não usando o comando Descrever. Se você usar este comando em espaços de teclas, ele exibirá todos os espaços de teclas criados como mostrado abaixo.
Aqui você pode observar os novos tópicos de KeySpace tutorialspoint.
Durable_writes.
Por padrão, as propriedades duráveis ​​de uma tabela são definidas como verdadeiras, no entanto, elas podem ser definidas como falsas. Você não pode definir esta propriedade como estratégia simplex.
Dado a seguir é o exemplo que demonstra o uso de propriedades escritas duráveis.
Verificação.
Você pode verificar se a propriedade durável de teste do KeySpace foi definida como falsa consultando o System Keyspace. Esta consulta fornece todos os KeySpaces juntamente com suas propriedades.
Aqui você pode observar a propriedade durável de teste do KeySpace foi configurado como falso.
Usando um Keyspace.
Você pode usar um KeySpace criado usando a palavra-chave USE. Sua sintaxe é a seguinte:
No exemplo a seguir, estamos usando o tutorial KeySpace.
Criando um Keyspace usando a API Java.
Você pode criar um Keyspace usando o método execute () da classe Session. Siga as etapas abaixo para criar um espaço de chaves usando a API Java.
Passo 1: crie um objeto de cluster.
Antes de tudo, crie uma instância da classe Cluster. builder do pacote com. datastax. driver. core como mostrado abaixo.
Adicione um ponto de contato (endereço IP do nó) usando o método addContactPoint () do objeto Cluster. Builder. Esse método retorna o Cluster. Builder.
Usando o novo objeto do construtor, crie um objeto de cluster. Para fazer isso, você possui um método chamado build () na classe Cluster. Builder. O código a seguir mostra como criar um objeto de cluster.
Você pode criar um objeto de cluster em uma única linha de código como mostrado abaixo.
Passo 2: Criar um objeto de sessão.
Crie uma instância do objeto Session usando o método connect () da classe Cluster como mostrado abaixo.
Este método cria uma nova sessão e a inicializa. Se você já possui um espaço de teclas, você pode configurá-lo para o existente, passando o nome do espaço de chaves no formato de seqüência para este método, conforme mostrado abaixo.
Etapa 3: Execute Query.
Você pode executar consultas CQL usando o método execute () da classe Session. Passe a consulta no formato de string ou como um objeto de classe Statement para o método execute (). Tudo o que você passar para este método no formato de seqüência será executado no cqlsh.
Neste exemplo, estamos criando um KeySpace chamado tp. Estamos usando a primeira estratégia de posicionamento de réplica, ou seja, Estratégia simples, e estamos escolhendo o fator de replicação para 1 réplica.
Você deve armazenar a consulta em uma variável de string e passar para o método execute () como mostrado abaixo.
Passo 4: use o KeySpace.
Você pode usar um KeySpace criado usando o método execute () como mostrado abaixo.
Dado abaixo é o programa completo para criar e usar um espaço de chaves em Cassandra usando a API Java.
Salve o programa acima com o nome da classe seguido por. java, navegue até o local onde ele é salvo. Compile e execute o programa como mostrado abaixo.
Em condições normais, produzirá a seguinte saída:

Cassandra keyspace strategy_options
Obter através da App Store Leia esta publicação em nosso aplicativo!
Cassandra NetworkTopologyStrategy replicação.
Instalei e comecei Cassandra em duas máquinas linux no Amazon EC2. Eu também configurei cassandra. yaml para usar um snitch de arquivo de propriedade e configurei o arquivo cassandra-topology. properties como o seguinte:
Em seguida, criou um espaço de chaves como o seguinte:
Então eu criei uma família de colunas e tentei inserir uma linha. No entanto, estou obtendo um nulo de volta da CLI quando eu tento inserir. Perdi alguma coisa na configuração?
Como posso descobrir o que está acontecendo?
Além disso - Cassandra somente leu a topologia do cassandra na inicialização?
Parece que a criação de espaço de chave não é feita corretamente. É um fato simples, sempre que você está recebendo UnavailableException () ao preencher, dê por certo que há um problema na criação do espaço de chaves. No seu caso, você não mencionou o caminho da classe completa para a estratégia de colocação desejada.
Sim Cassandra só lê topologia na criação do tempo do espaço de teclas (inicialização)

Cassandra keyspace strategy_options
Obter através da App Store Leia esta publicação em nosso aplicativo!
Como criar espaço de chaves em cassandra1.1.9.
Estou tentando criar keyspace em cassandra1.1.9 e fiz da mesma maneira como 'help create keyspace' me diga.
CREATE KEYSPACE testkeyspace com placement_strategy = 'org. apache. cassandra. locator. SimpleStrategy' e strategy_options = [];
MESMO TRATADO ESTE.
criar keyspace testkeyspace;
atualize keyspace testkeyspace com placement_strategy = 'org. apache. cassandra. locator. SimpleStrategy' e strategy_options =; Eu sempre recebi esse erro:
java. lang. IllegalArgumentException: Não enum const class org. apache. cassandra. cli. CliClient $ AddKeyspaceArgument. STRATEGY_OPT: ONS.
Se você estiver usando cassandra-cli, esta é a sintaxe correta:
Estou na versão 1.2.8, mas a única sintaxe que funcionou para mim é esta:
Isso funciona para mim:
"CREATE KEYSPACE # WITH strategy_class = 'SimpleStrategy' AND strategy_options: replication_factor = 3"
Se você estiver tendo múltiplos datacenters no cluster cassandra e deseja armazenar uma cópia em cada centro de dados, então você pode usar o comando abaixo:

Escolhendo as opções de replicação de espaço para chaves.
Opções para definir a estratégia de replicação.
Para definir a estratégia de replicação para um espaço de chaves, consulte CREATE KEYSPACE.
Quando você usa o NetworkToplogyStrategy, durante a criação do espaço de chaves, você usa os nomes de datacenter definidos para o snitch usado pelo cluster. Para colocar as réplicas no local correto, Cassandra requer uma definição de espaço de chaves que use os nomes de datacenter configurados pelo snitch. Por exemplo, se o cluster usa o PropertyFileSnitch, crie o espaço de chaves usando o datacenter definido pelo usuário e os nomes de rack no arquivo cassandra-topologies. properties. Se o cluster usa o Ec2Snitch, crie o espaço de chaves usando datacenter EC2 e nomes de rack. Se o cluster usar o GoogleCloudSnitch, crie o espaço de chaves usando os datacenter do GoogleCloud e os nomes de rack.
Tópicos importantes para a compreensão de Cassandra.
Informações essenciais para entender e usar Cassandra.
Cassandra usa um protocolo chamado fofoca para descobrir informações de localização e estado sobre os outros nós que participam de um cluster Cassandra.
Como os dados são distribuídos e os fatores que influenciam a replicação.
O hashing consistente permite a distribuição de dados em um cluster para minimizar a reorganização quando os nós são adicionados ou removidos.
Visão geral de nós virtuais (vnodes).
Cassandra armazena réplicas em vários nós para garantir confiabilidade e tolerância a falhas. Uma estratégia de replicação determina os nós onde as réplicas são colocadas.
Opções para definir a estratégia de replicação.
Um particionador determina como os dados são distribuídos pelos nós no cluster (incluindo réplicas).
Um pedaço determina quais os nós de data e racks pertencentes a nós.
Os pedidos de leitura ou gravação do cliente podem ser enviados para qualquer nó no cluster porque todos os nós em Cassandra são pares.
DataStax é uma marca registrada da DataStax, Inc. e suas subsidiárias nos Estados Unidos e / ou em outros países.
Apache Cassandra, Apache, Tomcat, Lucene, Solr, Hadoop, Spark, TinkerPop e Cassandra são marcas comerciais da Apache Software Foundation ou de suas subsidiárias no Canadá, nos Estados Unidos e / ou em outros países.

CREATE KEYSPACE.
Defina um novo espaço de chaves e sua estratégia de posicionamento de réplica.
Defina um novo espaço de chaves e sua estratégia de posicionamento de réplica.
map é uma coleção de mapas, uma série de literais de estilo JSON:
A letra maiúscula significa literal A minúscula significa que não é literal A itálica significa opcional O símbolo do tubo (|) significa OR ou AND / OR Elipses (.) Significa repetitivo.
Um ponto-e-vírgula que termina instruções CQL não está incluído na sinopse.
Descrição.
CREATE KEYSPACE cria um namespace de nível superior e define o nome do espaço das chaves, a classe de estratégia de posicionamento da réplica, o fator de replicação e as opções DURABLE_WRITES para o espaço das chaves. Para obter informações sobre a estratégia de posicionamento de réplicas, consulte Apache Cassandraв "ў 2.1 estratégia de posicionamento de réplica ou estratégia de posicionamento de réplica do Apache Cassandra 2.0.
Quando você configura o NetworkTopologyStrategy como a estratégia de replicação, você configura um ou mais centros de dados virtuais. Alternativamente, você usa o centro de dados padrão. Use os mesmos nomes para centros de dados que aqueles usados ​​pelo snitch. Para obter informações sobre o snitch, consulte a documentação do apache Apache Cassandra 2.1 ou a documentação Apke Cassandra 2.0 snitch.
Você atribui diferentes nós, dependendo do tipo de carga de trabalho, para separar os centros de dados. Por exemplo, atribua os nós Hadoop a um centro de dados e a Cassandra em tempo real para outros. Segregar cargas de trabalho garante que apenas um tipo de carga de trabalho esteja ativo por data center. A segregação evita problemas de incompatibilidade entre cargas de trabalho, tais como diferentes requisitos de lote que afetam o desempenho.
Um mapa de propriedades e valores define os dois tipos diferentes de espaços de chaves:
As chaves do mapa de propriedades CQL devem ser minúsculas. Por exemplo, classe e replication_factor estão corretos. Os nomes de Keyspace são 48 ou menos caracteres alfa-numéricos e sublinhados, o primeiro dos quais é um caractere alfa. Os nomes de Keyspace não são sensíveis a maiúsculas e minúsculas. Para fazer um nome sensível a maiúsculas e minúsculas, coloque-o entre aspas duplas.
Você pode usar o alias CREATE SCHEMA em vez de CREATE KEYSPACE. A tentativa de criar um espaço de chaves já existente retornará um erro a menos que a opção IF NOT EXISTS seja usada. Se a opção for usada, a declaração será um não-op se o espaço de teclas já existir.
Exemplo de configuração da classe SimpleStrategy.
Para construir a instrução CREATE KEYSPACE, primeiro declare o nome do espaço de teclas, seguido das palavras-chave WITH REPLICATION e do símbolo igual. O nome do espaço de chaves é insensível a maiúsculas e minúsculas, a não ser que seja entre aspas duplas. Em seguida, para criar um espaço de chaves que não seja otimizado para vários centros de dados, use SimpleStrategy para o valor da classe no mapa. Defina as propriedades do replication_factor, separadas por dois pontos e incluídas em suportes curly. Por exemplo:
Usar SimpleStrategy é bom para avaliar Cassandra. Para uso de produção ou para uso com cargas de trabalho variadas, use NetworkTopologyStrategy.
Exemplo de configuração da classe NetworkToplogyStrategy.
Usar NetworkTopologyStrategy também é bom para avaliar Cassandra. Para usar o NetworkTopologyStrategy para fins de avaliação usando, por exemplo, um cluster de único nó, especifique o nome do centro de dados padrão do cluster. Para determinar o nome do centro de dados padrão, use o status nodetool.
Para usar o NetworkTopologyStrategy com centros de dados em um ambiente de produção, você precisa alterar o snitch padrão, SimpleSnitch, para um snitch compatível com a rede, definir um ou mais nomes de centro de dados no arquivo de propriedades do snitch e usar esse (s) nome (s) do centro de dados para definir o espaço das chaves; Caso contrário, Cassandra não conseguirá encontrar um nó, para completar uma solicitação de gravação, como inserir dados em uma tabela.
Depois de configurar o Cassandra para usar um snitch compatível com a rede, como o PropertyFileSnitch, você define os nomes do centro de dados e do rack no arquivo cassandra-topology. properties.
Construa a instrução CREATE KEYSPACE usando NetworkTopologyStrategy para o valor da classe no mapa. Defina um ou mais pares de valores-chave consistindo no nome do centro de dados e no número de réplicas por centro de dados, separados por dois pontos e incluídos em suportes curly. Por exemplo:
Este exemplo define três réplicas para um centro de dados chamado dc1 e duas réplicas para um centro de dados chamado dc2. O nome do data center que você usa depende do snitch configurado em cluster que você está usando. Existe uma correlação entre o nome do centro de dados definido no mapa e o nome do centro de dados conforme reconhecido pelo snitch que você está usando. O comando de status do nodetool imprime os nomes dos centros de dados e as posições de rack de seus nós se você não tiver certeza do que eles são.
Configurando DURABLE_WRITES.
Você pode definir a opção DURABLE_WRITES após a especificação do mapa do comando CREATE KEYSPACE. Quando configurado como falso, os dados escritos no espaço das chaves ultrapassam o log de confirmação. Tenha cuidado ao usar esta opção porque corre o risco de perder dados. Não configure esse atributo em um espaço de chaves usando o SimpleStrategy.
Verificando os espaços de chaves criados.
Verifique se os espaços de chaves foram criados:
Cassandra converteu os excelsior keyspace em minúsculas porque as aspas não foram usadas para criar o espaço de chaves e reteve a letra maiúscula inicial para o Excalibur porque aspas foram usadas.
Tópicos de referência CQL.
Sobre o uso do CQL.
A entrada CQL consiste em declarações que alteram dados, pesquisam dados, armazenam dados ou alteram a maneira como os dados são armazenados.
Tipos de dados incorporados para colunas.
Sobre o uso do espaço de chaves CQL e propriedades da tabela.
Funções de suporte CQL para transformar um ou mais valores de coluna em um novo valor.
Limites CQL superiores.
Os comandos cqlsh.
Alterar valores de propriedade de um espaço de chaves.
Modifique os metadados da coluna de uma tabela.
Modifique um tipo definido pelo usuário. Apache Cassandraв "ў 2.1 e posterior.
Alterar as opções de usuário existentes.
Escreva várias declarações DML.
Defina um novo índice em uma única coluna de uma tabela.
Defina um novo espaço de chaves e sua estratégia de posicionamento de réplica.
Defina uma nova tabela.
Registra um gatilho em uma mesa.
Crie um tipo definido pelo usuário. Apache Cassandra 2.1 e posterior.
Crie um novo usuário.
Remove linhas inteiras ou uma ou mais colunas de uma ou mais linhas.
Solte o índice nomeado.
Remova o espaço das chaves.
Remova a tabela com nome.
Remove o registro de um gatilho.
Solte um tipo definido pelo usuário. Apache Cassandra 2.1 e posterior.
Fornecer acesso a objetos de banco de dados.
Adicione ou atualize colunas.
Lista de permissões concedidas a um usuário.
Liste usuários existentes e seu status de superusuário.
Revogar permissões de usuário.
Recupere dados de uma tabela Cassandra.
Remova todos os dados de uma tabela.
Atualize colunas em uma linha.
Conecte a sessão do cliente a um espaço de chaves.
DataStax é uma marca registrada da DataStax, Inc. e suas subsidiárias nos Estados Unidos e / ou em outros países.
Apache Cassandra, Apache, Tomcat, Lucene, Solr, Hadoop, Spark, TinkerPop e Cassandra são marcas comerciais da Apache Software Foundation ou de suas subsidiárias no Canadá, nos Estados Unidos e / ou em outros países.

Introdução ao Datastax Brisk: uma distribuição Hadoop e Cassandra.
À medida que o ecossistema Apache Hadoop cresce enquanto seu núcleo amadurece, existem agora várias empresas que fornecem distribuição e serviços Hadoop de classe empresarial. Enquanto a EMC, depois de adquirir Greenplum, parece ser o maior jogador, outras empresas como Cloudera ou MapR também estão competindo.
Este artigo apresenta a Datastax Brisk, uma inovadora distribuição Hadoop que alavanca a infraestrutura de armazenamento de dados da Apache Hive em uma camada de armazenamento compatível com HDFS, baseada em Cassandra. Experimente tentar reconciliar aplicativos em tempo real com requisito de baixa latência (OLTP) e grande análise de dados (OLAP) em um único sistema. & # 8220; Oh really? & # 8221;
Introdução.
Geralmente, os sistemas projetados para OLAP e OLTP requerem modelos de dados diferentes e os sistemas OLTP precisam ser descarregados regularmente porque eles não lidam com uma enorme quantidade de dados. Assim, a necessidade de ETL. Mas os processos ETL são geralmente complexos e não flexíveis, eles precisam ser adaptados sempre que o sistema de origem ou destino mudar ligeiramente. Por fim, eles não são adequados para fluxos de dados pequenos, mas numerosos, onde é que estamos lidando com análises em tempo real.
Se você fosse projetar um sistema único que pudesse lidar tanto com consultas de baixa latência quanto com grandes análises de dados, você precisaria de algum tipo de isolamento de recursos para que um grande lote em execução em seus dados não impactasse o tempo de resposta de sua aplicação. Deixe-nos ver como a Brisk lida com esses desafios.
Arquitetura rápida.
Na Hadoop Stack típica (veja nossas postagens de blog relacionadas), o armazenamento de dados primário é Hadoop Distributed FileSystem, também conhecido como HDFS. O HDFS se encaixa no MapReduce, graças à conscientização de locais de dados, mas isso ocorre à custa de um SPOF principal, o servidor de metadados NameNode. Embora o servidor NameNode secundário atenua o risco de perda de dados, o tempo de failover é em dezenas de minutos.
Com o Brisk, a camada HDFS é substituída por um sistema de arquivos baseado em Cassandra. Semelhante ao HDFS, os arquivos grandes são divididos em pedaços (mais precisamente, em & # 8220; linhas e # 8221;), mas armazenados em uma família de colunas. A troca de replicação e consistência de dados é tratada como em cada família de colunas em Cassandra. A percepção da localidade vem & # 8220; para livre & # 8221 ;, cada pedaço de dados possui uma chave mapeada na Tabela de Hash Distributed da Cassandra & # 8217; cada nó do cluster sabe onde cada dado está localizado. O que é excelente com o CassandraFS é que ele substitui de forma transparente HDFS, se você acessa o HDFS através da API Java nativa ou através da CLI, você não precisará alterar seu código existente.
Um cluster Brisk típico é composto por dois tipos de nós. Alguns nós são dedicados a fazer análises, enquanto outros só lidam com consultas de baixa latência. Ambos os tipos de nós executam o Cassandra, mas os nós analíticos também executam um Hadoop TaskTracker para executar programas MapReduce de longa duração. Os nós de Cassandra-only funcionam unicamente como armazenamento de dados NoSQL. Os nós Hadoop e os nós apenas Cassandra fazem dois grupos diferentes dentro do mesmo cluster Brisk. Se você não está familiarizado com o datamodel Cassandra e suas capacidades OLTP, agora é a hora de dar uma olhada no & # 8220; Play com Cassandra & # 8221; série de postagens de blog.
Os dados armazenados no CassandraFS são armazenados em um espaço de teclas manipulado apenas pelos nós Hadoop. Há um nó JobTracker, eleito automaticamente entre os nós Hadoop, que tentam agendar o trabalho em TaskTrackers para que eles funcionem apenas com dados locais. Se o JobTracker falhar, você pode forçar manualmente outro nó Hadoop para ser o novo JobTracker.
As coisas ficam um pouco mais complicadas quando você deseja executar trabalhos do MapReduce em dados armazenados em um espaço de chaves regular. Parte dos dados pode ser atribuída a vananda Cassandra (lembre-se de que os nós apenas do cassandra e os nós Hadoop pertencem ao mesmo & # 8220; anel & # 8221; / cluster). Possivelmente, toneladas de dados precisam ser lidas (para fins de análise) a partir de nós que também enfrentam requisitos em tempo real.
A Brisk fornece uma solução elegante para o problema de isolamento de recursos graças à capacidade de replicação nativa de Cassandra. O truque é para:
1) Replique o espaço das chaves para que o grupo de nós Hadoop possua uma cópia completa dos dados armazenados no espaço das chaves. 2) Diga aos nós Hadoop que leiam os dados usando apenas a cópia e, assim, evitem acertar os nós somente de cassandra.
No final, a arquitetura parece:
Detalhes sobre a replicação de gravação.
Um espaço de teclas com essas duas propriedades (replicação e & # 8220; no seu grupo & # 8221; / consultas locais) pode ser criado através de cassandra-cli:
Isso é isso. Neste exemplo, o fator de replicação foi definido como 2 (1 + 1): uma cópia completa das configurações de dados em cada grupo de nós. A estratégia de posicionamento informa o mecanismo de roteamento de dados para satisfazer o nível de consistência da solicitação (leitura ou gravação) favorecendo os nós "fechar" ao emissor da solicitação. Em Brisk, quando um nó se junta ao cluster, ele se declarará automaticamente como parte do DC virtual "Brisk" ou do Cassandra virtual DC dependendo de sua função (OLAP ou OLTP, a função é configurável em /etc/init. d/cassandra ou / etc / padrão / arquivo rápido). É por isso que os nós únicos de Cassandra são considerados distantes (em outro DC) dos nós Hadoop, portanto, os nós Hadoop evitam a leitura de dados deles. Longa história curta, replicação, virtualDC e estratégia de "topologia de rede" alcançam a propriedade de isolamento de recursos.
Da mesma forma, se seu trabalho de MR escrever seus resultados em uma família de coluna do espaço de chaves do myKS, esses resultados serão eventualmente (como eventualmente consistente, dependendo do seu nível de consistência de gravação) serão copiados no grupo de nós exclusivo da Cassandra. Não escreva muitos dados ou o processo de replicação pode afetar negativamente o tempo de resposta de seus nós somente de Cassandra.
Com o Brisk, você programa seus trabalhos MapReduce como faria com uma pilha Hadoop típica. Infelizmente Hadoop streaming não é suportado, então você não tem escolha senão Java.
Exemplo de Mapreduce em Cassandra.
Nos parágrafos a seguir, passaremos pelo exemplo canônico do WordCount, mas o corpus de texto de entrada & # 8220; # 8221; é armazenado em um espaço de teclas Cassandra regular (em vez de CassandraFS ou HDFS) eo resultado também será colocado de volta em Cassandra.
Primeiro, primeiro, precisamos de um novo espaço de chaves e família de colunas para armazenar nosso corpus de texto. Também precisamos de uma família de colunas para armazenar o resultado do trabalho de MR.
No cassandra-cli (certifique-se de que o Brisk foi iniciado com o & # 8220; Hadoop habilitado & # 8221;):
Este espaço de chaves será armazenado apenas nos nós Hadoop do cluster, esse é o significado das & # 8220; estratégias_options & # 8221; parâmetro. Nenhuma das operações futuras envolverá os nós apenas de Cassandra. Em seguida, precisamos de alguns textos de entrada. Eu escolhi a Bíblia (testamentos antigos e novos) porque é bastante grande e disponível em formato de texto aqui. sites. google/site/ruwach/bibletext Obtê-lo e descompactá-lo. O seguinte trecho de código Python insere cada linha da Bíblia como uma linha na família de colunas input_words.
Nós o executamos e inserimos os dados:
O programa MR está disponível aqui: github repo.
É o clássico & # 8220; wordcount & # 8221; exemplo. As seguintes linhas são específicas do Brisk e são colocadas no método de execução do trabalho, onde a configuração do trabalho está concluída:
O código é compilado e executado:
Espero que o trabalho tenha terminado bem e agora você pode perguntar & # 8220; quantas vezes a palavra & # 8220; vantagem & # 8221; aparece na Bíblia # 8221; ao recuperar a coluna chamada & # 8220; vantagem & # 8221; da & # 8220; bible & # 8221; linha do & # 8220; output_words & # 8221; família de colunas:
Um exemplo mais realista teria sido fazer análises na evolução de dados (como feeds de tweet) armazenados em uma família de colunas atualizadas por um & # 8220; em tempo real e # 8221; aplicativo (como um cliente do tweeter) e exibir os resultados em outra família de colunas (de preferência em outro & # 8220; espaço de chaves & # 8221 ;, para o motivo de isolamento do recurso). Desta forma, você pode fazer análises sobre os dados mais recentes e deixar os resultados do trabalho de MR estarem acessíveis à sua aplicação imediatamente depois de estarem disponíveis.
Apache Hive in Brisk.
O Brisk também inclui Apache Hive, modificado de forma reduzida para trabalhar com o CassandraFS. A Hive fornece uma sintaxe semelhante ao SQL, onde as consultas são & # 8220; traduzidas e # 8221; para MapReduce trabalhos. A Hive realmente alivia o grande tratamento de dados. Deixe-nos ver como com a continuação do exemplo do WordCount.
Se o exemplo de wordcount MR foi bem, agora você possui um & # 8220; output_words & # 8221; Família de colunas que se parece com isto:
Com esse esquema, é fácil obter o número de vezes que o substantivo & # 8220; aaron & # 8221; aparece na Bíblia. Mas e se você quiser saber qual é a palavra mais freqüente? Você precisaria buscar todas as colunas, possivelmente escrever outro trabalho de MR. Em vez disso, vamos usar o Hive, que pode responder a essa consulta simples em uma linha.
A integração da colmeia no Brisk é mais severa. A sintaxe é a mesma que o Hive em cima do HDFS, mas no Brisk, os dados são armazenados no CassandraFS. Obtém (um pouco) complicado quando você deseja mapear uma família de colunas Cassandra existente (& # 8220; output_words & # 8221; em nosso exemplo) em uma tabela de colméia. Especialmente se o nome e o número de colunas forem dinâmicos.
A seguinte instrução Hive-QL cria uma tabela de Hive cujos dados são armazenados na família de colunas de Cassandra & # 8220; output_words & # 8221; e onde cada linha é uma 3-tupla [chave de linha, column_name, column_value]. Então, neste exemplo, você termina com uma linha no HiveTable para cada palavra distinta em cada texto do corpus de texto.
Finalmente, para obter as 5 palavras mais freqüentes na Bíblia, a consulta da Raiz parece:
Conclusão.
Brisk é mais do que apenas uma outra distribuição Hadoop. Possui recursos inovadores, como um sistema de arquivos distribuído em cima da Cassandra, que atua como armazenamento de dados único para consultas de baixa latência e processamento de lote off-line. Reduz o tempo entre a criação e análise de dados graças à replicação de dados "on fly" que suprime a necessidade de ETL. É um Software FreeSource OpenSource e se beneficia do suporte profissional por Datastax.
Publicações relacionadas:
Postagens recentes.
Deixe uma resposta Cancelar resposta.
Incubadas startups na OCTO.
"Pour tous les amoureux de l'archi"
Mais informações sobre Duck Conf.
Você pode encontrar as últimas notícias sobre nossos palestrantes e o evento em nosso blog. Fique inspirado.

Comments