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

Материал из JavaCogito
Версия от 15:10, 21 марта 2019; Oleksiy Sayankin (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску
Logo
Добро пожаловать в JavaCogito —
свободный энциклопедический интернет-проект, посвящённый языку программирования Java!
Сейчас на сайте JavaCogito 11 статей, загружено 19 файлов.
JavaCogito — это википедия, посвящённая профессиональному программированию на языке Java, и смежным технологиям.
Мы отдаём приоритет языку программирования Java, но пишем и о других языках программирования. На сайте приветствуется размещение авторами любых собственных оригинальных исследований и материалов по программированию, а также переводов статей и публикаций англоязычных и других авторов. Сайт придерживается политики соблюдения прав авторов.


Общий обзор

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

Конечная цель — создание интернет портала, содержащего научные публикации о Java как о языке программирования, публикаций на научные темы c использованием языка 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!, но и во многих других компаниях - например, в Last.fm 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) ещё не начиналась. Одна из причин может быть в том, что свёртка (reduce) тратит много времени копируя выходные данные отображений (map) для последующей работы с ними. В этом случае можно выполнить следующие действия:

  1. Если возможно, то добавить комбинирующую функцию для уменьшения количества выходных данных, пересылаемых от отображений (map) к свёртке (reduce).
  2. Настроить сжатие выходных данных отображений (map) — это уменьшит размер передаваемой информации от отображений (map) к свёртке (reduce). Далее...


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