Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Clientes do Phoenix - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Clientes do Phoenix

Você se conecta ao Phoenix usando um cliente do JDBC criado com dependências totais ou usando o "thin client", que usa o Phoenix Query Server e só pode ser executado em um nó principal do cluster (por exemplo, usando um cliente do SQL, uma etapa, uma linha de comando, um encaminhamento de porta de SSH, etc.). Ao usar o cliente JDBC “gordo”, ele ainda precisa ter acesso a todos os nós do cluster porque se conecta diretamente aos HBase serviços. O cliente "magro" do Phoenix precisa apenas do acesso ao Phoenix Query Server em uma porta padrão 8765. Há vários scripts no Phoenix que usam esses clientes.

Use uma etapa do Amazon EMR para fazer consultas usando o Phoenix

O procedimento a seguir restaura um instantâneo HBase e usa esses dados para executar uma consulta Phoenix. Você pode estender este exemplo ou criar um novo script que utiliza os clientes do Phoenix para atender às suas necessidades.

  1. Crie um cluster com o Phoenix instalado usando o seguinte comando:

    aws emr create-cluster --name "Cluster with Phoenix" --log-uri s3://amzn-s3-demo-bucket/myLogFolder --release-label emr-7.7.0 \ --applications Name=Phoenix Name=HBase --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge --instance-count 3 --use-default-roles
  2. Crie e, em seguida, carregue os seguintes arquivos para o Amazon S3:

    copySnapshot.sh

    sudo su hbase -s /bin/sh -c 'hbase snapshot export \ -D hbase.rootdir=s3://us-east-1.elasticmapreduce.samples/hbase-demo-customer-data/snapshot/ \ -snapshot customer_snapshot1 \ -copy-to hdfs://masterDNSName:8020/user/hbase \ -mappers 2 -chuser hbase -chmod 700'

    runQuery.sh

    aws s3 cp s3://amzn-s3-demo-bucket/phoenixQuery.sql /home/hadoop/ /usr/lib/phoenix/bin/sqlline-thin.py http://localhost:8765 /home/hadoop/phoenixQuery.sql

    phoenixQuery.sql

    nota

    Você só precisa incluir COLUMN_ENCODED_BYTES=0 no exemplo a seguir quando usar as versões 5.26.0 e posteriores do Amazon EMR.

    CREATE VIEW "customer" ( pk VARCHAR PRIMARY KEY, "address"."state" VARCHAR, "address"."street" VARCHAR, "address"."city" VARCHAR, "address"."zip" VARCHAR, "cc"."number" VARCHAR, "cc"."expire" VARCHAR, "cc"."type" VARCHAR, "contact"."phone" VARCHAR) COLUMN_ENCODED_BYTES=0; CREATE INDEX my_index ON "customer" ("customer"."state") INCLUDE("PK", "customer"."city", "customer"."expire", "customer"."type"); SELECT "customer"."type" AS credit_card_type, count(*) AS num_customers FROM "customer" WHERE "customer"."state" = 'CA' GROUP BY "customer"."type";

    Use o AWS CLI para enviar os arquivos para o bucket do S3:

    aws s3 cp copySnapshot.sh s3://amzn-s3-demo-bucket/ aws s3 cp runQuery.sh s3://amzn-s3-demo-bucket/ aws s3 cp phoenixQuery.sql s3://amzn-s3-demo-bucket/
  3. Crie uma tabela usando as seguintes etapas enviadas para o cluster que você criou na Etapa 1:

    createTable.json

    [ { "Name": "Create HBase Table", "Args": ["bash", "-c", "echo $'create \"customer\",\"address\",\"cc\",\"contact\"' | hbase shell"], "Jar": "command-runner.jar", "ActionOnFailure": "CONTINUE", "Type": "CUSTOM_JAR" } ]
    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps file://./createTable.json
  4. Use o script-runner.jar para executar o script copySnapshot.sh que foi anteriormente carregado para o bucket do S3:

    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="HBase Copy Snapshot",ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/copySnapshot.sh"]

    Isso executa um MapReduce trabalho para copiar seus dados de snapshot para o cluster HDFS.

  5. Restaure o snapshot que você copiou para o cluster usando a seguinte etapa:

    restoreSnapshot.json

    [ { "Name": "restore", "Args": ["bash", "-c", "echo $'disable \"customer\"; restore_snapshot \"customer_snapshot1\"; enable \"customer\"' | hbase shell"], "Jar": "command-runner.jar", "ActionOnFailure": "CONTINUE", "Type": "CUSTOM_JAR" } ]
    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps file://./restoreSnapshot.json
  6. Use o script-runner.jar para executar o script runQuery.sh que foi anteriormente carregado para o bucket do S3:

    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Phoenix Run Query",ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/runQuery.sh"]

    A consulta é executada e obtém os resultados do stdout da etapa. Pode levar alguns minutos para a etapa ser concluída.

  7. Examine os resultados do stdout da etapa no log do URI que você usou quando criou o cluster na Etapa 1. Os resultados devem ser algo semelhante a:

    +------------------------------------------+-----------------------------------+ | CREDIT_CARD_TYPE | NUM_CUSTOMERS | +------------------------------------------+-----------------------------------+ | american_express | 5728 | | dankort | 5782 | | diners_club | 5795 | | discover | 5715 | | forbrugsforeningen | 5691 | | jcb | 5762 | | laser | 5769 | | maestro | 5816 | | mastercard | 5697 | | solo | 5586 | | switch | 5781 | | visa | 5659 | +------------------------------------------+-----------------------------------+
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.