编程知识 cdmana.com

Analyse de l'architecture de la plate - forme Big Data - - Prenons l'exemple de la plate - forme Big Data d'IFLYTEK Odeon

Analyse de l'architecture de la plateforme Big Data —— IFLYTEK Big Data Platform OdeonPar exemple

Définition

Odeon La plate - forme Big Data est entièrement graphique WebLa forme de l'opération offre à l'utilisateur un guichet unique pour le Big Data:Y compris la collecte de données、Organisation des tâches、 Répartition et traitement 、Présentation des données(BI)Attendez.; En même temps, fournir une gestion parfaite des droits 、Suivi des journaux、 Capacité de surveillance des grappes, etc.

Fonction

  • Canaux de données:SQL、NoSql Bases de données et journaux Nombre de sources multiples Accès et exportation

  • Gestion des données:Gestion parfaite des métadonnées、 Système de gestion des normes de qualité des données , Tout en étant complet Isolement des données Et mécanismes d & apos; autorisation

  • Analyse des données: Prise en charge du traitement par lots hors ligne 、Calcul du débit、OLAP、AdHoc Et d'autres méthodes de calcul

  • Services de données:Basé surGreenplumEtKylin Architecture des services de données pour ,OffreDaaS(Données en tant que service)Services

  • Gestion des horaires: Visualisation de la construction du flux de travail ,Basé surTime、Event Mécanisme de déclenchement égal , Surveillance complète de l'état

  • Visualisation o & M: Grappe physique 、 Travaux d'analyse 、Flux de travail、 Surveillance visuelle complète et alarme de l'utilisation des ressources

  • Déploiement rapide: Le développement et le déploiement de la plateforme adoptent le courant dominant de l'industrie DevOpsMode, Miroir complet des composants , Réaliser un déploiement rapide o & M

img

( Ce qui précède découle de la définition du site Web d'IFLYTEK. ;)

En général—— Le principal est

  • Acquisition de données,
  • Développement des données,
  • Analyse des données,
  • Programmation des données

Insérer la description de l'image ici

Acquisition de données

Il est principalement divisé en canaux structurés et en canaux journaux ;
Structure: Contient des bases de données utiles ,Par exemple:MySQL,Oracle;Etk-vDeMongoDB Attendez un peu!.
Log: Certaines données générées par les points d'ancrage générés par l'entreprise, etc. .

Insérer la description de l'image ici

Développement des données

Apache Oozie- Oui.Hadoop Cadre d'ordonnancement des flux de travail . Il s'agit d'un système de flux de travail lié à l'exécution des tâches. .Ici., L'utilisateur est autorisé à créer un flux de travail vers un diagramme non circulaire , Il peut être juxtaposé Hadoop Et fonctionne séquentiellement .

Il se compose de deux parties:

Moteur de flux de travail:La responsabilité d'un moteur de flux de travail est de stocker et d'exécuter le flux de travail,Par Hadoop Composition du travail :MapReduce, Pig, Hive.
Moteur de coordination :Il exécute des tâches de flux de travail de disponibilité basées sur des horaires prédéfinis et des données.
OozieExtensibilité et maniabilité exécuter des milliers de flux de travail en temps opportun( Chacun est composé de dizaines d'emplois )DeHadoopCluster.

Oozie Et très flexible. . Les gens peuvent facilement commencer ,Arrêtez!, Pause et rerun job .Oozie Les flux de travail échoués peuvent être facilement redirigés .Il est facile de refaire des tâches manquées ou échouées en raison d'un temps d'arrêt ou d'une défaillance. Il est même possible de sauter un noeud de défaillance spécifique .

  • SoutienOozieÉditeur, Peut être soumis et surveillé par le tableau de bord WorkflowCoordinatorEtBundle

    • OozieC'est la gestion.hadoop Système de répartition des tâches

    • Oozie.La tâche de flux de travail pour est un graphique acyclique dirigé d'une série d'actions(DAG)

    • Oozie Le travail de coordination est effectué par Temps(Fréquence) Et les données valides déclenchent le courantOozieFlux de travail

    • OozieSoutien à divershadoopOpérations,Par exemple:

      java mapreduce、Streaming mapreduce、hive、sqoopEtdistcp( Copie distribuée )Attendez un peu!, Prend également en charge les tâches spécifiques au système ,Par exemplejavaProcédures etshellScript.

    • Oozie Est extensible , Système fiable et extensible

  • Par défaut léger sqlite Données de session de gestion de base de données ,Authentification et autorisation des utilisateurs, Peut être personnalisé comme MySQL、Postgresql,EtOracle

  • Basé sur le navigateur de fichiers (File Browser)Accès àHDFS

  • Basé surHive Éditeur pour le développement et l'exécution HiveRequête

  • Soutien fondé surSolr Applications pour la recherche , Et fournit une vue visuelle des données , Et tableau de bord (Dashboard)

  • Soutien fondé surImpala Demandes de renseignements interactives

  • SoutienSpark Éditeur et tableau de bord (Dashboard)

  • SoutienPigÉditeur, Et peut soumettre des tâches de script

  • SoutienOozieÉditeur, Peut être soumis et surveillé par le tableau de bord WorkflowCoordinatorEtBundle

    • OozieC'est la gestion.hadoop Système de répartition des tâches

    • Oozie.La tâche de flux de travail pour est un graphique acyclique dirigé d'une série d'actions(DAG)

    • Oozie Le travail de coordination est effectué par **Temps(Fréquence)**Et les données valides déclenchent le courantOozieFlux de travail

    • OozieSoutien à divershadoopOpérations,Par exemple:

      java mapreduce、Streaming mapreduce、hive、sqoopEtdistcp( Copie distribuée )Attendez un peu!, Prend également en charge les tâches spécifiques au système ,Par exemplejavaProcédures etshellScript.

    • Oozie Est extensible , Système fiable et extensible

  • SoutienHBaseNavigateur, Capable de visualiser les données 、Recherche de données、ModifierHBaseTableau

    Caractéristiques

    • Opérations complexes non prises en charge , Seules les transactions au niveau de la ligne sont prises en charge , C'est - à - dire que la lecture et l'écriture d'une seule ligne de données sont atomiques ;
    • En raison de l'adoption HDFS Comme stockage sous - jacent,Donc, avec HDFS C'est pareil, Soutien à la structuration 、 Stockage semi - structuré et non structuré ;
    • Prise en charge de l'échelle en ajoutant des machines ;
    • Prise en charge de la fragmentation des données ;
    • Soutien RegionServers Défaillance automatique entre ;
    • Facile à utiliser Java Client API;
    • Soutien BlockCache Et le filtre Bloom;

    Par exemple,

    • RowKey Identifiant unique de la ligne , Toutes les lignes selon RowKey Trier dans l'ordre du dictionnaire pour ;
    • Le tableau a deux familles de colonnes ,Respectivement. personal Et office;
    • Familles de colonnes personal Propriété name、city、phone Trois colonnes ,Famille de colonnes office Propriété tel、addres Deux colonnes.

    Insérer la description de l'image ici

    Caractéristiques

    • CapacitéGrand: Un tableau peut avoir des milliards de lignes ,Des millions de colonnes;
    • Colonne orientée: Les données sont stockées par colonne ,Chaque Chaque colonne est stockée séparément ,Données en tant qu'Index, N'accédez qu'aux données de la colonne spécifiée lors de la requête , Réduit efficacement I/O Le fardeau;
    • Sparse:Vide (null) La colonne n'occupe pas d'espace de stockage ,Les tables peuvent être très peu conçues ;
    • Données Multi - Versions : Les données de chaque cellule peuvent avoir Plusieurs éditions Ben, Trier par horodatage , Les nouvelles données sont en haut ;
    • Type de stockage: Le format de stockage sous - jacent de toutes les données est Tableau d'octets (byte[]).

    Phoenix

    Phoenix - Oui. HBase Open Source SQL Niveau intermédiaire, Il vous permet d'utiliser les normes JDBC Pour faire fonctionner HBase Données sur.In Phoenix Avant,Si vous souhaitez visiter HBase, Il ne peut être appelé que Java API, Mais plutôt que d'utiliser une ligne SQL Peut réaliser la requête de données ,HBase De API C'est trop compliqué. .

    Phoenix L'idée est we put sql SQL back in NOSQL, C'est - à - dire que vous pouvez Utilisation standard SQL C'est fait. HBase Opérations sur les données .

    Cela signifie également que vous pouvez intégrer Spring Data JPA Ou Mybatis Et d'autres cadres de persistance couramment utilisés HBase.

    Deuxièmement, Phoenix Très bonne performance ,Phoenix Le moteur de requête va SQL La requête est convertie en un ou plusieurs HBase Scan, Génération de normes par exécution parallèle JDBC Ensemble de résultats. Il est utilisé directement HBase API Et co - processeurs et filtres personnalisés , Fournit des performances en millisecondes pour les petites requêtes de données , Fournit des performances au niveau des secondes pour les requêtes avec des dizaines de millions de lignes de données .En même temps Phoenix Oui. Index secondaire, etc. HBase Caractéristiques non disponibles, En raison des avantages ci - dessus ,Alors... Phoenix Oui. HBase Le meilleur SQL Niveau intermédiaire.

  • SoutienMetastoreNavigateur,AccessibleHiveMétadonnées pour,EtHCatalog

  • SoutienJobNavigateur,Accès àMapReduce Job(MR1/MR2-YARN)

    • Qu'est - ce quejob?
      Job En bref, soumettre à sparkLa Mission de.
    • Qu'est - ce questage?
      StageC'est tout.job Les étapes du processus .
    • Qu'est - ce quetask?
      TaskC'est tout.job Le processus est divisé en tâches .Task Est la plus petite Unit é d'exécution de la tâche . Et finalement, task Fonctionne en unités executorMoyenne.
    • JobEtstageEttask Quel est le rapport? ?
      Job----> Un ou plusieursstage—> Un ou plusieurstask
  • SoutienJobDesigner, Capable de créer MapReduce/Streaming/Java Job

  • SoutienSqoop 2 Éditeur et tableau de bord (Dashboard)

  • SoutienZooKeeper Navigateur et éditeur

  • SoutienMySql、PostGresql、SqliteEtOracle Éditeur de requêtes de base de données

  • Utilisersentry Autorisation fondée sur les rôles et gestion multilocataires .(Hue 2.x or 3.x)

Analyse des données

OLAP Application analytique en ligne ,Est une solution pour les requêtes d'analyse de données multidimensionnelles.TypiqueOLAP Les scénarios d'application comprennent les ventes 、Marché、 Gestion et autres rapports d'affaires , Comptes budgétaires définitifs , Rapport économique, etc. .
Le plus ancienOLAP L'outil de requête est publié à 1970AnnéeExpress, Mais intact OLAP Le concept est 1993 Année par le père de la base de données relationnelle EdgarF.Codd Présentation, Il est accompagné par la célèbre “twelvelaws of online analytical processing”. 1998 Publié par Microsoft en MicrosoftAnalysis Services, Et l'a adopté un an plus tôt OLE DB for OLAP APIIntroductionMDXLangue de requête,2001 Microsoft et HyperionPubliéXML forAnalysis En fait, OLAPCritères de requête.Aujourd'hui,MDXEst devenuSQL Tout à fait. OLAP Langue de requête, Par les familles OLAP Les fabricants soutiennent successivement .
OLAPCube Est une technique d'analyse multidimensionnelle typique ,Cube Il peut être considéré comme composé de données de différentes dimensions dataset,UnOLAP Cube Peut avoir plusieurs dimensions (Dimension), Et plusieurs faits (Factor Measure).L'utilisateur passe parOLAP Outils d'analyse multidimensionnelle des données sous plusieurs angles .On pense généralement queOLAP Comprend trois opérations d'analyse de base :Vol.(rollup)、Trébucher(drilldown)、 Tranche (slicingand dicing),Les données brutes sont agrégées et triées en vue d'une ou de plusieurs dimensions.

La traditionOLAP Selon la façon dont les données sont stockées ROLAP(Relational OLAP)EtMOLAP(Multi-dimensionOLAP)

ROLAP Stocker les données utilisées comme modèles relationnels pour l'analyse multidimensionnelle, L'avantage est un petit volume de stockage , Méthode de requête flexible , Mais les inconvénients sont évidents. , Chaque requête nécessite un calcul agrégé des données , Pour améliorer la planche courte ,ROLAP Colonnes utilisées 、Requête parallèle、Optimisation des requêtes、 Technologie d'indexation bitmap, etc.

MOLAP Stockage physique des données utilisées pour l'analyse sous forme de tableaux multidimensionnels,FormationCUBEStructure.Les valeurs d'attribut d'une dimension sont mappées à un indice ou à une plage d'indices d'un tableau multidimensionnel, Les faits sont stockés dans l'unit é de tableau sous forme de valeurs de tableaux multidimensionnels , L'avantage est une requête rapide , L'inconvénient est que la quantité de données n'est pas facile à contrôler , Des problèmes d'explosion dimensionnelle peuvent survenir .

Apache kylin Est un moteur d'analyse distribué Open Source .Il passeANSI-SQLInterface,Fournir une base de donnéeshadoop Très grand ensemble de données pour (TB-PBNiveau) Analyse multidimensionnelle de (OLAP)Fonction.

En trois étapes,kylin Sous - seconde sur un très grand ensemble de données (sub-second latency)Requête.

  • C'est sûr.hadoop Mode étoile précédent (Star schema)Ensemble de données pour.
  • Construire un cube de données (Data cube).
  • Peut passerODBC, JDBC,RESTful API Interface égale pour interroger les données pertinentes dans un délai de sous - seconde .

OLAP-KylinEst basé surApache KylinSur mesureOdeon Une source ouverte sur la plateforme Big Data OLAPMoteur. Il utilise la technique de pré - Calcul cubique multidimensionnel , Qui peut transformer les données massives SQL La vitesse de requête passe au niveau sous - sec .Vitesse de requête par rapport aux niveaux de minutes et même d'heures précédents, La vitesse de niveau subseconde augmente de 100 à 1000 fois ,Le changement de moteur ouvre la porte à l'analyse interactive des mégadonnées sur des ensembles de données à très grande échelle.

Composants de base:

Moteur de construction de cubes de données (Cube Build Engine): Prise en charge actuelle du moteur de calcul des données sous - jacent MapReduce1MapReduce2SparkAttendez..
Rest Server:En courskylinAdoptionODBC, JDBC,RESTful APIL'interface fournitwebServices.
Moteur de requête(Query Engine)REST Server Après réception de la requête ,AnalysesqlDéclarations,Générer un plan d'exécution, Puis envoyez la requête à HbaseMoyenne, Enfin, la structure est retournée à REST Server.
Insérer la description de l'image ici

  • Pourquoi introduirekylin?
    Parce que les données sont basées sur hadoopStockage réparti,Donc plus quemysql Bonne extensibilité .

Offrehadoop Super échelle de données ( 10 milliards de lignes de données ) Sous - seconde de (sub-second latency)SQLRequête,Par rapport àhive Analyse hors ligne de , Permet une requête en temps réel .
Intégration transparente des autres BIOutils,Par exemple:Tableau, PowerBI,Excel.

Insérer la description de l'image ici

Apache kylinCore:KylinDe(OLAP) Moteur par moteur de métadonnées 、Moteur de requête、 Moteur de mission 、 Composition du moteur de stockage .En plus,Il en a un autre.rest Le serveur fournit le Service de requête externe .

Extensibilité: Fournit un mécanisme de plug - in pour soutenir des fonctionnalités et des fonctionnalités supplémentaires .

Intégration avec d'autres systèmes : Calendrier des tâches intégrables ,ETLOutils、 Système de surveillance et d'alarme .

Drive Pack(Drivers):OffreODBC、JDBC Support d'entraînement et autres outils (Par exemple:Tableau)Intégration.
Tableau(Table): Le tableau est défini dans hiveMoyenne, Est un cube de données (Data cube)Source des données,Inbuild cube Avant, Doit être synchronisé à kylinMoyenne.
Modèle(model): Le modèle décrit un Modèle stellaire Structure des données pour,Il définit unTableau des faits(Fact Table) Et plusieurs tables de recherche (Lookup Table) Connexions et relations de filtrage pour .
Cube(Cube): Il définit le modèle utilisé 、 Dimensions des tableaux dans le modèle (dimension)、Mesures(measure) , Se réfère généralement à la fonction d'agrégation ,Par exemple::sum、count、averageAttendez.)、 Comment diviser les segments ( segments partition)、Fusionner les segments(segments auto-merge) Règles d'attente .
Section cubique (Cube Segment): C'est une construction cubique (build) Support de données arrière ,Un segment CartographiehbaseUn tableau en, Construction d'instances cubiques (build)Après,Il en résultera un nouveausegment,Une fois que les données brutes d'un cube déjà construit ont changé, Il suffit de rafraîchir (fresh) Période de changement associée segmentC'est tout..
Opérations(Job): Construire une instance cubique (build)Après la demande, Génère un emploi . Cette tâche enregistre une instance cubique build Informations sur les tâches à chaque étape .L'information sur l'état de l'emploi reflète l'information sur les résultats de la construction d'une instance cubique. Si l'information sur l'état d'exécution du travail est: RUNNING Heure, Indique que l'Instance cube est en cours de construction ; Si l'information sur l'état de l'emploi est FINISHED , Indique que l'Instance cube a été construite avec succès ; Si l'information sur l'état de l'emploi est ERROR , Indique que la construction de l'Instance cube a échoué ! Tous les états de l'emploi sont les suivants: :

  1,NEW - This denotes one job has been just created.
  2,PENDING - This denotes one job is paused by job scheduler and waiting for resources.
  3,RUNNING - This denotes one job is running in progress.
  4,FINISHED - This denotes one job is successfully finished.
  5,ERROR - This denotes one job is aborted with errors.
  6,DISCARDED - This denotes one job is cancelled by end users.

En coursApache kylinConstruire(build)Cube de données, Algorithme couche par couche (By Layer Cubing). L'algorithme cube rapide sera utilisé dans les prochaines versions (Fast Cubing). Voici une brève introduction à l'algorithme couche par couche :
Un cube de données complet ,ParN-dimensionCube,N-1 dimensionCube,N-2 Cube dimensionnel ,0 dimension Un cube comme celui - ci. ,Sauf queN-dimensionCube, Calcul basé sur les données originales ,Les cubes d'autres couches peuvent être calculés à partir des cubes de leurs couches mères. Donc le cœur de l'algorithme est N Subordinal MapReduceCalcul.
InMapReduceDans le modèle,key Composition d'une combinaison de dimensions ,value Composé d'une combinaison de mesures ,Quand unMap Lire un key-valueAu bon moment, Il calcule tous les sous - cubes (child cuboid), Dans chaque sous - cube ,MapDekey Supprimer une dimension ,NouveaukeyEtvalueSortie versreducerMoyenne. Jusqu'à ce que toutes les couches soient calculées , Pour compléter le calcul du cube de données

Programmation des données

Le Front End utilisehueEn tant queweb UI; Adoptionwappalyzer Vous pouvez voir les composants de base

HueC'est unWebApplication(Port par défaut8888), Utilisé pour simplifier les utilisateurs et Hadoop Interaction des grappes .

HueArchitecture technique,Comme le montre la figure ci - dessous,Dans l'ensemble,Hue L'application utilise: B/SArchitecture,hueEst basé surdjangoDéveloppement du cadre,python Comme langue sous - jacente .

Il peut être divisé en trois niveaux. , Avant, respectivement. viewCouche、Web Niveau de service et BackendNiveau de service.Web Niveau de service et Backend Utilisation entre les niveaux de service RPC((Remote Procedure Call)—Appel de procédure à distance)Appelé de la manière.

Pourquoi utiliserhueEt alors?? Parce qu'il y a beaucoup de cadres de Big Data , Pour résoudre un problème , En général, plusieurs cadres sont utilisés , Mais chaque cadre a son propre web UIInterface de surveillance, Correspond à un numéro de port différent .Par exemple,HDFS(50070)YARN(8088)MapReduce(19888)Attendez.. Il y en a un en ce moment. Unifiedweb UIInterfaceIl est très pratique de gérer chaque cadre commun de Big Data. Cela permet le développement de mégadonnées 、 Surveillance et entretien plus pratiques .

Composants Big Data Port commun et description
CDH 7180: Cloudera Manager WebUI Port
7182: Cloudera Manager Server Avec Agent Port de communication
Hadoop 50070:HDFS WEB UI Port
8020 : Très disponible HDFS RPC Port
9000 : Non très disponible HDFS RPC Port
8088 : Yarn De WEB UI Interface
8485 : JournalNode De RPC Port
8019 : ZKFC Port
19888:jobhistory WEB UI Port
Zookeeper 2181 : Connexion client zookeeper Le port de
2888 : zookeeper Utilisation des communications intracluster ,Leader Écouter ce port
3888 : zookeeper Port Pour les élections leader
Hbase 60010:Hbase De master De WEB UI Port (Vieux.) Ce qui est nouveau 16010
60030:Hbase De regionServer De WEB UI Port de gestion
Hive 9083 : metastore Port d'écoute par défaut du Service
10000:Hive De JDBC Port
Spark 7077 : spark De master Avec worker Port de communication standalone Présentation groupée Application Le port de
8080 : master De WEB UI Port Planification des ressources
8081 : worker De WEB UI Port Planification des ressources
4040 : Driver De WEB UI Port Calendrier des tâches
18080:Spark History Server De WEB UI Port
Kafka 9092: Kafka Communication entre noeuds de Cluster RPC Port
Redis 6379: Redis Port de service
HUE 8888: Hue WebUI Port

http://221.239.36.178/

Supplément

  • Big Data Family bucket

img

  • IaaS,PaaS,SaaS,DaaS

Données en tant que service(Data-as-a-Service,DaaS)Signifie que tout service lié aux données peut se produire dans un endroit centralisé, Comme l'agrégation 、Gestion de la qualité des données、 Nettoyage des données, etc. , Les données sont ensuite mises à la disposition de différents systèmes et utilisateurs. , Sans tenir compte de la source des données .

IaaS,PaaS,SaaS

DevOps:Developer Operations Engineering, Development o & M Engineer .

  • RPC

RPC:Appel à distance.AdoptionRPCCadre,Cela nous permet d'appeler des méthodes sur des machines distantes comme si elles étaient locales:

1、 Appeler une méthode de fonction localement

2、 Local machine RPC Le cadre encapsule l'information d'appel (Fonction appelée、 Participation ),Sérialisation(json、xmlAttendez.)Après, Envoyé au serveur distant par transfert réseau

3、 Lorsque le serveur distant reçoit une demande d'appel , Machine distante RPC Désrialisation du cadre pour obtenir des informations sur l'appel ,Et localiser la méthode à exécuter en fonction des informations d'appel, Après avoir exécuté cette méthode , Résultats de l'exécution de la sérialisation , Envoyer les résultats d'exécution à la machine locale par transmission réseau

4、 Local machine RPC Le cadre désérialise les résultats d'exécution ,FonctionsreturnCe résultat

preview

https://www.jianshu.com/p/849452eb80ab
https://www.xfyun.cn/solution/big-data-platform
http://gethue.com/
http://bh-lay.github.io/demos/vue/layout-editor/
https://blog.csdn.net/liangyihuai/article/details/54137163
http://huxiaoqiang.github.io/2016/07/17/hadoop%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA/
http://221.239.36.178/accounts/login/?next=%2Fodeon%2Fnotebook%2F%23%2Findex%2Fnotebook-list
https://www.oreilly.com/radar/bringing-interactive-bi-to-big-data/
https://fusioninsight.github.io/ecosystem/zh-hans/SQL_Analytics/Apache_Kylin_2.6.1/#_1
https://dxj1113.github.io/2017/07/17/Kylin%E5%88%9D%E6%8E%A2/

版权声明
本文为[Sun zhongming]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/10/20211013211945018R.html

Scroll to Top