Заглавная страница

Материал из JavaCogito
Перейти к навигации Перейти к поиску
Logo
Ласкаво просимо в JavaCogito —
вільний енциклопедичний інтернет-проект, присвячений мові програмування Java!
Зараз на сайті JavaCogito 11 статей, завантажено 19 файлів.
JavaCogito — це вікіпедія, присвячена професійному програмуванню на мові Java, та суміжним технологіям.
Ми віддаємо пріоритет мові програмування Java, але пишемо і про інші мови програмування. На сайті вітається розміщення авторами будь-яких власних оригінальних досліджень та матеріалів із програмування, а також перекладів статей та публікацій англомовних та інших авторів. Сайт дотримується політики дотримання прав авторів.


Загальний огляд

Інтернет-сайт JavaCogito призначений насамперед для професійних Java програмістів та людей, які прагнуть опанувати цю мову програмування.

Кінцева мета - створення інтернет порталу, що містить наукові публікації про Java як мову програмування, публікацій на наукові теми з використанням мови Java, а також статей про віртуальну машину Java, моделі багатопоточності, прийнятої в Java та інших аспектів програмування Java. Запрошуємо приєднуватись тих, хто готовий допомогти цій благородній меті! Спонсори та меценати можуть зайти сюди. Водночас, на сайті автори можуть розміщувати свої будь-які цікаві матеріали довідкового та дослідницького характеру. Закликаємо опублікувати свої дослідження у нас, щоб їх змогли прочитати тисячі людей.

Запрошуємо всіх учасників до доповнення існуючих та створення нових статей про програмування на мові Java, архітектурі віртуальної машини Java та пов'язаних з Java технологіях програмування та платформах! Для участі у проекті та реєстрації в ньому необхідно написати на javacogito @ gmail.com.

Навіщо це потрібно?

Наша місія: сприяти розвитку програмування на благо людства.

  • Ми працюємо для того, щоб більше людей ставало професіоналами в галузі програмування.
  • Ми надихаємо на безперервне навчання та поширення знань заради блага кожної людини.
  • Ми робимо професійне програмування доступним.

Витяги зі статей

Безпека в Hadoop. Kerberos

Діаграма послідовностей Kerberos

Kerberos часто лякає навіть досвідчених системних адміністраторів і розробників навіть при першій своїй згадці. Використання Kerberos для забезпечення безпеки програм та систем часто тягне за собою множинні звернення до служби підтримки з проханнями виправити ту чи іншу проблему, пов'язану з ним. У цій статті ми розглянемо основні концепції Kerberos, необхідні для розуміння механізмів автентифікації, а також як ці принципи використовуються для автентифікації в Hadoop. Далі...




Перелік онлайн тестів проекту JavaCogito

Введення в тест з Apache Hadoop

Apache Hadoop - фреймворк з відкритим вихідним кодом, в якому реалізовано обчислювальну парадигму, відому як MapReduce. Спочатку Apache Hadoop починався з проекту Nutch, який був системою веб-пошуку з відкритим кодом, що працювала на двадцяти машинах. Потім проектом зацікавилася компанія Yahoo! і проект отримав свій розвиток, змінивши назву на " Hadoop " . У 2008 році проект Hadoop став одним із провідних проектів Apache, що довело його успіх та наявність різноманітної, активної спільноти. До цього часу технологія Hadoop використовувалася не тільки в Yahoo!, але і в багатьох інших компаніях - наприклад, у Facebook і New Yorks Times. На даний момент фреймворк Apache Hadoop використовується для зберігання та аналізу обробки великих кількостей даних (десятки та сотні терабайт) найрізноманітнішими компаніями.


Цільова аудиторія тесту з Apache Hadoop


Тест містить питання, знайомі більшості розробників, що застосовують Apache Hadoop у своїй повсякденній практиці і призначений насамперед для розробників-початківців, що тільки освоюють Apache Hadoop. Розпочати тест



Витяги зі статей

Фрейми

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

Новий фрейм створюється, коли відбувається виклик методу. Фрейм знищується, коли виклик методу завершено незалежно від цього було чи завершення методу успішним чи аварійним (метод викинув не перехоплений виняток). Фрейми зберігаються в стеку потоку віртуальної машини Java, що створює ці фрейми. Каждый фрейм содержит свой массив локальных переменных (см. §2.5.2), свой стек операндов (см. §2.6.2), ссылку на хранилище констант времени выполнения (см. §2.5.5) текущего класса текущего метода. Далі...




Передача управления

Компиляция операторов for была показана нами выше (см. §3.2). Большинство конструкций передачи управления языка Java (if-then-else, do, while, break и continue) компилируется в байт-код тривиальным образом. Компиляция оператора switch описана в отдельном разделе (см. §3.10), компиляция исключений – в разделе §3.12, операторов finally – в §3.13.

В качестве дальнейшего примера рассмотрим цикл while; его компиляция достаточно тривиальна; однако есть некоторые нюансы при компиляции разных типов данных используемых в операции сравнения в цикле. Как обычно тип int наиболее поддерживаемый из всех типов, например:

void whileInt() {
    int i = 0;
    while (i < 100) {
    i++;
    }
}

Будет скомпилировано в: Далі...




В чём причина NoClassDefFoundError в Java?

Схема делегирования загрузки

NoClassDefFoundError в Java происходит тогда, когда виртуальная машина Java во время исполнения кода не может найти определённый класс, который был доступен во время компиляции. Например, если мы вызываем метод из класса или обращаемся к статическому члену класса и этот класс не доступен во время выполнения, то виртуальная машина Java выбрасывает NoClassDefFoundError. Важно понимать, что эта ошибка отличается от исключения ClassNotFoundException, которое происходит при попытке загрузки класса во время выполнения, причём важно, что имя этого класса было определено только во время выполнения, но не во время компиляции кода. Далі...




Платформа Apache Hadoop MapReduce

Схема кластера

Apache Hadoop MapReduce — это проект с открытым исходным кодом копании Apache Software Foundation, представляющий собой реализацию модели вычислений MapReduce, описанную выше. Сам проект Apache Hadoop MapReduce можно разбить на несколько основных частей:

  • Программный интерфейс MapReduce API, предназначенный для конечного пользователя, разрабатывающего приложения MapReduce.
  • Платформа MapReduce, представляющая собой реализацию времени выполнения различных фаз модели вычислений MapReduce: фазы отображения, сортировки/тасовки/слияния/агрегирования и фазы свёртки.
  • Система MapReduce, которая представляет собой набор библиотек для запуска приложений MapReduce, управления ресурсами кластера, управления выполнением тысяч распределённых параллельных заданий. Далі...




Як необхідно проводити налагодження задач (job) Hadoop з низькою продуктивністю чи довго працюючих задач?

Існує кілька сценаріїв. У найзагальнішому вигляді ви повинні виконати такі кроки:

  1. Зрозуміти симптоми проблеми.
  2. Проаналізувати поточний стан справ.
  3. Визначити сферу існування проблеми.
  4. Запропонувати рішення.


Сценарій 1. Завдання (Job) зі 100 відображень (map) і однієї згортки (reduce) надовго «зависає» після того, як всі відображення (map) завершили роботу, а згортка (reduce) ще не починалася. Одна з причин може бути в тому, що згортка (трата) витрачає багато часу, копіюючи вихідні дані відображень (map) для подальшої роботи з ними. У цьому випадку можна виконати такі дії:

  1. Якщо можливо, то додати комбінуючу функцію зменшення кількості вихідних даних, що пересилаються від відображень (map) до згортки (reduce).
  2. Налаштувати стиск вихідних даних відображень (map) - це зменшить розмір інформації, що передається від відображень (map) до згортки (reduce). Далі...


У нас зараз 11 статей.
Участники