Создайте автономную версию hive.
Создайте автономную версию hive.

Чтобы изучить 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 Бег

Язык кода:javascript
копировать
#tar -xzf jdk-8u161-linux-x64.tar.gz -C /usr/local/
# cd /usr/local/
#mv jdk1.8.0_161 java
#gedit ~/.bashrc
Язык кода:javascript
копировать
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
Язык кода:javascript
копировать
# 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

Язык кода:javascript
копировать
# sudo apt-get install openssh-server

После завершения установки используйте команду

Язык кода:javascript
копировать
# ssh localhost

Войти не удастся

2.1.2 Настройка входа в систему без пароля по ssh

Язык кода:javascript
копировать
#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

Язык кода:javascript
копировать
#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
Язык кода:javascript
копировать
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
Язык кода:javascript
копировать
# 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, выглядит следующим образом:

Язык кода:javascript
копировать
#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/*                 # Посмотреть результаты бега

выход

Язык кода:javascript
копировать
1    dfsadn

2.2.3 Автономная конфигурация Hadoop

Язык кода:javascript
копировать
#gedit /usr/local/hadoop/etc/hadoo/core-site.xml
Язык кода:javascript
копировать
<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>
Язык кода:javascript
копировать
#gedit /usr/local/hadoop/etc/hadoo/hdfs-site.xml
Язык кода:javascript
копировать
<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.

Язык кода:javascript
копировать
# ./bin/hdfs namenode -format           #Реализуем форматирование namenode

4) Разрешить пользователю root запускать Hadoop

Hadoop не позволяет пользователю root запускаться по умолчанию, но, например, для облегчения обучения мы можем использовать для запуска пользователя root.

Язык кода:javascript
копировать
# /etc/profile
Язык кода:javascript
копировать
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

Язык кода:javascript
копировать
#gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
Язык кода:javascript
копировать
export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/usr/local/hadoop

6)

Язык кода:javascript
копировать
#sbin/start-dfs.sh                                #Открываем namenode и datanode

7)

Язык кода:javascript
копировать
#jps
37153 DataNode                       #DataNode
43796 Jps
37380 SecondaryNameNode              #Второе имяNode
37013 NameNode                       #NameNode

8) Установите пряжу (не обязательно).

Работайте в /usr/local/hadoop.

Язык кода:javascript
копировать
#cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
#gedit etc/hadoop/mapred-site.xml
Язык кода:javascript
копировать
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

9)

Язык кода:javascript
копировать
#gedit etc/hadoop/yarn-site.xml
Язык кода:javascript
копировать
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

10) Запускаем менеджер ресурсов

Язык кода:javascript
копировать
#./sbin/start-yarn.sh
#./sbin/mr-jobhistory-daemon.sh start historyserver #Просмотр исторических задач

11) После успешного запуска вы можете получить доступ к диспетчеру ресурсов кластера по адресу http://localhost:8088/cluster.

3. Установите MySQL

3.1 Проверьте, установлен ли на этом компьютере MySQL или MariaDB.

Определите, установлена ​​ли MariaDB

Язык кода:javascript
копировать
#sudo dpkg -l | grep maria

Определите, установлен ли MySQL

Язык кода:javascript
копировать
#sudo dpkg -l | grep mysql

3.2 Удалите MySQL или MariaDB

Если MySQL или MariaDB были установлены ранее, мы рекомендуем удалить их.

Удалите ранее установленный MySQL:

Язык кода:javascript
копировать
#sudo apt autoremove mysql-*

Удалите ранее установленную MariaDB:

Язык кода:javascript
копировать
#sudo apt autoremove mariadb-*

3.3 Установите MariaDB

Язык кода:javascript
копировать
#sudo apt update
#sudo apt install mariadb-server

3.4 Проверка статуса службы MariaDB

Язык кода:javascript
копировать
#sudo systemctl status mariadb

3.5 Базовая конфигурация

Язык кода:javascript
копировать
#sudo mysql_secure_installation
Язык кода:javascript
копировать
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 Установка улья

Язык кода:javascript
копировать
#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
Язык кода:javascript
копировать
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH
Язык кода:javascript
копировать
#source ~/.bashrc

4.3 Загрузите драйвер MySQL

Скачать mysql-connector-java-5.1.49.tar.gz

Язык кода:javascript
копировать
#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

Помните: автономная версия включает только следующий контент, удалите лишнее. Я здесь, чтобы следить за вами.

Язык кода:javascript
копировать
#gedit conf/hive-site.xml
Язык кода:javascript
копировать
<?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) База данных авторизует учетную запись

Язык кода:javascript
копировать
#mysql -uroot -p123456
mysql>grant all privileges on hive.* to 'hive'@'%' identified by 'hive_pwd';

2) Инициализировать метаданные

Язык кода:javascript
копировать
#schematool -dbType mysql -initSchema

3) Запустить улей

Язык кода:javascript
копировать
# 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>
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose