DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Big Data Zone»Tutoriel Presto pratique : Presto 105
    Big Data Zone

    Tutoriel Presto pratique : Presto 105

    octobre 21, 2021
    Tutoriel Presto pratique : Presto 105
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    introduction

    Il s’agit du 5e didacticiel de notre série Premiers pas avec Presto. Pour récapituler, voici les 4 premiers tutoriels :

    Presto est un moteur SQL de requêtes parallèles distribuées open source qui s’exécute sur un cluster de nœuds. Dans ce didacticiel, nous allons vous montrer comment exécuter Presto avec AWS Glue en tant que catalogue sur un ordinateur portable.

    Nous avons mentionné dans le tutoriel Presto 104 pourquoi nous utilisons un catalogue. Pour rappel, Presto est un moteur de base de données désagrégé. Cela signifie que Presto possède la partie supérieure de la pile de base de données – l’analyseur SQL, le compilateur, l’optimiseur, le planificateur, le moteur d’exécution – mais il n’a pas d’autres composants de la base de données – cela inclut le catalogue système. Dans le monde des lacs de données, le catalogue système où réside le schéma de la base de données est un catalogue. Deux catalogues populaires ont vu le jour : le catalogue Hive Metastore et AWS Glue.

    Colle AWS est une plate-forme informatique sans serveur basée sur les événements fournie par AWS. AWS Glue fournit un service d’intégration de données qui facilite la découverte, la préparation et la combinaison de données pour l’analyse, l’apprentissage automatique et le développement d’applications. Le catalogue AWS Glue effectue le mappage entre les tables et colonnes de la base de données et les objets ou fichiers qui résident dans le lac de données. Il peut s’agir de fichiers ou d’objets immuables dans AWS S3.

    Dans ce didacticiel, nous nous concentrerons sur l’utilisation de Presto avec AWS Glue sur votre ordinateur portable.

    Ce document simplifie le processus d’un scénario d’ordinateur portable pour vous aider à démarrer. Pour les charges de travail de production réelles, vous pouvez essayer Ahana Cloud qui est un service géré pour Presto sur AWS et est pré-intégré avec un catalogue AWS Glue.

    Étapes de mise en œuvre

    Étape 1:

    Créez un espace de noms réseau Docker, afin que les conteneurs puissent communiquer entre eux à l’aide de l’espace de noms réseau.

    C:Usersrupendran>docker network create presto_networkd0d03171c01b5b0508a37d968ba25638e6b44ed4db36c1eff25ce31dc435415b

    Étape 2:

    Ahanaio a développé un bac à sable pour prestodb qui peut être téléchargé à partir de docker hub, utilisez la commande ci-dessous pour télécharger le bac à sable prestodb, qui est fourni avec tous les packages nécessaires pour exécuter prestodb.

    C:Usersprestodb>docker pull ahanaio/prestodb-sandbox
    Using default tag: latest
    latest: Pulling from ahanaio/prestodb-sandbox
    da5a05f6fddb: Pull complete                                                          
    e8f8aa933633: Pull complete                                                          
    b7cf38297b9f: Pull complete                                                          
    a4205d42b3be: Pull complete                                                          
    81b659bbad2f: Pull complete                                                          
    ef606708339: Pull complete                                                          
    979857535547: Pull complete                                                          
    Digest: sha256:d7f4f0a34217d52aefad622e97dbcc16ee60ecca7b78f840d87c141ba7137254
    Status: Downloaded newer image for ahanaio/prestodb-sandbox:latest
    docker.io/ahanaio/prestodb-sandbox:latest

    Étape 3:

    Démarrez l’instance du sandbox prestodb et nommez-la en tant que coordinateur

    #docker run -d -p 8080:8080 -it --net presto_network --name coordinator
    ahanaio/prestodb-sandboxd
    b74c6f7c4dda975f65226557ba485b1e75396d527a7b6da9db15f0897e6d47f

    Étape 4:

    Nous souhaitons uniquement que le coordinateur s’exécute sur ce conteneur sans le nœud de travail. Modifions donc le fichier config.properties et définissons le node-scheduler.include-cooridinator sur false.

    sh-4.2# cat etc/config.properties
    coordinator=true
    node-scheduler.include-coordinator=false
    http-server.http.port=8080
    discovery-server.enabled=true
    discovery.uri=http://localhost:8080
    sh-4.2#

    Étape 5 :

    Redémarrez le coordinateur en cours d’exécution du conteneur Docker. Depuis que nous avons mis à jour le fichier de configuration pour exécuter cette instance uniquement en tant que coordinateur Presto et avons arrêté le service de travail.

    # docker restart coordinator

    Étape 6 :

    Créez trois autres conteneurs en utilisant ahanaio/prestodb-sandbox

    user@presto:~$docker run -d -p 8081:8081 -it --net presto_network --name worker1
    ahanaio/prestodb-sandbox
    
    user@presto:~$docker run -d -p 8082:8082 -it --net presto_network --name worker2
    ahanaio/prestodb-sandbox
    
    user@presto:~$docker run -d -p 8083:8083 -it --net presto_network --name worker3
    ahanaio/prestodb-sandbox

    Étape 7 :

    Modifiez le fichier etc/config.properties dans chacun des trois conteneurs de travail et définissez le coordinateur sur false, http-server.http.port sur 8081/8082/8083 respectivement pour chaque travailleur et enfin discovery.uri doit pointer vers le coordinateur.

    sh-4.2# cat etc/config.properties
    coordinator=false
    http-server.http.port=8081
    discovery.uri=http://coordinator:8080

    Étape 8 :

    Nous allons maintenant installer aws-cli et configurer AWS glue sur le coordinateur et les conteneurs de travail.

    Étape 9 :

    Créer un utilisateur de colle et l’attacher à la stratégie AmazonS3FullAccess et AWSGlueConsoleFull Access

    aws iam create-user --user-name glueuser
    {
        "User": {
            "Path": "https://dzone.com/",
            "UserName": "glueuser",
            "UserId": "AXXXXXXXXXXXXXXXX",
            "Arn": "arn:aws:iam::XXXXXXXXXX:user/glueuser",
            "CreateDate": "2021-10-07T01:07:28+00:00"
        }
    }
    
    aws iam list-policies | grep AmazonS3FullAccess
                "PolicyName": "AmazonS3FullAccess",
                "Arn": "arn:aws:iam::aws:policy/AmazonS3FullAccess",
    
    aws iam list-policies | grep AWSGlueConsoleFullAccess
                "PolicyName": "AWSGlueConsoleFullAccess",
                "Arn": "arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess",
    
    aws iam attach-user-policy --user-name glueuser --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"
    
    aws iam attach-user-policy --user-name glueuser --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"

    Étape 10 :

    Créer une clé d’accès

    % aws iam create-access-key --user-name glueuser
    {
       "AccessKey": {
           "UserName": "glueuser",
            "AccessKeyId": "XXXXXXXXXXXXXXXXXX", 
           "Status": "Active",
            "SecretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "CreateDate": "2021-10-13T01:50:45+00:00"
        }
    }

    Étape 11 :

    Exécutez aws configure et entrez l’accès et la clé secrète configurés.

    aws configure
    AWS Access Key ID [None]: XXXXXXXXXXXXXAWS
    Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Default region name [None]:
    Default output format [None]

    Étape 12 :

    Créez le fichier /opt/presto-server/etc/catalog/glue.properties, ajoutez les propriétés AWS Glue à presto, ce fichier doit être ajouté sur les conteneurs de coordinateur et de travail. Ajoutez les clés d’accès et secrètes AWS générées à l’étape précédente à hive.metastore.glue.aws-access-key et hive.metastore.glue.aws-secret-key.

    connector.name=hive-hadoop2
    hive.metastore=glue
    hive.non-managed-table-writes-enabled=true
    hive.metastore.glue.region=us-east-2
    hive.metastore.glue.aws-access-key=<your AWS key>
    hive.metastore.glue.aws-secret-key=<your AWS Secret Key>

    Étape 13 :

    Redémarrez le coordinateur et tous les conteneurs de nœuds de calcul

    #docker restart coordinator
    #docker restart worker1
    #docker restart worker2
    #docker restart worker3

    Étape 14 :

    Exécutez le presto-cli et utilisez de la colle comme catalogue

    bash-4.2# presto-cli --server localhost:8080 --catalog glue

    Étape 15 :

    Créez un schéma à l’aide de l’emplacement S3.

    presto:default> create schema glue.demo with (location= 's3://Your_Bucket_Name/demo');
    CREATE SCHEMA
    presto:default> use demo;

    Étape 16 :

    Créer une table sous le schéma glue.demo

    presto:demo> create table glue.demo.part with (format="parquet") AS select * from tpch.tiny.part;
    CREATE TABLE: 2000 rows
        
    Query 20211013_034514_00009_6hkhg, FINISHED, 1 node
    Splits: 19 total, 19 done (100.00%)
    0:06 [2K rows, 0B] [343 rows/s, 0B/s]

    Étape 17 :

    Exécutez l’instruction select sur la table nouvellement créée.

    presto:demo> select * from glue.demo.part limit 10; 
    partkey |                   name                   |      mfgr      |  brand
    ---------+------------------------------------------+----------------+---------
           1 | goldenrod lavender spring chocolate lace | Manufacturer#1 | Brand#13
           2 | blush thistle blue yellow saddle         | Manufacturer#1 | Brand#13
           3 | spring green yellow purple cornsilk      | Manufacturer#4 | Brand#42
           4 | cornflower chocolate smoke green pink    | Manufacturer#3 | Brand#34
           5 | forest brown coral puff cream            | Manufacturer#3 | Brand#32
           6 | bisque cornflower lawn forest magenta    | Manufacturer#2 | Brand#24
           7 | moccasin green thistle khaki floral      | Manufacturer#1 | Brand#11
           8 | misty lace thistle snow royal            | Manufacturer#4 | Brand#44
           9 | thistle dim navajo dark gainsboro        | Manufacturer#4 | Brand#43
          10 | linen pink saddle puff powder            | Manufacturer#5 | Brand#54

    Sommaire

    Dans ce didacticiel, nous fournissons des étapes pour utiliser Presto avec AWS Glue en tant que catalogue sur un ordinateur portable.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.