Чтобы изучить hive SQL, я создал автономную версию hive, проверил информацию в Интернете и прошел через множество ошибок. Краткое изложение таково.
Чтобы установить Hive, вам необходимо сначала установить JDK, Hadoop и MySQL, а затем установить Hive.
1. Установите JDK
Рекомендуется установить версию jdk8 для Oracle. Хотя официальных требований к использованию версии jdk8 для Oracle не существует, я обнаружил, что версии jdk, отличные от Oracle, или версии jdk8 или выше для Oracle требуют дополнительной настройки, а их очень мало. информация в Интернете.
1.1 Получите jdk-8u161-linux-x64.tar.gz
1.2 Бег
#tar -xzf jdk-8u161-linux-x64.tar.gz -C /usr/local/
# cd /usr/local/
#mv jdk1.8.0_161 java
#gedit ~/.bashrc
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
# source ~/.bashrc
# java -version
ava version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
2. Установите Hadoop
2.1 Установка и настройка ssh
2.1.1 Установите SSH
# sudo apt-get install openssh-server
После завершения установки используйте команду
# ssh localhost
Войти не удастся
2.1.2 Настройка входа в систему без пароля по ssh
#exit # Выйти прямо сейчас ssh localhost
# cd ~/.ssh/ # Если такого каталога нет, выполните ssh еще раз. localhost
# ssh-keygen -t rsa # Появится подсказка, просто нажмите Enter.
# cat ./id_rsa.pub >> ./authorized_keys # Добавить авторизацию
2.2 Установка и настройка Hadoop
2.2.1 загрузка и установка Hadoop
Скачать Hadoop-3.3.6.tar.gz
#tar -xzf hadoop-3.3.6.tar.gz -C /usr/local/
#cd /usr/local/
#mv hadoop-3.3.6 hadoop
#chown -R hadoop ./hadoop #Предыдущий Hadoop — это имя пользователя, просто измените его на свое собственное имя пользователя
#gedit ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
# source ~/.bashrc
# hadoop version
Hadoop 3.3.6
Source code repository https://github.com/apache/hadoop.git -r 1be78238728da9266a4f88195058f08fd012bf9c
Compiled by ubuntu on 2023-06-18T08:22Z
Compiled on platform linux-x86_64
Compiled with protoc 3.7.1
From source with checksum 5652179ad55f76cb287d9c633bb53bbd
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.6.jar
2.2.2 Автономная конфигурация Hadoop
Установленный Hadoop по умолчанию имеет автономную конфигурацию и может работать без другой конфигурации. Пример использования статистики слов, поставляемой с Hadoop, выглядит следующим образом:
#cd /usr/local/hadoop
# mkdir ./input
# cp ./etc/hadoop/*.xml ./input # Файл конфигурации как входной файл
#./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
# cat ./output/* # Посмотреть результаты бега
выход
1 dfsadn
2.2.3 Автономная конфигурация Hadoop
#gedit /usr/local/hadoop/etc/hadoo/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
#gedit /usr/local/hadoop/etc/hadoo/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
3) Используйте команду в /usr/local/hadoop.
# ./bin/hdfs namenode -format #Реализуем форматирование namenode
4) Разрешить пользователю root запускать Hadoop
Hadoop не позволяет пользователю root запускаться по умолчанию, но, например, для облегчения обучения мы можем использовать для запуска пользователя root.
# /etc/profile
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
5) Разместите Hadoop JAVA_HOME
#gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/usr/local/hadoop
6)
#sbin/start-dfs.sh #Открываем namenode и datanode
7)
#jps
37153 DataNode #DataNode
43796 Jps
37380 SecondaryNameNode #Второе имяNode
37013 NameNode #NameNode
8) Установите пряжу (не обязательно).
Работайте в /usr/local/hadoop.
#cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
#gedit etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
9)
#gedit etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
10) Запускаем менеджер ресурсов
#./sbin/start-yarn.sh
#./sbin/mr-jobhistory-daemon.sh start historyserver #Просмотр исторических задач
11) После успешного запуска вы можете получить доступ к диспетчеру ресурсов кластера по адресу http://localhost:8088/cluster.
3. Установите MySQL
3.1 Проверьте, установлен ли на этом компьютере MySQL или MariaDB.
Определите, установлена ли MariaDB
#sudo dpkg -l | grep maria
Определите, установлен ли MySQL
#sudo dpkg -l | grep mysql
3.2 Удалите MySQL или MariaDB
Если MySQL или MariaDB были установлены ранее, мы рекомендуем удалить их.
Удалите ранее установленный MySQL:
#sudo apt autoremove mysql-*
Удалите ранее установленную MariaDB:
#sudo apt autoremove mariadb-*
3.3 Установите MariaDB
#sudo apt update
#sudo apt install mariadb-server
3.4 Проверка статуса службы MariaDB
#sudo systemctl status mariadb
3.5 Базовая конфигурация
#sudo mysql_secure_installation
1)Enter current password for root (enter for none):
(По умолчанию MariaDB не имеет пароля, просто введите)
2)Switch to unix_socket authentication [Y/n] n
(При переключении аутентификации безопасности unix_socket введенное здесь n означает отсутствие переключения)
3)Change the root password? [Y/n] y
(Если нужно изменить пароль учетной записи root, введите y, чтобы изменить пароль root.
Уведомление:
- Лучше всего использовать сложный пароль для пароля root, иначе вам может потребоваться добавлять sudo каждый раз при подключении к MariaDB.
- При установке пароля курсор не будет прыгать при вводе пароля.
- В этой статье установлен пароль 12345)
4)Remove anonymous users? [Y/n] y
(Если удалять анонимных пользователей, введите здесь y, то есть удалить анонимных пользователей
По умолчанию MariaDB устанавливается с анонимным пользователем, что позволяет любому использовать MariaDB без создания для него учетной записи, которую необходимо удалить в производственной среде)
5)Disallow root login remotely? [Y/n] y
(Разрешены ли удаленные учетные записи Авторизоваться root, в противном случае на локальном хосте разрешены только учетные записи Авторизоваться root. Введенное здесь значение y означает, что удаленные учетные записи Авторизоваться root не разрешены)
6)Remove test database and access to it? [Y/n] y
(Удалять ли тестбазу данные, введенные здесь, предназначены для удаления тестовой базы данных
По умолчанию в MariaDB есть тестбаза. данные, позволяет любому пользователю получить)
7)Reload privilege tables now? [Y/n] y
(Нужно ли перезагрузить таблицу разрешений,Они вошли сюда,то есть перезагрузить сразу)
4. Установите Улей
4.1 Загрузите установочный пакет Hive
apache-hive-2.3.9-bin.tar.gz
4.2 Установка улья
#tar -xzf apache-hive-2.3.9-bin.tar.gz -C /usr/local/
#cd /usr/local/
#mv apache-hive-2.3.9 hive
#gedit ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH
#source ~/.bashrc
4.3 Загрузите драйвер MySQL
Скачать mysql-connector-java-5.1.49.tar.gz
#tar -xvf mysql-connector-java-5.1.49.tar.gz
#cp mysql-connector-java-5.1.49/mysql-connector-java-5.1.49.jar /usr/local/hive/lib
4.4 Изменение файла конфигурации hive-site.xml
Помните: автономная версия включает только следующий контент, удалите лишнее. Я здесь, чтобы следить за вами.
#gedit conf/hive-site.xml
<?xml version="1.0"
encoding="UTF-8" standalone="no"?>
<?xml-stylesheet
type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- MySQLбаза данныхадрес -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!-- MySQLбаза данныхводить машину -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- MySQLбаза данныхсчет -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<!-- MySQLбаза данныхпароль -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive_pwd</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
</configuration>
4.5 Инициализация метаданных
1) База данных авторизует учетную запись
#mysql -uroot -p123456
mysql>grant all privileges on hive.* to 'hive'@'%' identified by 'hive_pwd';
2) Инициализировать метаданные
#schematool -dbType mysql -initSchema
3) Запустить улей
# hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-2.3.9.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive>