Preguntes D'entrevista

Les 100 millors preguntes i respostes de l'entrevista Hive

30 d'octubre de 2021

És una ajuda per saber quin tipus de preguntes es fan habitualment durant una entrevista Hive. Amb ganes de convertir-se en un Hadoop Desenvolupador? Aquí teniu algunes preguntes de l'entrevista Hive. Esperem que aquestes 100 preguntes i respostes principals d'entrevistes de rusc us preparen per a la vostra propera entrevista Hadoop. A continuació es mostra la llista de preguntes d'entrevista d'Apache Hive que s'han formulat per als brainstormers d'Apache Hive.

Principals preguntes i respostes de l'entrevista Hive

Taula de continguts

1. Quin tipus d'aplicació de magatzem de dades és adequada per a Hive? Quins tipus de taules hi ha a Hive?

Hive no es considera una base de dades completa. Les regles i regulacions de disseny de Hadoop i HDFS han posat restriccions sobre el que Hive pot fer. Tanmateix, Hive és més adequat per a estructures de dades en aplicacions de magatzem perquè:

  • Analitza dades relativament estàtiques.
  • Té menys temps de resposta.
  • no fa canvis ràpids en les dades.

Tot i que Hive no ofereix les funcions fonamentals necessàries per al processament de transaccions en línia (OLTP), és adequat per a un marc de magatzem de dades en grans conjunts de dades.

Hi ha dos tipus de dades de taules presents a Hive:

  • Taules gestionades
  • Taules externes

2. Expliqueu la unió SMB a Hive?

A la unió SMB a Hive, cada mapeador persegueix un cub de la primera taula i el cub relacionat de la segona taula, i després d'això, es realitza una unió d'ordenació de combinació. Les unions d'Ordenar Merge Bucket (SMB) al rusc són les més utilitzades, ja que no hi ha restriccions a la unió de fitxers, segments o taules.

La unió SMB es pot utilitzar millor quan les dades de la taula emmagatzemades són grans. A la unió SMB, les seccions estan agrupades i disposades per utilitzar els segments d'unió. El directori de la taula hauria de tenir un nombre similar de cubs a la unió SMB.

3. En què es diferencia HIVE de RDBMS?

  • RDBMS admet l'esquema en escriptura, mentre que Hive proporciona l'esquema en lectura.
  • A Hive, podem escriure una vegada, però en RDBMS podem escriure tantes vegades com vulguem.
  • Hive pot gestionar grans conjunts de dades, mentre que RDBMS no pot gestionar més de 10 TB.
  • Hive és altament escalable, però l'escalabilitat en RDBMS costa una pèrdua.
  • Hive té una característica de Bucketing que no hi ha a RDBMS.

4. Quins tipus de bases de dades admet Hive?

Per a l'emmagatzematge de metadades d'un sol usuari, el sistema de bases de dades Hive utilitza una base de dades derby, i per a múltiples usuaris Metadades o cas de metadades compartides Hive utilitza MYSQL .

5. A Apache Hive, com podeu habilitar els cubs?

A Hive, podeu habilitar els compartiments mitjançant l'ordre següent: set.hive.enforce.bucketing=true;

Vegeu també Les 100 millors preguntes i respostes d'entrevista Ansible

6. Apache Hive és apte per utilitzar-lo en sistemes OLTP? Per què?

No, no és adequat per al sistema OLTP, ja que no ofereix insercions ni actualitzacions a nivell de fila.

7. Quina és la funcionalitat de l'inspector d'objectes a Apache Hive?

A Hive, l'anàlisi de l'estructura interna dels segments, columnes i elements complexos s'ha acabat utilitzant la funcionalitat de l'inspector d'objectes. La funcionalitat de l'inspector de preguntes posa a disposició dels camps interiors, que estan presents dins dels objectes.

8. Quines són les limitacions d'Apache Hive?

  • No podem realitzar consultes en temps real amb Hive.
  • No ofereix actualitzacions a nivell de fila.
  • Per a la navegació interactiva per dades, Hive ofereix una latència acceptable.
  • Hive no és l'opció correcta per al processament de transaccions en línia.

9. Quins són els diferents modes de l'Apache Hive?

De vegades, a les preguntes de l'entrevista del rusc, als entrevistadors els agrada fer aquestes preguntes bàsiques per veure la confiança que tens quan es tracta dels teus coneixements sobre Hive. Respon dient que Hive de vegades pot funcionar en dos modes, que són el mode MapReduce i el mode local. Expliqueu que això depèn de la mida dels DataNodes a Hadoop.

10. Què és Hive Bucketing?

Quan es realitzen consultes sobre grans conjunts de dades en un rusc Apache, el bucketing pot oferir una millor estructura a les taules Hive. Per exemple, el bucketing pot donar als programadors més flexibilitat pel que fa al manteniment de registres i pot facilitar la depuració de grans conjunts de dades quan sigui necessari.

Principals preguntes i respostes de l'entrevista Hive

11. Quina diferència hi ha entre partició i bucketing?

L'objectiu principal tant del particionament com del bucketing és executar la consulta de manera més eficient. Quan esteu creant una taula present de dades, les parts es fixen en la partició de la taula.

12. On s'emmagatzemen les dades d'una taula a Hive?

En un directori HDFS: /user/hive/warehouse, les dades de la taula s'emmagatzemen només per defecte. A més, especificant el directori desitjat al paràmetre de configuració hive.metastore.warehouse.dir present al hive-site.xml, es pot canviar.

13. Com es produeix la transferència de dades d'HDFS a Hive?

Si les dades ja estan presents a HDFS, l'usuari no necessita CARREGAR LES DADES que mouen els fitxers a /user/hive/warehouse/. Per tant, l'usuari simplement ha de definir la taula utilitzant la paraula clau externa que crea la definició de la taula al metamagatzem del rusc.

14. Què fa el processador de consultes Hive?

El processador de consultes Hive converteix els gràfics de treballs de MapReduce amb el marc de temps d'execució perquè els treballs es puguin executar per ordre de dependències.

15. Explica sobre ORDENAR PER, ORDENAR PER, DISTRIBUIR PER i CLUSTER PER a Hive.

ORDENAR PER - Les dades s'ordenen a cadascun dels reductors 'N' on els reductors poden tenir un rang de dades superposat.

ORDER BY- Això és similar al ORDER BY a les consultes SQL on l'ordenació total de les dades es fa passant-les a un únic reductor.

DISTRIBUIR PER – S'utilitza per distribuir les files entre els reductors. Les files que tinguin la mateixa distribució per columnes aniran al mateix reductor.

CLUSTER BY- És una combinació de DISTRIBUTE BY i SORT BY on cadascun dels N reductors obté un rang de dades no superposat que després s'ordena per aquests rangs als respectius reductors.

16. Quina diferència hi ha entre el metamagatzem local i el remot?

Metamagatzem local: és el servei de configuració de metamagatzem incrustat que s'executa a la mateixa JVM en què s'executa el servei Hive i es connecta a una base de dades que s'executa en una JVM independent.

Metamagatzem remot: en aquesta configuració, el servei de metamagatzem s'executa a la seva pròpia JVM independent i no a la JVM del servei Hive.

17. Quines classes s'utilitzen a Hive per llegir i escriure fitxers HDFS?

Hive utilitza les següents classes per llegir i escriure fitxers HDFS:

  • TextInputFormat/HiveIgnoreKeyTextOutputFormat: aquestes 2 classes llegeixen/escriuen dades en format de fitxer de text senzill.
  • SequenceFileInputFormat/SequenceFileOutputFormat: aquestes 2 classes llegeixen/escriuen dades en format Hadoop SequenceFile.

18. Expliqueu la funcionalitat d'ObjectInspector.

ObjectInspector ajuda a analitzar l'estructura interna d'un objecte fila i l'estructura individual de columnes a Hive. També proporciona una manera uniforme d'accedir a objectes complexos que es poden emmagatzemar en diversos formats a la memòria.

  • Una instància de classe Java.
  • Un objecte Java estàndard.
  • Un objecte inicialitzat mandrós

ObjectInspector indica l'estructura de l'objecte i també les maneres d'accedir als camps interns dins de l'objecte.

19. Què és la funcionalitat ObjectInspector a Hive?

Hive utilitza ObjectInspector per analitzar l'estructura interna del tipus de dades de files i columnes. A més, ens ofereix maneres d'accedir als camps interns dins de l'objecte. No només processa tipus de dades habituals com int, bigint, STRING, sinó que també processa tipus de dades complexos com matrius, mapes, estructures i unió.

20. Com ajuda el bucketing a una execució més ràpida de consultes?

Aquest tipus de preguntes i respostes d'entrevista de rusc serveixen per familiaritzar el candidat amb els suports essencials de rusc, el llenguatge de consulta de rusc i l'índex de rusc.

Si heu d'unir dues taules grans, podeu optar per una unió lateral reduïda. Però si ambdues taules tenen el mateix nombre de cubs o els mateixos múltiples de cubs i també s'ordenen a la mateixa columna, hi ha la possibilitat d'SMBMJ en què totes les unions es produeixin en la fase del mapa en si fent coincidir els cubs corresponents.

Hi ha diferents propietats que heu de configurar per a les unions de mapes de cubs i són les següents:

set hive.enforce.sort merge bucket map join = false; establir hive.auto.convert.sortmerge.join = fals; establir hive.optimize.bucketmapjoin = true; establiu hive.optimize.bucketmapjoin.sortedmerge = true

Principals preguntes i respostes de l'entrevista Hive

21. Per què mapreduce no s'executarà si executeu select * d'una taula en un rusc?

Quan feu una selecció * de , Hive obté totes les dades del fitxer com a FetchTask en lloc d'una tasca de mapreduce que només aboca les dades tal com estan sense fer-hi res. Això és similar a hadoop dfs -text . Tanmateix, mentre s'utilitza select from , Hive requereix un treball de reducció de mapes, ja que ha d'extreure la 'columna' de cada fila analitzant-la del fitxer que carrega.

22. Què és Hive MetaStore?

Hive MetaStore és un dipòsit central de Hive, que permet emmagatzemar metadades en bases de dades externes. Per defecte, la ubicació de la botiga Hive és les metadades en una instància de base de dades derby incrustada, però podeu emmagatzemar-la a MySql, Oracle depèn del projecte.

23. Quines són les tres maneres diferents en què es poden executar els ruscs?

  • Mode local
  • Mode distribuït
  • Mode pseudodistribuït

24. Com es pot evitar que una feina gran funcioni durant molt de temps?

Això es pot aconseguir configurant els treballs de MapReduce perquè s'executin en mode estricte, set hive.mapred.mode=strict. El mode estricte garanteix que les consultes en taules de particions particulars no s'executin sense definir una clàusula WHERE.

25. Quan fem servir explode a Hive?

Els desenvolupadors d'Hadoop de vegades prenen una matriu com a entrada i la converteixen en una fila de taula separada. Per convertir tipus de dades complexos en els formats de taula desitjats, Hive utilitza explode.

26. Quins són els diferents components d'una arquitectura Hive?

Hive Architecture consta de:

  • Interfície d'usuari: el component de la interfície d'usuari de l'arquitectura Hive crida la interfície d'execució al controlador.
  • Controlador: el controlador crea un controlador de sessió per a la consulta i envia la consulta al compilador per generar un pla d'execució.
  • Metastore: envia les metadades al compilador per a l'execució de la consulta en rebre la sol·licitud sendMetaData.
  • Compilador: el compilador genera el pla d'execució que és un DAG d'etapes on cada etapa és una operació de metadades, un mapa o un treball de reducció o una operació a HDFS.
  • Motor d'execució: el motor d'execució s'encarrega d'enviar cadascuna d'aquestes etapes als components rellevants mitjançant la gestió de les dependències entre les diferents etapes del pla d'execució generat pel compilador.

27. Com es pot connectar una aplicació, si executeu Hive com a servidor?

Quan executeu Hive com a servidor, l'aplicació es pot connectar d'una de les 3 maneres:

  • Controlador ODBC: és compatible amb el protocol ODBC
  • Controlador JDBC: és compatible amb el protocol JDBC
  • Thrift Client: aquest client es pot utilitzar per fer trucades a totes les ordres del rusc utilitzant diferents llenguatges de programació com PHP, Python, Java, C++ i Ruby.

28. Podem CARREGAR dades en una vista?

No. Una vista no pot ser l'objectiu d'una instrucció INSERT o LOAD.

29. És possible afegir 100 nodes quan ja tenim 100 nodes a Hive? En cas afirmatiu, com?

Sí, podem afegir els nodes seguint els passos següents:

  • Pas 1: Preneu un sistema nou; crear un nom d'usuari i una contrasenya nous
  • Pas 2: instal·leu SSH i amb el node mestre configureu connexions SSH
  • Pas 3: afegiu la clau d'identificació ssh public_rsa al fitxer authorized_keys
  • Pas 4: afegiu el nou nom d'amfitrió de DataNode, l'adreça IP i altres detalls al fitxer d'esclaus /etc/hosts: 192.168.1.102 slave3.in slave3
  • Pas 5: inicieu el DataNode en un nou node
  • Pas 6: inicieu sessió al nou node com suhadoop o: ssh -X hadoop@192.168.1.103
  • Pas 7: inicieu HDFS del node esclau recentment afegit mitjançant l'ordre següent: ./bin/hadoop-daemon.sh start data node
  • Pas 8: comproveu la sortida de l'ordre jps al nou node

30. Hive pot processar qualsevol tipus de format de dades?

Aquesta és una de les preguntes habituals de l'entrevista de rusc.

Sí, Hive utilitza la interfície SerDe per a operacions d'IO. Les diferents interfícies SerDe poden llegir i escriure qualsevol tipus de dades. Si el normal processa directament les dades, mentre que diferents tipus de dades es troben a Hadoop, Hive utilitza una interfície SerDe diferent per processar aquestes dades.

Vegeu també Les 100 principals preguntes i respostes de l'entrevista de JavaScript

31. Com podeu evitar que es consulti una partició?

Podeu evitar que es consulti una partició mitjançant la clàusula ENABLE OFFLINE amb la instrucció ALTER TABLE.

32. Què és una variable Hive? Per a què el fem servir?

Les variables Hive es creen bàsicament a l'entorn Hive al qual fan referència els llenguatges de script Hive. Permeten passar alguns valors a una consulta Hive quan la consulta comença a executar-se. Utilitzen l'ordre d'origen.

33. Què és SerDe a Apache Hive?

Un SerDe és un nom curt per a un Serialitzador Deserializer. Hive utilitza SerDe per llegir i escriure dades de taules externes de hive. Un concepte important darrere de Hive és que NO posseeix el format del sistema de fitxers Hadoop en què s'emmagatzemen les dades. Els usuaris poden escriure fitxers a HDFS amb les eines/mecanismes que vulguin (CREAR TAULA EXTERNA o CARREGAR DATA INPATH, ) i utilitzar Hive per analitzar correctament aquest format de fitxer d'una manera que pugui utilitzar Hive.

34. Sempre que executem una consulta Hive, es crea una nova metastore_db. Per què?

Es crea un metamagatzem local quan executem Hive en un mode incrustat. Abans de crear-lo, comprova si el metamagatzem existeix o no, i aquesta propietat del metamagatzem es defineix al fitxer de configuració, hive-site.xml.

La propietat és: javax.jdo.option.ConnectionURL amb el valor predeterminat: jdbc:derby:;databaseName=metastore_db;create=true.

Per tant, hem de canviar el comportament de la ubicació a un camí absolut perquè des d'aquesta ubicació es pugui utilitzar el metamagatzem.

35. Podem canviar el tipus de dades d'ubicació predeterminat d'una columna en una taula de rusc?

Utilitzant l'opció de columna REPLACE: ALTER TABLE nom_taula REPLACE COLUMNS

36. Per què Hive no emmagatzema informació de metadades a HDFS?

Hive emmagatzema informació de metadades a la metamagatzem mitjançant RDBMS en lloc d'HDFS. El motiu principal per triar RDBMS és aconseguir una latència baixa perquè les operacions de lectura/escriptura HDFS són processos que consumeixen molt de temps.

37. Com hive deserialitza i serialitza les dades?

Normalment, mentre llegeix/escriu les dades, l'usuari es comunica primer amb el format d'entrada. A continuació, es connecta amb el lector de registres per llegir/escriure registres. Per serialitzar les dades, les dades van a una fila. Aquí l'inspector d'objectes d'ús personalitzat deserialitzat per deserialitzar les dades dels camps.

38. Què és RegexSerDe?

Regex significa una expressió regular. Sempre que vulgueu tenir una mena de concordança de patró, basada en la concordança de patró, heu d'emmagatzemar els camps. RegexSerDe està present a org.apache.hadoop.hive.contrib.serde2.RegexSerDe.

A les SerDeproperties, heu de definir el vostre patró d'entrada i els camps de sortida. Per exemple, heu d'obtenir els valors de la columna de la línia xyz/pq@def si voleu prendre xyz, pq i def per separat.

39. Quan es carreguen dades a una taula de rusc mitjançant la clàusula LOAD DATA, com s'especifica que és un fitxer hdfs i no un fitxer local?

En ometre la CLÀUSULA LOCAL a la instrucció LOAD DATA.

40. Explica els diferents tipus de particions a Hive?

La partició a Hive ajuda a podar les dades en executar les consultes per accelerar el processament. A les particions estàtiques, el nom de la partició està codificat en dur a la instrucció d'inserció, mentre que, en una partició dinàmica, Hive identifica automàticament la partició en funció del valor del camp de la partició.

Principals preguntes i respostes de l'entrevista Hive

41. Quina és la importància de la clàusula ‘IF EXISTS’ en deixar anar una taula?

Quan emetem l'ordre DROP TABLE IF EXISTS nom_taula, Hive genera un error si la taula que s'està deixant no existeix en primer lloc.

42. Com pot Hive evitar mapreduce?

Si establim la propietat hive.exec.mode.local.auto en true, hive evitarà que mapreduce obtingui els resultats de la consulta.

43. Quina relació hi ha entre MapReduce i Hive? o Com s'envien els treballs de Mapreduce al clúster?

Hive no ofereix cap capacitat addicional a MapReduce. Els programes s'executen com a treballs de MapReduce mitjançant l'intèrpret. L'intèrpret s'executa en una màquina client que converteix les consultes HiveQL en treballs de MapReduce. Framework envia aquests treballs al clúster.

44. Què és la funcionalitat ObjectInspector?

Hive utilitza ObjectInspector per analitzar l'estructura interna de l'objecte fila i també l'estructura de les columnes individuals. ObjectInspector proporciona una manera uniforme d'accedir a objectes complexos que es poden emmagatzemar en diversos formats a la memòria, com ara:

Instància d'una classe Java (Thrift o Java natiu):

  • Un objecte Java estàndard (utilitzem java.util.List per representar Struct i Array, i java.util.Map per representar Map).
  • Un objecte amb una inicialització perdent (per exemple, una estructura de camps de cadena emmagatzemats en un únic objecte de cadena Java amb un desplaçament inicial per a cada camp) Un objecte complex es pot representar amb un parell d'ObjectInspector i Java Object. ObjectInspector no només ens indica l'estructura de l'objecte, sinó que també ens ofereix maneres d'accedir als camps interns dins de l'objecte.

45. Suposem que vull supervisar totes les transaccions obertes i avortades al sistema juntament amb l'identificador de la transacció i l'estat de la transacció. Això es pot aconseguir amb Apache Hive?

Hive 0.13.0 i versions superiors admeten l'ordre SHOW TRANSACTIONS que ajuda els administradors a supervisar diverses transaccions del rusc.

46. ​​Es pot arxivar una partició? Quins són els avantatges i els inconvenients?

Sí. Es pot arxivar una partició. L'avantatge és que disminueix el nombre de fitxers emmagatzemats a namenode i el fitxer arxivat es pot consultar mitjançant hive. El desavantatge és que provocarà consultes menys eficients i no ofereix cap estalvi d'espai.

47. L'arxiu de taules Hive estalvia espai a HDFS?

No. Només redueix el nombre de fitxers, cosa que és més fàcil de gestionar per al node de nom.

48. Hive admet el nivell de registre Inserir, suprimir o actualitzar?

Hive no proporciona actualitzacions a nivell de registre, no insereix ni suprimeix. A partir d'ara, Hive tampoc ofereix transaccions. Tanmateix, els usuaris poden utilitzar les declaracions CASE i les funcions integrades de Hive per satisfer les operacions DML anteriors. Per tant, una consulta d'actualització complexa en un RDBMS pot necessitar moltes línies de codi a Hive.

49. Quins són els registres i el delimitador de camp predeterminats utilitzats per als fitxers de text del rusc?

Aquesta és una de les poques preguntes d'entrevista de rusc. El delimitador de registre predeterminat és − . I els delimitadors de camp són − 01,02,03.

50. Quina diferència hi ha entre la partició estàtica i la dinàmica d'una taula?

Aquest tipus d'entrevistes de rusc qüestiona suites per als novells.

Per talar les dades durant una consulta, una partició pot minimitzar el temps de consulta. La partició es crea quan s'insereixen les dades a la taula. Una partició estàtica pot inserir files individuals, mentre que una partició dinàmica pot processar tota la taula en funció d'una columna concreta. Es requereix almenys una partició estàtica per crear qualsevol partició (estàtica, dinàmica). Si esteu particionant un conjunt de dades gran, es recomana fer una mena de partició dinàmica de flux ETL.

51. Per què fem particions a Hive?

En una taula Hive, la partició proporciona granularitat. Per tant, en escanejar només les dades particionades rellevants en lloc de tot el conjunt de dades, es redueix la latència de la consulta.

52. Com ajuda el particionament a una execució més ràpida de consultes?

Amb l'ajuda de la partició, es crearà un subdirectori amb el nom de la columna particionada i quan feu una consulta mitjançant la clàusula WHERE, només s'escanejarà el subdirectori en lloc d'escanejar tota la taula. Això us permet una execució més ràpida de consultes.

53. Pots enumerar alguns serveis Hive d'ús habitual?

  • Interfície de línia d'ordres (cli)
  • Interfície web Hive (hwi)
  • HiveServer (hiveserver)
  • Impressió del contingut d'un fitxer RC amb l'eina rcfilecat.
  • Pot
  • Metamagatzem

54. Quina és la partició dinàmica màxima per defecte que pot crear un mapeador/reductor? Com ho pots canviar?

De manera predeterminada, el nombre màxim de particions que pot crear un mapeador o reductor està establert en 100. Es pot canviar emetent l'ordre següent:

SET hive.exec.max.dynamic.partitions.pernode = .

55. Per què necessitem galledes?

Bàsicament, per dur a terme el bucketing a una partició hi ha dos motius principals:

  • Una unió lateral del mapa requereix que les dades que pertanyen a una clau d'unió única estiguin presents a la mateixa partició.
  • Ens permet reduir el temps de consulta. A més, fa que el procés de mostreig sigui més eficient.

56. Podem anomenar vistes igual que el nom d'una taula Hive?

No. El nom d'una vista ha de ser únic en comparació amb la resta de taules i com a vistes presents a la mateixa base de dades.

57. Quines opcions hi ha disponibles quan es tracta d'adjuntar aplicacions al servidor Hive?

Expliqueu les tres maneres diferents (client Thrift, controlador JDBC i controlador ODBC) de connectar aplicacions al servidor Hive. També voldreu explicar el propòsit de cada opció: per exemple, utilitzar JDBC admetrà el protocol JDBC.

58. Quan hem d'utilitzar SORT BY en lloc de ORDER BY?

Malgrat ORDER BY hauríem d'utilitzar SORT BY. Sobretot quan hem d'ordenar grans conjunts de dades. El motiu és que la clàusula SORT BY ordena les dades mitjançant diversos reductors. ORDER BY ordena totes les dades amb un sol reductor. Per tant, utilitzar ORDER BY trigarà molt de temps a executar un gran nombre d'entrades.

59. Quins són els usos de Hive Explode?

Els desenvolupadors d'Hadoop consideren una matriu com a entrada i la converteixen en una fila de taula separada. Per convertir tipus de dades complicats als formats de taula desitjats, Hive utilitza Explode.

60. Podem executar ordres de l'intèrpret d'ordres UNIX des de Hive? Es poden executar consultes Hive des de fitxers d'script? En cas afirmatiu, com?

Aquest tipus de preguntes i respostes d'entrevista rusc tenen una importància moderada. Sí, podem executar ordres de l'intèrpret d'ordres UNIX des de Hive utilitzant una marca '!' abans de l'ordre. Per exemple, !pwd a l'indicador Hive mostrarà el directori actual. Podem executar consultes Hive des dels fitxers d'script mitjançant l'ordre d'origen.

Vegeu també Les 100 millors preguntes i respostes d'entrevista Ansible

Principals preguntes i respostes de l'entrevista Hive

61. Com s'optimitza el format de fitxer ORC per a l'emmagatzematge i l'anàlisi de dades?

ORC emmagatzema col·leccions de files en un fitxer i dins de la col·lecció les dades de les files s'emmagatzemaran en un format de columna. Amb el format columnar, és molt fàcil de comprimir, reduint així molts costos d'emmagatzematge. Mentre consulta també, consulta la columna concreta en lloc de consultar tota la fila, ja que els registres s'emmagatzemen en format columnar. ORC s'ha indexat a cada bloc basant-se en les estadístiques min, max, suma, compte de columnes, de manera que quan feu una consulta, ometrà els blocs basats en la indexació.

62. Quina diferència hi ha entre les taules internes i externes?

  • Taula interna: MetaStore i dades reals emmagatzemades al sistema local. En qualsevol situació, si es perden dades, es perdran tant les dades reals com el meta emmagatzematge.
  • Taula externa: l'esquema s'emmagatzema a la base de dades. Dades reals emmagatzemades a les taules Hive. Si es perden dades a la taula Externa, només es perd el metamagatzem, però no les dades reals.

63. Explica els diferents tipus d'unions a Hive.

HiveQL té 4 tipus diferents d'unions:

  • JOIN- Similar a Outer Join in SQL
  • FULL OUTER JOIN: combina els registres de les taules exteriors esquerra i dreta que compleixen la condició d'unió.
  • LEFT OUTER JOIN: es retornen totes les files de la taula de l'esquerra encara que no hi hagi coincidències a la taula dreta.
  • RIGHT OUTER JOIN: es retornen totes les files de la taula de la dreta encara que no hi hagi coincidències a la taula de l'esquerra.

64. Què és una metastore a Hive?

És una base de dades relacional que emmagatzema les metadades de taules hive, particions, bases de dades Hive, etc.

65. Quina és la funcionalitat del processador de consultes a Apache Hive?

Aquest component implementa el marc de processament per a la conversió SQL al gràfic de treballs de mapatge/reducció i al marc de temps d'execució per executar aquests treballs en ordre de dependències.

66. Quina és la utilització de Hcatalog?

Hcatalog es pot utilitzar per compartir estructures d'informació amb sistemes externs. Hcatalog dóna accés a la metamagatzem del rusc als clients d'altres dispositius a Hadoop amb l'objectiu que puguin llegir i redactar informació a un magatzem de dades del rusc.

67. Com optimitzareu el rendiment de Hive?

Hi ha diverses maneres d'executar les consultes Hive més ràpidament:

  • Utilitzant el motor d'execució Apache Tez
  • Ús de la vectorització
  • Utilitzant ORCFILE
  • fer una optimització de consultes basada en costos.

68. En el cas de Hive incrustat, el mateix metamagatzem pot ser utilitzat per diversos usuaris?

No podem utilitzar el metamagatzem en mode compartit. Es recomana utilitzar bases de dades reals autònomes com PostGreSQL i MySQL.

69. Quan utilitzar el mode de reducció de mapes?

El mode de reducció de mapa s'utilitza quan: – Funcionarà en una gran quantitat de conjunts de dades i la consulta s'executarà de manera paral·lela – Hadoop té diversos nodes de dades i les dades es distribueixen entre diferents nodes que utilitzem Hive en aquest mode – Processament s'han d'aconseguir grans conjunts de dades amb un millor rendiment

70. Quina és la importància del servidor i client Thrift, el controlador JDBC i ODBC a Hive?

Thrift és un marc RPC multiidioma que genera codi i combina una pila de programari per executar finalment el codi Thrift en un servidor remot. El compilador Thrift actua com a intèrpret entre el servidor i el client. El servidor Thrift permet que un client remot enviï una sol·licitud a Hive, utilitzant diferents llenguatges de programació com Python, Ruby i Scala.

Controlador JDBC: un controlador JDBC és un component de programari que permet que una aplicació Java interactuï amb una base de dades.

Controlador ODBC: ODBC aconsegueix la independència del SGBD utilitzant un controlador ODBC com a capa de traducció entre l'aplicació i el SGBD.

71. Quina és la base de dades predeterminada de Hive per emmagatzemar les seves metadades?

Derby és la base de dades per defecte. És un metamagatzem incrustat de Hive. El podem configurar per utilitzar qualsevol base de dades predeterminada per a metamagatzem.

72. Quin és el motor d'execució predeterminat a Hive?

Map Reduce és el motor d'execució predeterminat.

73. Com canviar el motor d'execució a Hive?

  • SET hive.execution.engine = tez

74. Quin component de Hive es connecta al clúster Hadoop per a l'execució de consultes?

Motor d'execució

75. Quin component de Hive converteix la consulta SQL en un fitxer jar per a l'execució?

Motor d'execució

76. Com veus el pla d'execució de la consulta?

Utilitzeu explicar

|_+_|

77. Com veus la base de dades en què estàs treballant actualment?

Estableix hive.cli.print.current.db = true

|_+_|

78. Quina és la ubicació d'emmagatzematge predeterminada de les taules Hive?

  • /usuari/rusc/magatzem

79. Què feu per tenir una taula que només hauria d'existir per a aquella sessió de Hive en particular?

  • Crea una taula temporal
hive> crear una taula temporal t3 (coll int, col2 string); OK Temps trigat: 0,047 segons
  • Hive 0.14 en endavant admet taules temporals. Podeu utilitzar-los com a taula normal dins d'una sessió d'usuari. La ubicació serà /tmp/hive//*.

80. Quines són les limitacions de les taules temporals Hive?

  • Només està disponible per a la sessió on es crea.
  • S'elimina automàticament quan finalitza la sessió.
  • L'opció de columna de partició no és compatible amb les taules temporals.
  • No es permet la creació d'índexs en taules temporals.
  • L'usuari no pot accedir a la taula permanent amb el mateix nom que les taules temporals durant aquesta sessió sense canviar el nom de les taules temporals.

Principals preguntes i respostes de l'entrevista Hive

81. Quins són els diferents tipus de taules a Hive?

  • Taula Temporal
  • Taula gestionada
  • Taula Externa

82. Escenari: hem d'emmagatzemar una de les dades del feed a la taula Hive i exposar-la per al consum. Quins són els passos que faràs?

  • Parleu amb l'equip d'origen i obteniu informació sobre l'esquema de les dades del feed, com ara el tipus de dades, la mida de les dades, el volum de dades, etc.
  • Parleu amb l'equip empresarial que consumirà les dades i cerqueu els criteris de cerca que utilitzaran.
  • A partir dels dos anteriors, creeu taules amb particions/bucketing/indexació, etc.

83. Quins són els terminadors predeterminats a Hive?

  • Terminador de camp -ctrl + A
  • Terminador de línia -

84. Com s'obté la informació d'esquema de les taules a Hive?

DESCRIU FORMAT

85. Podem utilitzar DESCRIBE for Database per veure els detalls?

No, només és per a taules.

86. Com es carreguen dades des de la ubicació de Linux a la ubicació de la taula Hive mitjançant l'script Hive?

  • Carregueu la ruta d'entrada local de dades '/home/hduser/hive/data/txns' a la taula txnrecords;
  • Carregueu les dades d'entrada local '/home/hduser/hive/data/txns' sobreescriu a la taula txnrecords;

Copia el contingut de Linux a la ubicació de la taula Hive.

87. Com es carreguen les dades de la ubicació HDFS a la ubicació de la taula Hive mitjançant l'script Hive?

  • Carregueu les dades d'entrada '/user/hduser/txns 1' a la taula txnrecords;
  • Carregueu les dades en el camí '/user/hduser/txns 1' sobreescriu a la taula txnrecords;

Mou les dades de la ubicació HDFS a la ubicació de la taula Hive.

88. Com es converteix una fila de registres en un sol objecte a Hive?

  • Utilitzeu Collect_Set() o Collect_List()
  • Collect_Set() elimina els duplicats

89. Com es converteix una matriu de dades en files individuals?

  • No es pot utilitzar Explode amb altres columnes
  • Explota la vista lateral: es poden utilitzar altres columnes
  • PosExplode: explota amb índex

90. Quins són els diferents tipus d'índexs disponibles a Hive?

  • Índex compacte: s'utilitza en columna cardinal alta
  • Mapa de bits: s'utilitza a la columna de cardinal baix

91. Quins diferents tipus de particions hi ha disponibles a Hive?

  • Estàtica: basada en alguns factors externs
  • Carregueu les dades d'entrada local '/home/hduser/hive/student_details2' a la partició de l'estudiant de la taula (curs = hadoop)
  • Dinàmica: basada en dades
  • Estableix hive.exec.dynamic.partition=true;
  • Estableix hive.exec.dynamic.partition.mode=nonstrict;
  • Carregueu les dades d'entrada local '/home/hduser/hive/student_details' a la taula stud_demo;
  • Inseriu a la partició student_part (curs) seleccioneu id, nom, edat, institut, curs de stud_demo;

92. On s'emmagatzemaran els valors Null i Buit en cas de particions?

  • _HIVE_DEFAULT_PARTITIONS dir.

93. Els valors de la partició distingeixen entre majúscules i minúscules?

94. Podem fer una partició dinàmica mitjançant l'ordre LOAD DATA?

No

95. Si s'actualitzaran les metadades si carreguem dades de partició mitjançant l'ordre LOAD DATA?

  • Carregueu les dades d'entrada local '/home/hduser/hive/student_details2' a la partició de l'estudiant de la taula (curs= hadoop);

96. Podem actualitzar i suprimir a la taula Hive?

  • Per defecte, no.
  • Sí, si la transacció està habilitada i la taula està en format ORC i agrupada.
  • TBLPROPERTIES ('transaccional'='true')
  • Estableix hive.enforce.bucketing = true,

Limitacions:

  • No s'admeten taules externes
  • Només s'admet el format ORC
  • La càrrega no és compatible amb les taules de traducció d'ACID. Per tant, utilitzeu insert into.
  • A les sessions transaccionals, totes les operacions es comprometen automàticament, ja que BEGIN, COMMIT I ROLLBACK encara no són compatibles.

97. Com ajuda la partició en la gestió de dades?

  • Podem eliminar fàcilment les dades de la porció de la taula només suprimint la partició.
  • Podem actualitzar la part de les dades amb el valor actualitzat només sobreescrivint les dades de la carpeta de particions.

98. Com es carrega només uns quants camps d'un fitxer?

És un procés de dos passos

  • Carregueu totes les dades a la taula gestionada - LOAD DATA LOCAL INPATH
  • Inseriu la selecció amb els camps obligatoris de la taula gestionada a la taula externa

99. Escenari: he creat manualment una carpeta de particions i hi he guardat les dades. Però quan faig una consulta des de la taula del rusc per a aquest valor de partició, no rebo dades. Que hauria de fer?

  • Executeu msck repair o afegiu manualment la partició.
  • És la comprovació de coherència de la metamagatzem de Hive.

100. Escenari: he suprimit una part de la carpeta de particions manualment i he executat la reparació de msck, eliminarà la partició de les metadades?

No, hem d'ARLIGAR manualment la partició.

Aquestes preguntes principals de l'entrevista del rusc s'han dissenyat específicament per familiaritzar-vos amb la naturalesa de les preguntes que podeu trobar durant l'entrevista sobre el tema Hive.