TNTU-RS-internship / clemlab-ambari

Fork of Apache Ambari maintained by Clemlab Company
https://www.clemlab.com
Apache License 2.0
0 stars 0 forks source link

Build Ambari Server from branch internship-2.7.9.0-python3 #1

Closed Nazarii-Melnyk closed 2 months ago

Nazarii-Melnyk commented 3 months ago

Try to build Ambari Server from branch internship-2.7.9.0-python3.

Tasks

Completion

YuriiBalandyuk commented 3 months ago

@Nazarii-Melnyk Чи можете скинути посилання на статтю або офіційну документацію, як це зробити за допомогою вихідного коду. Бо я вже сиджу над цим біля 2 годин, але час обмежений. Хочеться розібратись правильно. Я передивився ці сайти:

https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.8 https://www.clemlab.com/docs/1.2.2.0/setup-ambari/setup-ambari-server https://www.clemlab.com/docs/installation-01-ambari - цей взагалі не працює, хоч є в репозиторію

Nazarii-Melnyk commented 3 months ago

@YuriiBalandyuk Статті як покроково і якою точно командою це зробити самому немає, є лише проєкт. Перше посилання яке ви знайшли - Installation Guide for Ambari 2.7.8 - показує тільки те як будується оригінальний проєкт Apache Ambari і яким інструментом, але команди там не допоможуть вам збудувати проєкт від Clemlab.

У описі цієї картки я дав підказку - перегляньте файл Jenkinsfile. Він застарілий, але в ньому ви зможете знайти приклад команди, якою Clemlab будують власний Ambari (і не тільки будують). Вам потрібно:

VitaliiBalaiev commented 3 months ago

@Nazarii-Melnyk Чи вірно я виконав завдання? Чи потрібно якимось іншим методом? 1) Я знайшов в Jenkinsfile стрічку mvn clean "-Dodp.release.number=${odpReleaseNumber}" 2) Виконав cd у директорію клонованого проєкту, там виконав команду mvn clean "-Dodp.release.number=270", вказавши як параметр 270, виходячи з того, що було вказано у Jenkinsfile. 3) У результаті отримав наступне: image

YuriiBalandyuk commented 3 months ago

Також можна спробувати зібрати Ambari Metrics, які пакети потрібно наведено в стрічці. Я спробую це після 20:00, бо зараз в мене виключили світло (17:00-20:00). Також чи вірно я розумію, що Clemlab використовує Maven інструмент для побудови проекту?

Nazarii-Melnyk commented 3 months ago

@VitaliiBalaiev Чи не збентежило вас що побудова кожного підпроєкту відбулася за кілька секунд, при цьому де результат цієї побудови? Зверніться до документації Maven щоб дізнатись що робить плагін clean.

Після побудови проєкту ви маєте отримати результат цієї побудови, в даному випадку вам необхідно отримати deb-пакет саме Ambari Server, який потім можна було б встановити.

YuriiBalandyuk commented 3 months ago

@Nazarii-Melnyk Ви мабуть писали до Віталія, бо я не завантажував ще дослідження через виключення світла. Лише запитав чи вірно я розумію, що Clemlab використовує Maven інструмент для побудови проекту? Цікаво чи можна використати Gradle для побудови.

Nazarii-Melnyk commented 3 months ago

@Nazarii-Melnyk Ви мабуть писали до Віталія, бо я не завантажував ще дослідження через виключення світла. Лише запитав чи вірно я розумію, що Clemlab використовує Maven інструмент для побудови проекту? Цікаво чи можна використати Gradle для побудови.

@YuriiBalandyuk Так, вірно, вибачаюсь, не замітив що коментар вище писав саме Віталій.

Щодо інструменту то так, Ambari це проєкт який будується використовуючи Maven, а Gradle в свою чергу там взагалі не використовується. Я б хотів щоб ви розібралися поки як будується цей проєкт саме так, як це задумано розробниками (в іншому випадку вам доведеться міняти повністю всю реалізацію збірки щоб збудувати цей проєкт, і не факт що вам в результаті це вдасться)

VitaliiBalaiev commented 3 months ago

@Nazarii-Melnyk Підкажіть, як зробити, щоб Maven підтягував правильні параметри для <source> i <target> тегів у pom-файлах. Зараз він автоматично ставить 1.5, для компіляції потрібно 1.8, вручну потрібно буде дуже багато pom-файлів змінити. Я використовую OpenJDK 8. image

Nazarii-Melnyk commented 3 months ago

@VitaliiBalaiev Можете переглянути цю статтю: https://www.baeldung.com/maven-arguments

Вона вам допоможе зрозуміти як передавати значення для аргументів у Maven. Як ви й сказали, необхідно передати цей параметр при білді і задати його значення 1.8.

VitaliiBalaiev commented 3 months ago

@Nazarii-Melnyk Дуже дякую, це допомогло вирішити проблему.

А що робити з простроченими сертифікатами bower? Прийдеться вручну міняти посилання на інше дзеркало? Помилка в логах: [ERROR] bower ember-qunit-notifications#0.1.0 CERT_HAS_EXPIRED Request to https://registry.bower.io/packages/ember-qunit-notifications failed: certificate has expired

Попередньо я знайшов вирішення цієї проблеми у відповіді до цієї картки, це потрібно зробити для кожного .bowerrc файлу?

Nazarii-Melnyk commented 3 months ago

@VitaliiBalaiev Так, якщо нових проблем з цим дзеркалом не буде, то можете додати ці зміни для кожного файлу .bowerrc одним комітом. Єдине - зробіть це так, як ми вносили зміни сьогодні на зустрічі:

  1. Створіть нову гілку у цій картці на основі гілки internship-2.7.9.0-python3;
  2. Внесіть зміни у нову гілку;
  3. Створіть новий пул реквест і зазначте мене як рев'ювера, щоб я переконався що ви правильно виконали послідовність дій, перед тим як змержити зміни.

P.S. Єдине лише цього разу - не використовуйте ключові слова у description до цього пул реквеста, щоб змерживши його він не закрив цієї карточки автоматично. Подумайте чому в даному випадку варто вчинити саме так і напишіть своє припущення.

VitaliiBalaiev commented 3 months ago

@Nazarii-Melnyk З дзеркалами Bower розібрався, поки коміт та пул-реквест робити не буду, можливо ще десь треба буде змінити, буду дивитись по ходу білда і тоді все одним комітом зроблю, все що стосується Bower.

Поки наступна проблема: При білді компоненту Ambari Metrics Collector 2.7.9.0.0 [22/51] така помилка: Download HBase: [get] Getting: https://clemlabs.s3.eu-west-3.amazonaws.com/centos7/odp-release/1.2.1.0-110/tars/hbase/hbase-2.5.3.1.2.1.0-110-bin.tar.gz [get] To: /home/vitalii/IdeaProjects/clemlab-ambari/ambari-metrics/ambari-metrics-timelineservice/target/embedded/hbase.tar.gz [get] Error opening connection java.io.IOException: Server returned HTTP response code: 403 for URL: https://clemlabs.s3.eu-west-3.amazonaws.com/centos7/odp-release/1.2.1.0-110/tars/hbase/hbase-2.5.3.1.2.1.0-110-bin.tar.gz [get] Can't get https://clemlabs.s3.eu-west-3.amazonaws.com/centos7/odp-release/1.2.1.0-110/tars/hbase/hbase-2.5.3.1.2.1.0-110-bin.tar.gz to /home/vitalii/IdeaProjects/clemlab-ambari/ambari-metrics/ambari-metrics-timelineservice/target/embedded/hbase.tar.gz

Наскільки я розумію, помилка 403 - доступ до ресурсу заборонено, при підкачці HBase з серверів clemlabs. Якими будуть дії? Спробував використати проксі через налаштування Intellij IDEA - такий самий результат.

Nazarii-Melnyk commented 3 months ago

@VitaliiBalaiev Можливо, що деякі білди вони підчищають, тому завантажити артефакт якого фактично немає не вдається (це я думаю основна причина чому така помилка виникла). Спробуйте задати odp.release.number 138, цей номер можна побачити на сторінці ODP Stack Repository, в документації Clemlab. Якщо проблема завантаження потрібних артефактів все ще залишаться, спробуйте номер 134, з ним точно не повинно бути проблем.

VitaliiBalaiev commented 3 months ago

@Nazarii-Melnyk Ambari Metrics Collector 2.7.9.0.0 [22/51] знайшло лише на odp.release.number 134, але при білді Ambari Metrics Grafana 2.7.9.0.0 [24/51] наступна помилка [get] Error opening connection java.io.FileNotFoundException: https://dl.grafana.com/oss/release/grafana-10.1.1.linux-x86_64.tar.gz

Знову не може підтягнути артефакт з серверу, в бразері також помилка Sorry, the requested url was not found, це пов'язано з odp.releasenumber? Можливо треба змінити інші параметри білду?

І ще питання про параметр -DbuildNumber, поки я не помітив, щоб він робив якусь різницю, але потрібно вказувати хеш останнього коміту у форку clemlab-ambari в мейн гілці, чи хеш останнього коміту в нашому форку?

YuriiBalandyuk commented 3 months ago

@Nazarii-Melnyk

Добрий вечір. З чим пов'язана ця помилка: Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.15.0:yarn (yarn install --pure-lockfile) on project files: Failed to run task: 'yarn --ignore-engines' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 128 (Exit value: 128) -> [Help 1]

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk Привіт, це може бути проблема з залежностями, якщо я правильно пам'ятаю Віталію вдалось це вирішити, спробуй вирішити самостійно і якщо не вийде запитай у Віталія як в нього вдалось. Я ближчими днями, як сьогодні і вчора, більшість часу просто не буду доступний, зможу в разі чого детальніше глянути тільки в понеділок.

Nazarii-Melnyk commented 2 months ago

@VitaliiBalaiev Доброго вечора, ця помилка з завантаженням Grafana точно не пов'язана з параметром odp.release.number (це число просто не фігурує у адресі URL), схоже цей артефакт також якщо і був, то його або видалили або змінили URL. Пошукайте чи можна знайти перелік доступних артефактів для завантаження, вибрати або цю ж версію Grafana, або найближчу до цієї, і відповідно змінити URL для завантаження.

Nazarii-Melnyk commented 2 months ago

@VitaliiBalaiev Також щодо параметра buildNumber, пошукайте з використанням пошуку IDEA де цей параметр фігурує і спробуйте визначити для чого він використовується. У мене є підозра, що цей хеш записується як необов'язкові метадані, і навіть якщо не задавати цей параметр білд мав би відбутись без проблем.

VitaliiBalaiev commented 2 months ago

Добрий вечір. З чим пов'язана ця помилка: Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.15.0:yarn (yarn install --pure-lockfile) on project files: Failed to run task: 'yarn --ignore-engines' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 128 (Exit value: 128) -> [Help 1]

@YuriiBalandyuk Є кілька припущень, як це можна виправити: 1) Спробуй встановити Yarn, так як вказано у методі 1 за цим посиланням. Після цього прогнати білд ще раз. 2) Якщо не допомогло, можна спробувати почистити кеш Yarn наступними командами: 2.1 yarn cache clean 2.2 rm yarn.lock 2.3 rm -rf node_modules/ 2.4 Після цього команда yarn і ще раз прогнати білд. 3) Також 100% потрібно перевірити налаштування ssh у GitHub. 3.1 Як це перевірити: команда ssh -T git@github.com у термінал, у відповідь буде приблизно наступна стрічка - > Hi USERNAME! You've successfully authenticated.... Якщо щось інше - потрібно налаштовувати. 3.2 Як це налаштувати: шукай приблизно за таким запитом - Generate a New SSH Key and Add it to your GitHub.

VitaliiBalaiev commented 2 months ago

@Nazarii-Melnyk В мене вийшло збілдити. image Про те, що прийшось скорегувати локально: 1) У 4 файлах .bowerrc змінити дзеркало для свіжих сертифікатів. 2) У pom.xml модуля ambari-metrics-grafana змінив URL для коректного завантаження Grafana 10.1.1.

Якщо потрібно, то зміни у .bowerrc та pom.xml розділити як два окремих коміти і створити пул реквест з нової гілки?

Nazarii-Melnyk commented 2 months ago

@VitaliiBalaiev Чудово, створи нову гілку у картці, в якій внеси зміни і створи пул реквест. Щодо комітів то немає великої різниці чи робити багато малих, чи 1 великий, головне щоб у заголовку і, якщо потрібно, у тілі коміту було описано які зміни внесено

YuriiBalandyuk commented 2 months ago

Image

@Nazarii-Melnyk Добрий день. 48/51 виявилась ось така помилка:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:testCompile (default-testCompile) on project ambari-infra-manager: Compilation failure: Compilation failure: [ERROR] error reading /home/yurii/.m2/repository/org/aspectj/aspectjweaver/1.8.1/aspectjweaver-1.8.1.jar; Invalid CEN header (invalid zip64 extra data field size)

Чи треба явно видалити пошкоджений файл і дати Maven знову його завантажити?

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk Доброго дня, так, ви можете спробувати видалити його, можливо він завантажився некоректно. Напишіть також якою командою ви виконуєте білд і яка версія jdk у вас встановлена та використовується.

VitaliiBalaiev commented 2 months ago

@Nazarii-Melnyk Ви напевно писали до Юрія?

YuriiBalandyuk commented 2 months ago

@Nazarii-Melnyk Версія jdk - 1.8. Build виконую ось такою командою:

mvn package -Djdk.version=1.8 -Declipselink.version=2.7.11 -Dgrafana.tar=https://dl.grafana.com/oss/release/grafana-10.1.1.linux-amd64.tar.gz -DfailsafePlugin.version=3.3.0 -Dfailsafe-plugin.version=3.3.0 -B install package jdeb:jdeb "-Dmaven.clover.skip=true" "-DskipTests" "-Dstack.distribution=ODP" "-Drat.ignoreErrors=true" -Dpython.ver="python >= 2.6" -Dfindbugs.skip=true -DnewVersion=2.7.9.0.0 -DbuildNumber=866aff77594e227815f9137db18bb97d8b733a6d -Dviews -Prpm"-Dodp.release.number=138"

Я пішов шляхом по мінімуму вносити зміни в проєкт. Лише було замінено maven-failsafe-plugin з 2.20 -> 3.3.0

Також є запитання стосовно rpm в наступній стрічці -> -Prpm"-Dodp.release.number=138"

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk -Prpm та "-Podp.release.number=138" це два різних параметри, тому розділіть їх. Також -Prpm замініть на -Pdeb, щоб збудувати саме deb-пакети (для Ubuntu).

Також уточнююче питання, чи не виникало проблем з номером білду 138? Наскільки я пам'ятаю Віталію не вдалось з даним номером збудувати проєкт.

YuriiBalandyuk commented 2 months ago

@Nazarii-Melnyk Викидає warning, але дозволяє збудувати. Також я пробував 110, але також викидає warning.

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk Добре, головне що вдалось збудувати.

Щодо попереджень, то варто розуміти чому система їх повертає і відповісти на питання "Чи є цей warning важливим, чи його можна ігнорувати? Якщо ігноруємо, то чому?" Спробуйте знайти в інтернеті інформацію про цей warning який повертає вам Maven і розібратися як відреагувати на нього (проігнорувати, чи спробувати внести правки, якщо можливо).

VitaliiBalaiev commented 2 months ago

@Nazarii-Melnyk Я збудував підпроєкт Ambari Server, разом з тими проєктами, від яких він залежить image

Nazarii-Melnyk commented 2 months ago

@VitaliiBalaiev Чудово. Спробуйте тепер встановити цей пакет і запустити Ambari Server, подивіться в документації чи потрібні додаткові налаштування перед запуском. Продовжуйте проходження курсу по Linux.

YuriiBalandyuk commented 2 months ago

image

@Nazarii-Melnyk Я склав Ambari Server.

YuriiBalandyuk commented 2 months ago

image Я встановив пакунки Ambari Service.

image

@Nazarii-Melnyk Спробував запустити. При вводі команди: sudo systemctl enable ambari-server показало результат на рисунку вище. Коли спробував стартувати за допомогою команди sudo systemctl start ambari-server виявилась проблема. Проблема полягає в тому, що в конфігураційному файлі Ambari Server не вказане ім'я бази даних та пароль.

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk Добре, запишіть якою командою ви збудували Ambari Server і продовжуйте проходити курс по Linux.

Щодо запуску, то перегляньте документацію Ambari та визначте яке початкове налаштування необхідно виконати перед запуском, яким чином його зробити.

VitaliiBalaiev commented 2 months ago

@Nazarii-Melnyk Інсталював deb-пакет та всі додаткові. Зробив setup та start Ambari server. В консолі наступне повідомлення: image При переході на localhost:8080 та логіні через admin:admin наступна картина: image Потрібно ще щось налаштовувати чи завдання можна вважати виконаним?

Nazarii-Melnyk commented 2 months ago

@VitaliiBalaiev Так, все добре. Продовжуйте курс по Linux та можете переходити до ознайомлення із Docker.

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk @VitaliiBalaiev Щодо цієї картки то все добре, єдине я ще хочу аби ви детально описали у своїх нотатках наступне:

  1. Яким чином будується проєкт Ambari з точки зору Maven.
  2. Як ви будували компонент Ambari Server (які вам необхідно було завантажити залежності, яку команду використовували для будування, які зміни вносили).
  3. Порівняння Python2 та Python3, описати проблематику переходу на новішу версію і чому це важливо. Додатково опишіть як компанія Clemlab виконала перехід на Python3 (порівняйте їхні гілки в Git для розуміння різниці).
  4. Важливість будування власних артефактів Ambari, які переваги такий підхід надає в загальному.

Як тільки ви це опишете можна буде цю картку закривати як виконану.

YuriiBalandyuk commented 2 months ago

@Nazarii-Melnyk Добрий день. В чому може бути проблема? Image

Ambari Server та Agent встановив: Image

Файл /etc/ambari-agent/conf/ambari-agent.ini Image

Ambari-server setup наступна: ambari-server setup -s -v --jdbc-db postgres --jdbc-driver /home/yurii/JDBC/postgresql-42.7.3.jar

Image

Ambari agent запускав і він стартував: ambari-agent start Ambari server запускав так: ambari-server start

Hostname: Image

YuriiBalandyuk commented 2 months ago

@Nazarii-Melnyk Та чи можна посилання на запис, бо мене викинуло і не хотіло більше впускати. Я перегляну на дозвіллі.

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk На першому скріншоті помилка говорить про те що недостатньо прав доступу, виконайте команду від імені root. Як ми на зустрічі вже говорили, Ambari Agent не відноситься до Ambari Server, і щоб зайти на веб-інтерфейс Ambari вам достатньо тільки Ambari Server. (окремо почитайте навіщо необхідний Ambari Agent і як він взаємодіє з сервером).

В основному я думаю у вас Ambari має працювати, перевірте чи Ambari Server справді запущений і відкрийте localhost:8080.

Щодо запису то ви можете його знайти прикріпленим до самої зустрічі в календарі.

YuriiBalandyuk commented 2 months ago

@Nazarii-Melnyk Та чи можна посилання на запис, бо мене викинуло і не хотіло більше впускати. Я перегляну на дозвіллі.

YuriiBalandyuk commented 2 months ago

@YuriiBalandyuk На першому скріншоті помилка говорить про те що недостатньо прав доступу, виконайте команду від імені root. Як ми на зустрічі вже говорили, Ambari Agent не відноситься до Ambari Server, і щоб зайти на веб-інтерфейс Ambari вам достатньо тільки Ambari Server. (окремо почитайте навіщо необхідний Ambari Agent і як він взаємодіє з сервером).

В основному я думаю у вас Ambari має працювати, перевірте чи Ambari Server справді запущений і відкрийте localhost:8080.

Щодо запису то ви можете його знайти прикріпленим до самої зустрічі в календарі.

Я запускав через sudo su -, так само не стартував сервер

YuriiBalandyuk commented 2 months ago

@Nazarii-Melnyk Він не стартує чомусь. Image

Nazarii-Melnyk commented 2 months ago

@YuriiBalandyuk Гляну як тільки матиму можливість. Прикріпіть також цей deb-пакет Ambari Server, який ви встановлювали, спробую у себе запустити.

YuriiBalandyuk commented 2 months ago

@YuriiBalandyuk Гляну як тільки матиму можливість. Прикріпіть також цей deb-пакет Ambari Server, який ви встановлювали, спробую у себе запустити.

Все вдалось. Дякую.

YuriiBalandyuk commented 2 months ago

@Nazarii-Melnyk Ambari Server has started.

Image