Hadoop, ruche, tempête, étincelle, Scala Ces points de connaissance technique sont devenus un centre de test incontournable pour les grands ingénieurs de données entrant sur le lieu de travail. Ici est principalement à partager avec vous les questions d'entretiens liées à l'outil de Warehouse HIVE!
1, comment atteindre la jointure?
A: Il existe trois méthodes de jointure:
1) Joindre, le mode de jointure le plus couramment utilisé dans la fin de la fin.La tâche principale de la carte de la carte: la balise est un enregistrement de différentes sources à la clé / la valeur de différentes tables (fichiers). Utilisez ensuite le champ de connexion comme clé, le reste et le marqueur nouvellement ajouté en tant que valeur et enfin de la sortie.
La tâche principale de la réduction de la réduction: dans la fin de la fin, le champ de connexion est terminé en tant que clé, il suffit de séparer les enregistrements de différents fichiers (dans la phase de la carte) dans chaque paquet, enfin, cartési .
2) Joignez-vous à la carte, en utilisant une scène: une petite table est très petite, une tablette est grande.
Lorsque vous soumettez un travail, mettez le petit fichier de table dans DistributedCache, puis retirez la petite table de Distributecache, joindre une interprétation de la clé / valeur, mettez-la en mémoire (vous pouvez agrandir la carte de hachage, etc. Conteneur dans le conteneur . Ensuite, numérisez la grande table, voir si la valeur de la touche de jointure / la valeur de chaque enregistrement dans la table Big peut trouver le même enregistrement de clé de jointure en mémoire, le résultat étant donné directement.
Mise en oeuvre: clé dans la jointure dans la petite table extrait séparément de Distributecache au nœud correspondant, numérisez la table de connexion dans la phase de la carte, la touche de jointure du filtre n'est pas filtrée avec l'enregistrement de la mémoire HASHSET, donc participant à JL'enregistrement de l'OIN est transféré sur le côté réduit via shuffle, autre et réduit la jointure.
2, la différence entre la table interne de la ruche et la table externe?
Table interne: lorsque vous construisez une table, vous créerez un répertoire de stockage d'une table dans HDFS. Lorsque vous augmentez la partition, vous copierez les données à cet emplacement, lorsque vous supprimez les données, le Les données de données et de métaux sont supprimées ensemble.
Table externe: partitionnement généralement établi, lorsque la partition ne déplace pas les données à l'emplacement de cette table, lors de la suppression des données, seule la table est supprimée. Informations de données, données de la table ne sera pas supprimé.
3, comment la ruche est-elle pour obtenir une partition?
Domembareté de la table de construction: Créez le nom de table (ID) partitionné par (DT String)
Ajouter une partition: Alter Table TableName Ajouter partition (DT = "2016-03-06")
Supprimer la partition: ALTER TABLE TABLEN NOM DROP Partition (DT = "2016-03-06")
4 . Quels sont les moyens de sauver des métadonnées, qui ont des avantages et des inconvénients.
1) Stockez dans la base de données Derby, cette méthode ne peut que activer un client HIVE, non recommandée à utiliser 2) dans la base de données MySQL, vous pouvez connecter plusieurs clients, utilisation recommandée.
5, comment la ruche est optimisée?
1) Joignez-vous à l'optimisation, essayez de placer la petite table sur le côté gauche de la jointure, si une table peut être utilisée pour utiliser Mapjoin.
2) Optimisation du tri, la commande par est faible, et la distbute de + Trier par peut également obtenir le tri mondial. 3) Utilisez des partitions et des requêtes pour réduire la récupération de données, l'enregistrement du temps.
Textfile: Le format par défaut, les données ne sont pas comprimées, la surcharge de disque est grande, la résolution de la résolution de données
Séquencefile: Hadoop API fournit un support binaire, facile à utiliser, Peut être divisé, compresser, prendre en charge trois compression, aucun, enregistrement, bloc.
RCFILE est une rangée de stockage combinée. Premièrement, les données sont divisées en ligne pour s'assurer que le même enregistrement est sur le même bloc, évitant de lire un enregistrement pour lire plusieurs blocs. Deuxièmement, le stockage de la colonne de données de blocs, facilite l'accès à la compression de données et à la colonne rapide. La consommation de performance est importante lorsque les données sont chargées, mais ont un bon rapport de compression et une bonne réponse de la requête. 7, Hive a ces avantages par rapport à Oracle?
1) Stocker, la ruche est stockée sur HDFS et Oracle est stockée dans le système de fichiers local. 2) Évolutivité, la ruche peut être étendue à des milliers de nœuds et Oracle ne peut que réduire environ 100 unités.
8, la différence entre la ruche trier par et commander par
Commande par trier globalement pour les données d'entrée, une seule REDUU, la quantité de données est très lente.
Tri par n'est pas globalement trié, ne peut que garantir que chaque réuuce est commandée, et il n'est pas garanti de régler Mapred.Reduce.Tasks & GT; 1.