Bringen Sie Ihnen bei, wie Sie Hive3.1.2 auf Tencent Cloud erstellen

Bringen Sie Ihnen bei, wie Sie Hive3.1.2 auf Tencent Cloud erstellen

Umgebungsvorbereitung

Stellen Sie vor dem Starten eines Vorgangs sicher, dass die Hadoop-Version installiert wurde. Weitere Einzelheiten finden Sie in meinem anderen Blog-Beitrag zum Erstellen von hadoop3.x.

MySQL-Installation

Legen Sie zunächst das Installationspaket in den Softwareordner und entpacken Sie es in mysql-lib

[root@master software]# ll
Gesamtverbrauch 1422372
-rw-r--r-- 1 root root 312850286 2. Juli 15:00 apache-hive-3.1.2-bin.tar.gz
-rw-r--r-- 1 root root 338075860 2. Juli 09:39 hadoop-3.1.3.tar.gz
-rw-r--r-- 1 root root 195013152 2. Juli 09:36 jdk-8u212-linux-x64.tar.gz
-rw-r--r-- 1 root root 609556480 2. Juli 15:08 mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root 985600 2. Juli 14:44 mysql-connector-java-5.1.37.jar
[root@master software]# mkdir mysql-lib
[root@master software]# tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C ./mysql-lib/
[root@master software]# cd mysql-lib/
[root@master mysql-lib]# ll
Gesamtverbrauch 595272
-rw-r--r-- 1 7155 31415 45109364 30. September 2019 mysql-community-client-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 318768 30. September 2019 mysql-community-common-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 7037096 30. September 2019 mysql-community-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 49329100 30. September 2019 mysql-community-embedded-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23354908 30. September 2019 mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 136837816 30. September 2019 mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4374364 30. September 2019 mysql-community-libs-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1353312 30. September 2019 mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 208694824 30. September 2019 mysql-community-server-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 133129992 30. September 2019 mysql-community-test-5.7.28-1.el7.x86_64.rpm

Kümmern Sie sich zuerst um die Umgebung, da CentOS mit MariaDB geliefert wird, was zu Konflikten führt. Sie müssen es daher zuerst deinstallieren

[root@master mysql-lib]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@master mysql-lib]# sudo rpm -e --nodeps mariadb-libs 
# Überprüfen Sie, ob die Deinstallation abgeschlossen ist [root@master mysql-lib]# rpm -qa|grep mariadb
[root@master mysql-lib]# rpm -qa|grep mysql

Es gibt kein Problem, Sie können es installieren. Achten Sie darauf, es in der richtigen Reihenfolge zu installieren.

[root@master mysql-lib]# ll
Gesamtverbrauch 595284
-rw-r--r-- 1 7155 31415 45109364 30. September 2019 mysql-community-client-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 318768 30. September 2019 mysql-community-common-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 7037096 30. September 2019 mysql-community-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 49329100 30. September 2019 mysql-community-embedded-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23354908 30. September 2019 mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 136837816 30. September 2019 mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4374364 30. September 2019 mysql-community-libs-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1353312 30. September 2019 mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 208694824 30. September 2019 mysql-community-server-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 133129992 30. September 2019 mysql-community-test-5.7.28-1.el7.x86_64.rpm
[root@master mysql-lib]# sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
Warnung: mysql-community-common-5.7.28-1.el7.x86_64.rpm: Header V3 DSA/SHA1-Signatur, Schlüssel-ID 5072e1f5: NOKEY
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren …
  1:mysql-community-common-5.7.28-1.e########################################## [100%]
[root@master mysql-lib]# sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
Warnung: mysql-community-libs-5.7.28-1.el7.x86_64.rpm: Header V3 DSA/SHA1-Signatur, Schlüssel-ID 5072e1f5: NOKEY
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren …
  1:mysql-community-libs-5.7.28-1.el7######################################### [100%]
[root@master mysql-lib]# sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
Warnung: mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm: Header V3 DSA/SHA1-Signatur, Schlüssel-ID 5072e1f5: NOKEY
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren …
  1:mysql-community-libs-compat-5.7.2######################################### [100%]
[root@master mysql-lib]# sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
Warnung: mysql-community-client-5.7.28-1.el7.x86_64.rpm: Header V3 DSA/SHA1-Signatur, Schlüssel-ID 5072e1f5: NOKEY
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren …
  1:mysql-community-client-5.7.28-1.e######################################### [100%]

Bei der Installation der 5. Version, wenn Centos minimal installiert ist, wird dieses Problem gemeldet

[root@master mysql-lib]# sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
Warnung: mysql-community-server-5.7.28-1.el7.x86_64.rpm: Header V3 DSA/SHA1-Signatur, Schlüssel-ID 5072e1f5: NOKEY
FEHLER: Abhängigkeitsprüfung fehlgeschlagen:
    libnuma.so.1()(64bit) wird benötigt von mysql-community-server-5.7.28-1.el7.x86_64 libnuma.so.1(libnuma_1.1)(64bit) wird benötigt von mysql-community-server-5.7.28-1.el7.x86_64 libnuma.so.1(libnuma_1.2)(64bit) wird benötigt von mysql-community-server-5.7.28-1.el7.x86_64
[root@master mysql-lib]# yum install -y libaio
[root@master mysql-lib]# yum install -y numactl

Versuchen Sie dann, es erneut zu installieren und es wird in Ordnung sein

[root@master mysql-lib]# sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
Warnung: mysql-community-server-5.7.28-1.el7.x86_64.rpm: Header V3 DSA/SHA1-Signatur, Schlüssel-ID 5072e1f5: NOKEY
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren …
  1:mysql-community-server-5.7.28-1.e######################################### [100%]

Bereinigen Sie historische Restdateien

[root@master mysql-lib]# cat /etc/my.cnf
# Hinweise zum Ändern der Einstellungen finden Sie unter
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Führende # entfernen und auf die RAM-Menge für die wichtigsten Daten einstellen
# Cache in MySQL. Beginnen Sie bei 70 % des gesamten RAM für dedizierte Server, sonst 10 %.
# innodb_buffer_pool_size = 128M
#
# Entfernen Sie das führende #, um eine sehr wichtige Datenintegritätsoption zu aktivieren: Protokollierung
# Änderungen am Binärprotokoll zwischen Backups.
# log_bin
#
# Entfernen Sie führende #, um Optionen festzulegen, die hauptsächlich für Berichtsserver nützlich sind.
# Die Serverstandards sind für Transaktionen und schnelle SELECT-Vorgänge schneller.
# Passen Sie die Größen nach Bedarf an und experimentieren Sie, um die optimalen Werte zu finden.
# Join-Puffergröße = 128 M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
Datenverzeichnis=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Das Deaktivieren symbolischer Links wird empfohlen, um verschiedene Sicherheitsrisiken zu vermeiden
symbolische Links = 0

log-error=/var/log/mysqld.log
pid-Datei=/var/run/mysqld/mysqld.pid

Ich habe gesehen, dass das MySQL-Verzeichnis /var/lib/mysql ist

#Geben Sie diese Adresse ein, um zu sehen, ob historische Restdateien vorhanden sind [root@master mysql-lib]# cd /var/lib/mysql
# Wenn nichts da ist, ist es in Ordnung. Wenn etwas da ist, löschen Sie es einfach. [root@master mysql]# ll
Gesamtverbrauch 0

MySQL initialisieren

[root@master mysql]# sudo mysqld --initialize --user=mysql

Überprüfen Sie das Standardkennwort

[root@master mysql]# cat /var/log/mysqld.log 
2020-07-02T07:29:10.095244Z 0 [Warnung] TIMESTAMP mit implizitem DEFAULT-Wert ist veraltet. Bitte verwenden Sie die Serveroption --explicit_defaults_for_timestamp (weitere Einzelheiten finden Sie in der Dokumentation).
2020-07-02T07:29:11.331738Z 0 [Warnung] InnoDB: Neue Protokolldateien erstellt, LSN=45790
2020-07-02T07:29:11.498492Z 0 [Warnung] InnoDB: Erstellen von Systemtabellen mit Fremdschlüsseleinschränkungen.
2020-07-02T07:29:11.590436Z 0 [Warnung] Es wurde keine vorhandene UUID gefunden, daher gehen wir davon aus, dass dies das erste Mal ist, dass dieser Server gestartet wurde. Eine neue UUID wird generiert: b94654a6-bc35-11ea-a160-525400f3e388.
2020-07-02T07:29:11.600554Z 0 [Warnung] Die Gtid-Tabelle ist nicht zur Verwendung bereit. Tabelle „mysql.gtid_executed“ kann nicht geöffnet werden.
2020-07-02T07:29:13.093996Z 0 [Warnung] CA-Zertifikat ca.pem ist selbstsigniert.
2020-07-02T07:29:13.522160Z 1 [Hinweis] Ein temporäres Passwort wird für root@localhost generiert: p;oK<M)<_8p/

Das Passwort lautet p;oK<M)<_8p/ , kopieren Sie es und geben Sie mysql ein

Geben Sie mysql ein

Starten Sie den MySQL-Dienst

[root@master mysql]# systemctl start mysqld
[root@master mysql]# systemctl status mysqld
● mysqld.service – MySQL-Server
  Geladen: geladen (/usr/lib/systemd/system/mysqld.service; aktiviert; Vendor-Vorgabe: deaktiviert)
  Aktiv: aktiv (läuft) seit Donnerstag, 02.07.2020, 15:31:00 CST; vor 10 Sek.
   Dokumentation: man:mysqld(8)
      http://dev.mysql.com/doc/refman/en/using-systemd.html
 Prozess: 5617 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (Code=beendet, Status=0/ERFOLGREICH)
 Prozess: 5497 ExecStartPre=/usr/bin/mysqld_pre_systemd (Code=beendet, Status=0/ERFOLGREICH)
 Haupt-PID: 5624 (mysqld)
  Aufgaben: 27
  Speicher: 205,4 M
  CGroup: /system.slice/mysqld.service
      └─5624 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid…

02. Jul 15:30:55 master systemd[1]: MySQL Server wird gestartet...
02. Juli 15:31:00 Master systemd[1]: MySQL Server gestartet.

Geben Sie mysql ein

$ mysql -u root -p

Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie das gerade kopierte Kennwort ein.

Nachdem Sie sich erfolgreich bei MySQL angemeldet haben, legen Sie unser MySQL-Passwort fest. Merken Sie es sich ~

#Legen Sie das Passwort auf Ihr Passwort festmysql> set password = password("Ihr Passwort");

Als nächstes legen Sie die Berechtigungen des Root-Benutzers fest, um jede IP-Verbindung für die Vorbereitung der nachfolgenden Hive-Verbindung zuzulassen.

mysql> mysql verwenden;
mysql> wähle Host, Benutzer aus Benutzer;
+--------------+------------------+
| Gastgeber | Benutzer |
+--------------+------------------+
| lokaler Host | mysql.session |
| lokaler Host | mysql.sys |
| lokaler Host | Wurzel |
+--------------+------------------+
3 Zeilen im Satz (0,00 Sek.)

mysql> aktualisiere mysql.user, setze Host='%', wobei Benutzer='root';
Abfrage OK, 1 Zeile betroffen (0,00 Sek.)
Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0
# Diejenigen mit höheren Berechtigungen stehen oben (in der neuen Version optimiert)
mysql> wähle Host, Benutzer aus Benutzer;
+--------------+------------------+
| Gastgeber | Benutzer |
+--------------+------------------+
| % | Wurzel |
| lokaler Host | mysql.session |
| lokaler Host | mysql.sys |
+--------------+------------------+
3 Zeilen im Satz (0,00 Sek.)

--Dieser Schritt muss ausgeführt werden, um die Konfiguration zu aktualisieren, da das Kennwort sonst nicht wirksam wird. mysql> Flush-Berechtigungen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> beenden

Versuchen Sie anschließend, sich mit dem geänderten Passwort anzumelden. Bei Erfolg ist die Konfiguration abgeschlossen.

Installieren von Hive

Gehen Sie in das Verzeichnis /home/centos/software und entpacken Sie apache-hive-3.1.2-bin.tar.gz in das Verzeichnis /home/centos/module/

[root@master software]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /home/centos/module/

Gehen Sie in den Modulordner und ändern Sie den Dateinamen

[root@master-Modul]# ll
Gesamtdosis 12
drwxr-xr-x 9 root root 4096 2. Juli 15:40 apache-hive-3.1.2-bin
drwxr-xr-x 11 Centos Centos 4096 2. Juli 11:51 hadoop-3.1.3
drwxr-xr-x 7 10 143 4096 2. April 2019 jdk1.8.0_212
[root@master-Modul]# mv apache-hive-3.1.2-bin/ hive
[root@master-Modul]# ll
Gesamtdosis 12
drwxr-xr-x 11 Centos Centos 4096 2. Juli 11:51 hadoop-3.1.3
drwxr-xr-x 9 root root 4096 Juli 2 15:40 Bienenstock
drwxr-xr-x 7 10 143 4096 2. April 2019 jdk1.8.0_212

Konfigurieren von Umgebungsvariablen

[root@master-Modul]# vim /etc/profile.d/my_env.sh 
#HIVE_HOME
exportiere HIVE_HOME=/home/centos/module/hive
export PATH=$PATH:$HIVE_HOME/bin

Laden Sie die Umgebungsvariablen und überprüfen Sie, ob sie erfolgreich sind

[root@master module]# Quelle /etc/Profil
[root@master-Modul]# echo $HIVE_HOME
/home/centos/modul/hive

Lösen von Konflikten bei JAR-Protokollpaketen

Es besteht ein Log4j-Versionskonflikt zwischen Hadoop und Hive. Sie müssen den Namen des JAR-Pakets im Hive-Lib-Ordner ändern, damit es nicht aktiviert werden kann. Fügen Sie einfach .bak an das Ende des Dateinamens an.

[atguigu@hadoop102 lib]$ mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak

[atguigu@hadoop102 lib]$ ll | grep log4j
-rw-rw-r--. 1 atguigu atguigu 63835 Apr 15 00:34 log4j-1.2-api-2.10.0.jar
-rw-rw-r--. 1 atguigu atguigu 255485 Apr 15 00:24 log4j-api-2.10.0.jar
-rw-rw-r--. 1 atguigu atguigu 1597622 Apr 15 00:24 log4j-core-2.10.0.jar
-rw-rw-r--. 1 atguigu atguigu 24173 Apr 15 00:24 log4j-slf4j-impl-2.10.0.jar.bak
-rw-rw-r--. 1 atguigu atguigu 32060 Apr 15 00:34 log4j-web-2.10.0.jar

Hive-Metadatenkonfiguration für MySQL

Kopieren Sie den MySQL JDBC-Treiber in das Hive-Lib-Verzeichnis

[root@master-Bibliothek]# cp /home/centos/software/mysql-connector-java-5.1.37.jar ./

Überprüfen Sie, ob der Kopiervorgang erfolgreich war

[root@master lib]# ll | grep mysql-con
-rw-r--r-- 1 root root 985600 2. Juli 15:47 mysql-connector-java-5.1.37.jar

Metastore für MySQL konfigurieren

Erstellen Sie eine neue Datei hive-site.xml im Verzeichnis $HIVE_HOME/conf.

[root@master conf]# vim hive-site.xml

Es gibt drei Werte, die Sie ändern müssen.

  • Tencent Cloud Intranet-IP
  • MySQL-Passwort
  • Lokaler Hostname
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl" rel="externes nofollow" ?>
<Konfiguration>
  <!-- URL für JDBC-Verbindung -->
  <Eigenschaft>
    <name>javax.jdo.option.Verbindungs-URL</name>
    <Wert>jdbc:mysql://Tencent Cloud Intranet IP:3306/Metastore?useSSL=false</Wert>
</Eigenschaft>

  <!-- JDBC-Verbindungstreiber -->
  <Eigenschaft>
    <name>javax.jdo.option.Verbindungstreibername</name>
    <Wert>com.mysql.jdbc.Driver</Wert>
</Eigenschaft>

    <!-- Benutzername für die JDBC-Verbindung -->
  <Eigenschaft>
    <name>javax.jdo.option.Verbindungsbenutzername</name>
    <Wert>Wurzel</Wert>
  </Eigenschaft>

  <!-- Passwort für JDBC-Verbindung -->
  <Eigenschaft>
    <name>javax.jdo.option.Verbindungspasswort</name>
    <value>Ihr MySQL-Passwort</value>
  </Eigenschaft>
  <!-- Hives Standardarbeitsverzeichnis in HDFS -->
  <Eigenschaft>
    <name>hive.metastore.warehouse.dir</name>
    <Wert>/Benutzer/Hive/Warehouse</Wert>
  </Eigenschaft>
  
  <!-- Überprüfung der Version des Hive-Metadatenspeichers -->
  <Eigenschaft>
    <name>hive.metastore.schema.verification</name>
    <Wert>falsch</Wert>
  </Eigenschaft>
  <!-- Geben Sie die Adresse an, mit der eine Verbindung zum Speichern von Metadaten hergestellt werden soll -->
  <Eigenschaft>
    <name>hive.metastore.uris</name>
    <Wert>thrift://Tencent Cloud Intranet IP:9083</Wert>
  </Eigenschaft>
  <!-- Geben Sie die Portnummer für die Verbindung zu Hiveserver2 an-->
  <Eigenschaft>
  <name>hive.server2.thrift.port</name>
  <Wert>10000</Wert>
  </Eigenschaft>
  <!-- Geben Sie den Host an, mit dem sich hiveserver2 verbindet -->
  <Eigenschaft>
    <name>hive.server2.thrift.bind.host</name>
    <value>Ihr lokaler Hostname</value>
  </Eigenschaft>
  <!-- Autorisierung zur Metadatenspeicherung -->
  <Eigenschaft>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <Wert>falsch</Wert>
  </Eigenschaft>
  
  <!-- Hochverfügbarkeitsparameter von hiveserver2. Das Aktivieren dieses Parameters kann die Startgeschwindigkeit von hiveserver2 verbessern. -->
<Eigenschaft>
  <name>hive.server2.active.passiv.ha.enable</name>
  <Wert>wahr</Wert>
</Eigenschaft>

</Konfiguration>

Nach dem Einfügen des geänderten Inhalts speichern und beenden

Bienenstock starten

Initialisieren der Metadatendatenbank

Melden Sie sich bei MySQL an und erstellen Sie eine Hive-Metabasis

mysql> Datenbank-Metastore erstellen;
Abfrage OK, 1 Zeile betroffen (0,00 Sek.)

Beenden und Initialisieren der Hive-Metabasis

# Lassen Sie Hive die initialisierte Tabelle im Metastore erstellen [atguigu@hadoop102 software]$ schematool -initSchema -dbType mysql -verbos

Geben Sie mysql erneut ein und überprüfen Sie, ob es erstellt wurde (74 Tabellen).

mysql> Metastore verwenden;
mysql> Tabellen anzeigen;

Erstellen Sie ein Startskript, sonst wäre es zu lästig, jedes Mal ein so langes Skript zu schreiben, um es im Hintergrund zu starten.

[root@master bin]# vim hs.sh

Fügen Sie den folgenden Inhalt hinzu

#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
#Beurteilen Sie, ob dieses Verzeichnis existiert. Wenn nicht, erstellen Sie es, wenn [ ! -d $HIVE_LOG_DIR ]
Dann
	mkdir -p $HIVE_LOG_DIR
fi
#Überprüfen Sie, ob der Prozess normal ausgeführt wird. Parameter 1 ist der Prozessname und Parameter 2 ist der Prozessport #status
Funktion check_process()
{
	#/dev/null Unerwünschte Schwarze-Loch-Streams werden hier zur Zerstörung platziert pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')
  ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)
  echo $pid
  [[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1
}

#Start
Funktion hive_start()
{
  metapid=$(prüfen_prozess HiveMetastore 9083)
  #Verstehen Sie einfach diese Zeile. Diese Zeile dient zum Starten des Diensthintergrunds cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"
  cmd=$cmd" sleep 4; hdfs dfsadmin -safemode warte >/dev/null 2>&1"
  [ -z "$metapid" ] && eval $cmd || echo "Metastroe-Dienst wurde gestartet"
  server2pid=$(check_process HiveServer2 10000)
  #Verstehen Sie einfach diese Zeile. Diese Zeile dient zum Starten des Diensthintergrunds cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
  [ -z "$server2pid" ] && eval $cmd || echo "HiveServer2-Dienst wurde gestartet"
}

#stoppen
Funktion hive_stop()
{
  metapid=$(prüfen_prozess HiveMetastore 9083)
  [ "$metapid" ] && kill $metapid || echo "Metastore-Dienst wurde nicht gestartet"
  server2pid=$(check_process HiveServer2 10000)
  [ "$server2pid" ] && kill $server2pid || echo "HiveServer2-Dienst wurde nicht gestartet"
}

Fall $1 in
"Start")
  Bienenstock_start
  ;;
"stoppen")
  Bienenstock_Stopp
  ;;
"Neustart")
  Bienenstock_Stopp
  Schlaf 2
  Bienenstock_start
  ;;
"Status")
  check_process HiveMetastore 9083 >/dev/null && echo "Der Metastore-Dienst läuft normal" || echo "Der Metastore-Dienst läuft abnormal"
  check_process HiveServer2 10000 >/dev/null && echo "Der HiveServer2-Dienst läuft normal" || echo "Der HiveServer2-Dienst läuft abnormal"
  ;;
*)
  echo Ungültige Argumente!
  echo 'Verwendung: '$(Basisname $0)' Start|Stopp|Neustart|Status'
  ;;
esac

Speichern und beenden, dem Skript Berechtigungen hinzufügen

$ chmod +x hs.sh

Jetzt starten wir es (stellen Sie sicher, dass Hadoop gestartet ist und normal läuft, bevor Sie beginnen)

[root@master bin]# hs.sh start
[root@master bin]# jps
32177 Sekundärer NameNode
514 KnotenManager
20788 Jps
31396 NameNode
32652 RessourcenManager
20253 RunJar
31757 Datenknoten
991 JobHistoryServer

Sie können sehen, dass der Start erfolgreich war. Lassen Sie uns das Skript verwenden, um den Status anzuzeigen

[root@master bin]# hs.sh status
Der Metastore-Dienst läuft abnormal. Der HiveServer2-Dienst läuft abnormal.

Sie werden vielleicht überrascht sein, dass ein abnormaler Vorgang vorliegt. Was ist los? Eigentlich liegt es daran, dass es langsam anfängt. Wenn Sie mir nicht glauben, versuchen Sie es nach zwei Minuten noch einmal.

[root@master bin]# hs.sh status
Der Metastore-Dienst läuft normal. Der HiveServer2-Dienst läuft normal.

Hive-JDBC-Zugriff

Luftlinie

Wenn Sie zum Erstellen von Hadoop nicht Root verwendet haben, ändern Sie es entsprechend Ihren eigenen Einstellungen.

#Sie müssen den Root-Zugriff verwenden, da der JDBC-Administrator Root ist. Andernfalls haben Sie keine Berechtigung. -n wird vom Benutzer gefolgt, um sich anzumelden [atguigu@hadoop102 bin]$ beeline -u jdbc:hive2://master:10000 -n root
Verbindung zu jdbc:hive2://master:10000 wird hergestellt
Verbunden mit: Apache Hive (Version 3.1.2)
Treiber: Hive JDBC (Version 3.1.2)
Transaktionsisolation: TRANSACTION_REPEATABLE_READ
Beeline Version 3.1.2 von Apache Hive
0: jdbc:hive2://master:10000>

Dies bedeutet, dass Sie erfolgreich eingetreten sind. Wenn Sie austreten

0: jdbc:hive2://master:10000> !beenden
Schließen: 0: jdbc:hive2://master:10000

Hive-Befehlszeile

[atguigu@hadoop102 bin]$ hive
#Ein Haufen Informationen>

Das bedeutet, dass Sie erfolgreich eingetreten sind. Um auszusteigen, quit; Dann können Sie Hive spielen!

Geschichte

Ihre Verlaufsdatensätze befinden sich im Home-Verzeichnis

$ CD ~
$ ls -a

Sie können eine .hivehistory Datei und einen .beeline Ordner sehen. Die Verlaufsdatensätze werden geschrieben, nachdem Sie JDBC beendet haben.

Konfiguration des Hive-Vorgangsprotokolls

Standardmäßig werden Hive-Protokolle unter dem aktuellen Benutzernamen gespeichert. Wir legen auch Hives eigene Betriebsprotokolle in diese Protokolle, um sie später einfach anzuzeigen.

(1) Ändern Sie den Dateinamen von $HIVE_HOME/conf/hive-log4j.properties.template in hive-log4j.properties

$ mv hive-log4j2.properties.template hive-log4j.properties
$ vim hive-log4j.properties

(2) Ändern Sie den Speicherort des Protokolls in der Datei hive-log4j.properties

property.hive.log.dir=/home/centos/module/hive/logs 

Hive-Start-JVM-Heap-Speichereinstellungen

Wenn die neue Version von Hive gestartet wird, beträgt die angeforderte Standardgröße des JVM-Heapspeichers 256 MB. Der angeforderte JVM-Heapspeicher ist zu klein, was zu dem Fehler java.lang.OutOfMemoryError: Java heap space führt, der häufig beim Ausführen von komplexem SQL gemeldet wird, wenn der lokale Modus später aktiviert wird. Daher ist es am besten, HADOOP_HEAPSIZE im Voraus anzupassen.

[atguigu@hadoop102 conf]$ cp hive-env.sh.template hive-env.sh
[atguigu@hadoop102 conf]$ vim hive-env.sh

Entfernen Sie die Kommentarzeichen aus dem Parameter export HADOOP_HEAPSIZE=1024 in hive-env.sh.

Starten Sie Hive neu, nachdem Sie alle oben genannten Konfigurationen abgeschlossen haben.

Hive über Windows verbinden

Ich empfehle dbeaver. Denken Sie daran, zur Sicherheitsgruppe zu gehen und Port 10000 zu öffnen, bevor Sie eine Verbindung herstellen.

Die spezifischen Konfigurationsschritte sind wie folgt

Dann

Testen Sie die Verbindung und warten Sie etwa 1 Minute. Sie wird grundsätzlich erfolgreich sein. Dann können Sie mit Hive unter Windows Spaß haben.

Dies ist das Ende dieses Artikels zum Erstellen von Hive3.1.2 auf Tencent Cloud. Weitere Informationen zum Erstellen von Hive3.1.2 auf Tencent Cloud finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Erfahren Sie, wie Sie einen Hadoop 3.x-Pseudocluster auf der Tencent Cloud erstellen
  • Bringen Sie Ihnen bei, wie Sie einen Tencent Cloud Server erstellen (grafisches Tutorial)

<<:  Zusammenfassung verschiedener Methoden zur JS-Datentyperkennung

>>:  Detaillierter Prozess zum Erstellen von mysql5.7.29 unter Centos7 von Linux

Artikel empfehlen

Zusammenfassung zur Verwendung von MySQL-Isolationsspalten und Präfixindizes

Inhaltsverzeichnis Datenspalten isolieren Präfixi...

Spezifische Verwendung von Nginx Keepalive

Der Standardanforderungsheader des http1.1-Protok...

Beheben Sie den Nginx-Fehler „504 Gateway Time-out“

Studenten, die Websites erstellen, stellen häufig...

Verwandte Vorgänge zum Hinzufügen und Löschen von Indizes in MySQL

Inhaltsverzeichnis 1. Die Rolle des Index 2. Erst...

HTML-Grundlagen - Zusammenfassung - Empfehlung (Absatz)

HTML-Absatz Absätze werden durch das Tag <p>...

Was soll ich tun, wenn ich die Quelldatei einer Webseite nicht anzeigen kann?

F: Wenn Sie Outlook oder IE verwenden, wird beim ...

MySQL-Fall beim Gruppieren nach Beispiel

Eine MySQL-ähnliche PHP-Switch-Case-Anweisung. wä...

Lassen Sie uns über die Leistung von MySQLs COUNT(*) sprechen.

Vorwort Im Grunde verwenden Programmierer am Arbe...

JavaScript zum Erzielen eines Digitaluhreffekts

In diesem Artikelbeispiel wird der spezifische Ja...