Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 1. Введение в Big Data и MapReduceTechnopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Everything you wanted to know about Apache Tez:
-- Distributed execution framework targeted towards data-processing applications.
-- Based on expressing a computation as a dataflow graph.
-- Highly customizable to meet a broad spectrum of use cases.
-- Built on top of YARN – the resource management framework for Hadoop.
-- Open source Apache incubator project and Apache licensed.
HBase 2.0 is the next stable major release for Apache HBase scheduled for early 2017. It is the biggest and most exciting milestone release from the Apache community after 1.0. HBase-2.0 contains a large number of features that is long time in the development, some of which include rewritten region assignment, perf improvements (RPC, rewritten write pipeline, etc), async clients, C++ client, offheaping memstore and other buffers, Spark integration, shading of dependencies as well as a lot of other fixes and stability improvements. We will go into technical details on some of the most important improvements in the release, as well as what are the implications for the users in terms of API and upgrade paths. Existing users of HBase/Phoenix as well as operators managing HBase clusters will benefit the most where they can learn about the new release and the long list of features. We will also briefly cover earlier 1.x release lines and compatibility and upgrade paths for existing users and conclude by giving an outlook on the next level of initiatives for the project.
2021년 11월 18일(목)
- 14:00 ~ 15:00 MySQL Operator for Kubernetes
: Kubernetes 환경에서 MySQL에 대한 더 쉬운 운영
- 15:00 ~ 15:15 MySQL HA and Auto-Failover
: MySQL replication과 오픈소스 MHA를 통한 고가용성 확보
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 1. Введение в Big Data и MapReduceTechnopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Everything you wanted to know about Apache Tez:
-- Distributed execution framework targeted towards data-processing applications.
-- Based on expressing a computation as a dataflow graph.
-- Highly customizable to meet a broad spectrum of use cases.
-- Built on top of YARN – the resource management framework for Hadoop.
-- Open source Apache incubator project and Apache licensed.
HBase 2.0 is the next stable major release for Apache HBase scheduled for early 2017. It is the biggest and most exciting milestone release from the Apache community after 1.0. HBase-2.0 contains a large number of features that is long time in the development, some of which include rewritten region assignment, perf improvements (RPC, rewritten write pipeline, etc), async clients, C++ client, offheaping memstore and other buffers, Spark integration, shading of dependencies as well as a lot of other fixes and stability improvements. We will go into technical details on some of the most important improvements in the release, as well as what are the implications for the users in terms of API and upgrade paths. Existing users of HBase/Phoenix as well as operators managing HBase clusters will benefit the most where they can learn about the new release and the long list of features. We will also briefly cover earlier 1.x release lines and compatibility and upgrade paths for existing users and conclude by giving an outlook on the next level of initiatives for the project.
2021년 11월 18일(목)
- 14:00 ~ 15:00 MySQL Operator for Kubernetes
: Kubernetes 환경에서 MySQL에 대한 더 쉬운 운영
- 15:00 ~ 15:15 MySQL HA and Auto-Failover
: MySQL replication과 오픈소스 MHA를 통한 고가용성 확보
History and Basics of containers, LXC, Docker and Kubernetes. This presentation is given to Engineering colleage students at VIT DevFest 2018. Beginner to Intermediate level.
HDFS has several strengths: horizontally scale its IO bandwidth and scale its storage to petabytes of storage. Further, it provides very low latency metadata operations and scales to over 60K concurrent clients. Hadoop 3.0 recently added Erasure Coding. One of HDFS’s limitations is scaling a number of files and blocks in the system. We describe a radical change to Hadoop’s storage infrastructure with the upcoming Ozone technology. It allows Hadoop to scale to tens of billions of files and blocks and, in the future, to every larger number of smaller objects. Ozone fundamentally separates the namespace layer and the block layer allowing new namespace layers to be added in the future. Further, the use of RAFT protocol has allowed the storage layer to be self-consistent. We show how this technology helps a Hadoop user and also what it means for evolving HDFS in the future. We will also cover the technical details of Ozone.
Speaker: Sanjay Radia, Chief Architect, Founder, Hortonworks
by Ben Willett, Solutions Architect, AWS
Database Week at the AWS Loft is an opportunity to learn about Amazon’s broad and deep family of managed database services. These services provide easy, scalable, reliable, and cost-effective ways to manage your data in the cloud. We explain the fundamentals and take a technical deep dive into Amazon RDS and Amazon Aurora relational databases, Amazon DynamoDB non-relational databases, Amazon Neptune graph databases, and Amazon ElastiCache managed Redis, along with options for database migration, caching, search and more. You'll will learn how to get started, how to support applications, and how to scale.
Achieving HBase Multi-Tenancy with RegionServer Groups and Favored NodesDataWorks Summit
At Yahoo! HBase has been running as a hosted multi-tenant service since 2013. In a single HBase cluster we have around 30 tenants running various types of workloads (ie batch, near real-time, ad-hoc, etc). Typically such a deployment would cause tenant workloads to negatively affect each other because of resource contention (disk, cpu, network, cache thrashing, etc). Using RegionServer Groups we are able to designate a dedicated subset of RegionServers in a cluster to host only tables of a given tenant (HBASE-6721).
Most HBase deployments use HDFS as their distributed filesystem, which in turn does not guarantee that a region’s data is locally available to the hosting regionserver. This poses a problem when providing isolation since the hdfs data blocks may have to be read remotely from a different tenant’s host thus contending for disk or network resources. Favored nodes addresses this problem by providing hints to HDFS on which datanodes data should be stored and only assigns regions to these favored regionservers (HBASE-15531).
We will walk through these features explaining our motivation, how they work as well as our experiences running these multi-tenant clusters. These features will be available in Apache HBase 2.0.
Hadoop is the popular open source like Facebook, Twitter, RFID readers, sensors, and implementation of MapReduce, a powerful tool so on.Your management wants to derive designed for deep analysis and transformation of information from both the relational data and thevery large data sets. Hadoop enables you to unstructuredexplore complex data, using custom analyses data, and wants this information as soon astailored to your information and questions. possible.Hadoop is the system that allows unstructured What should you do? Hadoop may be the answer!data to be distributed across hundreds or Hadoop is an open source project of the Apachethousands of machines forming shared nothing Foundation.clusters, and the execution of Map/Reduce It is a framework written in Java originallyroutines to run on the data in that cluster. Hadoop developed by Doug Cutting who named it after hishas its own filesystem which replicates data to sons toy elephant.multiple nodes to ensure if one node holding data Hadoop uses Google’s MapReduce and Google Filegoes down, there are at least 2 other nodes from System technologies as its foundation.which to retrieve that piece of information. This It is optimized to handle massive quantities of dataprotects the data availability from node failure, which could be structured, unstructured orsomething which is critical when there are many semi-structured, using commodity hardware, thatnodes in a cluster (aka RAID at a server level). is, relatively inexpensive computers. This massive parallel processing is done with greatWhat is Hadoop? performance. However, it is a batch operation handling massive quantities of data, so theThe data are stored in a relational database in your response time is not immediate.desktop computer and this desktop computer As of Hadoop version 0.20.2, updates are nothas no problem handling this load. possible, but appends will be possible starting inThen your company starts growing very quickly, version 0.21.and that data grows to 10GB. Hadoop replicates its data across differentAnd then 100GB. computers, so that if one goes down, the data areAnd you start to reach the limits of your current processed on one of the replicated computers.desktop computer. Hadoop is not suitable for OnLine Transaction So you scale-up by investing in a larger computer, Processing workloads where data are randomly and you are then OK for a few more months. accessed on structured data like a relational When your data grows to 10TB, and then 100TB. database.Hadoop is not suitable for OnLineAnd you are fast approaching the limits of that Analytical Processing or Decision Support Systemcomputer. workloads where data are sequentially accessed onMoreover, you are now asked to feed your structured data like a relational database, to application with unstructured data coming from generate reports that provide business sources intelligence. Hadoop is used for Big Data. It complements OnLine Transaction Processing and OnLine Analytical Pro
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
History and Basics of containers, LXC, Docker and Kubernetes. This presentation is given to Engineering colleage students at VIT DevFest 2018. Beginner to Intermediate level.
HDFS has several strengths: horizontally scale its IO bandwidth and scale its storage to petabytes of storage. Further, it provides very low latency metadata operations and scales to over 60K concurrent clients. Hadoop 3.0 recently added Erasure Coding. One of HDFS’s limitations is scaling a number of files and blocks in the system. We describe a radical change to Hadoop’s storage infrastructure with the upcoming Ozone technology. It allows Hadoop to scale to tens of billions of files and blocks and, in the future, to every larger number of smaller objects. Ozone fundamentally separates the namespace layer and the block layer allowing new namespace layers to be added in the future. Further, the use of RAFT protocol has allowed the storage layer to be self-consistent. We show how this technology helps a Hadoop user and also what it means for evolving HDFS in the future. We will also cover the technical details of Ozone.
Speaker: Sanjay Radia, Chief Architect, Founder, Hortonworks
by Ben Willett, Solutions Architect, AWS
Database Week at the AWS Loft is an opportunity to learn about Amazon’s broad and deep family of managed database services. These services provide easy, scalable, reliable, and cost-effective ways to manage your data in the cloud. We explain the fundamentals and take a technical deep dive into Amazon RDS and Amazon Aurora relational databases, Amazon DynamoDB non-relational databases, Amazon Neptune graph databases, and Amazon ElastiCache managed Redis, along with options for database migration, caching, search and more. You'll will learn how to get started, how to support applications, and how to scale.
Achieving HBase Multi-Tenancy with RegionServer Groups and Favored NodesDataWorks Summit
At Yahoo! HBase has been running as a hosted multi-tenant service since 2013. In a single HBase cluster we have around 30 tenants running various types of workloads (ie batch, near real-time, ad-hoc, etc). Typically such a deployment would cause tenant workloads to negatively affect each other because of resource contention (disk, cpu, network, cache thrashing, etc). Using RegionServer Groups we are able to designate a dedicated subset of RegionServers in a cluster to host only tables of a given tenant (HBASE-6721).
Most HBase deployments use HDFS as their distributed filesystem, which in turn does not guarantee that a region’s data is locally available to the hosting regionserver. This poses a problem when providing isolation since the hdfs data blocks may have to be read remotely from a different tenant’s host thus contending for disk or network resources. Favored nodes addresses this problem by providing hints to HDFS on which datanodes data should be stored and only assigns regions to these favored regionservers (HBASE-15531).
We will walk through these features explaining our motivation, how they work as well as our experiences running these multi-tenant clusters. These features will be available in Apache HBase 2.0.
Hadoop is the popular open source like Facebook, Twitter, RFID readers, sensors, and implementation of MapReduce, a powerful tool so on.Your management wants to derive designed for deep analysis and transformation of information from both the relational data and thevery large data sets. Hadoop enables you to unstructuredexplore complex data, using custom analyses data, and wants this information as soon astailored to your information and questions. possible.Hadoop is the system that allows unstructured What should you do? Hadoop may be the answer!data to be distributed across hundreds or Hadoop is an open source project of the Apachethousands of machines forming shared nothing Foundation.clusters, and the execution of Map/Reduce It is a framework written in Java originallyroutines to run on the data in that cluster. Hadoop developed by Doug Cutting who named it after hishas its own filesystem which replicates data to sons toy elephant.multiple nodes to ensure if one node holding data Hadoop uses Google’s MapReduce and Google Filegoes down, there are at least 2 other nodes from System technologies as its foundation.which to retrieve that piece of information. This It is optimized to handle massive quantities of dataprotects the data availability from node failure, which could be structured, unstructured orsomething which is critical when there are many semi-structured, using commodity hardware, thatnodes in a cluster (aka RAID at a server level). is, relatively inexpensive computers. This massive parallel processing is done with greatWhat is Hadoop? performance. However, it is a batch operation handling massive quantities of data, so theThe data are stored in a relational database in your response time is not immediate.desktop computer and this desktop computer As of Hadoop version 0.20.2, updates are nothas no problem handling this load. possible, but appends will be possible starting inThen your company starts growing very quickly, version 0.21.and that data grows to 10GB. Hadoop replicates its data across differentAnd then 100GB. computers, so that if one goes down, the data areAnd you start to reach the limits of your current processed on one of the replicated computers.desktop computer. Hadoop is not suitable for OnLine Transaction So you scale-up by investing in a larger computer, Processing workloads where data are randomly and you are then OK for a few more months. accessed on structured data like a relational When your data grows to 10TB, and then 100TB. database.Hadoop is not suitable for OnLineAnd you are fast approaching the limits of that Analytical Processing or Decision Support Systemcomputer. workloads where data are sequentially accessed onMoreover, you are now asked to feed your structured data like a relational database, to application with unstructured data coming from generate reports that provide business sources intelligence. Hadoop is used for Big Data. It complements OnLine Transaction Processing and OnLine Analytical Pro
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Ceph является одной из мнообещающих архитектур для построения облачных хранилищ данных. В презентации приведены основные возможности, описана архитектура, дан краткий обзор команд CLI
Александр Крашенинников "Hadoop High Availability: опыт Badoo"IT Event
Инфраструктура Hadoop – популярное решение для таких задач, как распределённое хранение данных и вычисления Map/Reduce на кластере. Хорошая масштабируемость и развитая экосистема подкупают и обеспечивают Hadoop’у прочное место в инфраструктуре различных информационных систем. Но чем больше ответственности возлагается на этот компонент, тем важнее обеспечивать его отказоустойчивость и high availability.
Hadoop framework is a popular solution to such tasks as distributed data storage and running. Map/Reduce tasks on cluster. High scalability, mature ecosystem and large community make Hadoop one the most popular framework in distributed data processing. But the more responsibility you put on it, the more important it becomes to provide its fault-taulerance and high availability. This presentation will be useful to those, who have already been using Hadoop. For the rest it will be interesting to learn some architectural solutions applied in Hadoop.
In my presentation I will cover aspects of high availability implementation for Hadoop.
Besides, I will talk on:
– “The zoo” we have to deal with;
– Why we should provide high availability: points of system failure and its consequences;
– Tools and solutions to such problems;
– Our practical experience of implementation: preparation, deploy, testing.
Seminarul Internaţional „Implementarea tehnologiei IR (repozitorii instituţionale): Sistemul DSpace”, 14-15 aprilie 2011. Chişinău, Ambasada Regală a Norvegiei în România, Asociaţia Bibliotecarilor din Republica Moldova, Consorţiul REM, Programul EIFL-OA, Biblioteca Ştiinţifică a Academiei de Studii Economice din Moldova. Instructor: Kuzma KUDIM, Institutul Sisteme Software al Academiei de Ştiinţe din Kiev, Ucraina.
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
Данила, BigData Tool Master,
собрал Hadoop - кластер,
Запустил Dataset
Он скрипты на Scala
Run'ил на Spark постоянно
И писал в HDFSssss
Если во время доклада "Когда все данные станут большими..." мы будем говорить о вопросах и ответах, то на этом мастер-классе мы уже потопчемся в вотчине BigData-разработчиков.
Начнем с классики на Hadoop, познаем боль MapReduce job, потыкаем Pig + Hive, затем плавно свальсируем в сторону Spark и попишем код в легком и удобном pipeline - стиле.
Для кого хорошо подходит данный мастер-класс: вы умеете читать и понимать код на Java на уровне хотя бы Junior, умеете писать SQL-запросы, в универе вы ходили хоть на одну пару по матану или терверу, вас либо недавно поставили, либо вскоре поставят на проект, где надо уметь ручками работать с вышеперечисленным зверинцем. Ну или вам просто интересно посмотреть на мощь даннодробилок, написанных на Java, и у вас в анамнезе неудачный опыт с NoSQL/SQL, как хранилищем, которое было ответственно за все, включая аналитику.
Компания "Ленвендо" занимается созданием, развитием и поддержкой крупномасштабных онлайн-проектов.
Сегодня «Ленвендо» отвечает за работу ресурсов «Эльдорадо», «Связной», HomeMe, Газпромбанк, Эхо Москвы в Петербурге.
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)Ontico
+ Обзор внутреннего устройства Hadoop и продуктов вокруг;
+ Как можно использовать для решения (спектр);
+ Как подходить к обоснованности использования даже в небольших проектах;
+ Hadoop в Badoo - история успеха;
+ Hadoop в Badoo - история проблем.
Seminarul Internaţional „Implementarea tehnologiei IR (repozitorii instituţionale): Sistemul DSpace”, 14-15 aprilie 2011. Chişinău, Ambasada Regală a Norvegiei în România, Asociaţia Bibliotecarilor din Republica Moldova, Consorţiul REM, Programul EIFL-OA, Biblioteca Ştiinţifică a Academiei de Studii Economice din Moldova. Instructor: Kuzma KUDIM, Institutul Sisteme Software al Academiei de Ştiinţe din Kiev, Ucraina.
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Вводная часть посвящена определению и истории развития концепции NoSQL. Даются характеристики, рассказывается о способах использования. Рассматриваются виды NoSQL БД, теоретические основы NoSQL, а в конце лекции обсуждаются недостатки NoSQL-решений, а также проводится сравнение разных NoSQL-решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №9 "Безопасность баз данных". Лектор - Павел Щербинин.
Открывается лекция рассказом о резервном копировании (о логических и физических резервных копиях, о выборе данных для копирования). Затем определяется терминология для обсуждения дальнейших вопросов. После этого рассматриваются основы учётных записей: таблицы доступа, привилегии, виды записей. Обсуждаются SQL-injection, список смежных вершин (Adjacency Set), вложенное множество (Nested Set), материализованный путь (Materialized Path) и комбинированный подход.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №8 "Конфигурирование базы данных". Лектор - Павел Щербинин.
Сначала объясняются основы конфигурирования и общие принципы настройки. Далее рассказывается об области видимости, о настройке использования памяти, обсуждается размер блока ключей key_cache_block_size. Рассматривается устройство и использование кэша InnoDB, а также кэшей потоков и таблиц. Затем говорится об особенностях ввода/вывода в InnoDB. Далее рассказывается о табличном пространстве, оптимизации файловой сортировки, переменных состояния. Финальная часть лекции посвящена репликации: настройка, синхронизация, топология, планирование пропускной способности, администрирование и обслуживание, проблемы и их решения.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №7 "Оптимизация запросов и индексирование". Лектор - Павел Щербинин.
Вначале рассказывается об оптимизации доступа к данным, о декомпозиции соединения и состоянии запроса. Далее идёт большой блок, посвящённый оптимизатору запросов (изменение порядка соединения, применение алгебраических правил эквивалентности, оптимизации COUNT(), MIN(), MAX(), вычисление и свертка константных выражений, покрывающие индексы, оптимизация подзапросов, раннее завершение, сравнение по списку IN() и распространение равенства). Затем последовательно рассматриваются такие вещи, как соединение (JOIN) в MySQL, оптимизатор сортировки, коррелированные подзапросы, слияние и непоследовательный просмотр индексов, функции SELECT & UPDATE, COUNT(). После этого рассказывается об оптимизации запросов с помощью JOIN, GROUP BY, DISTINCT и LIMIT со смещением. В конце лекции даётся информация о кэшировании запросов, объединённых таблицах и секционировании.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №5 "Определение узких мест". Лектор - Павел Щербинин.
Вначале рассказывается о подсистемах хранения: MyISAM, InnoDB, Memory, о критериях выбора подсистем хранения, приводятся практические примеры. Затем обсуждается тема индексирования (B-tree, хеш-индексы) и EXPLAIN (столбцы id, table, possible_keys, key, key_len).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-запросы". Лектор - Павел Щербинин.
Лекция открывается рассказом о том, что такое профилирование запроса, каковы его этапы выполнения в MySQL. Рассказывается о том, как планировать запрос, как осуществляется протоколирование запросов, как собирается статистика. Объясняются основы индексирования, подробно обсуждаются стратегии индексирования для достижения высокой производительности: изоляция столбца, кластерные индексы (преимущества и недостатки), размещение данных в MyISAM и InnoDB, покрывающие индексы. Далее затрагивается тема нормализации и денормализации, а также таблиц счётчиков. В завершении рассказывается о версионировании схемы БД: о методах инкрементных изменений, идемпотентных изменений, уподобления структуры БД исходному коду.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №4 "Расширенные возможности работы с базами данных. Триггеры и хранимые процедуры"
Лектор - Павел Щербинин.
Первая часть лекции посвящена хранимым процедурам (использование, примеры кода, аспекты безопасности при использовании хранимых процедур): LOOP, REPEAT, WHILE, HANDLER, курсоры, EXECUTE. Во второй части рассказывается о триггерах: BEFORE, AFTER, INSTEAD OF, о специальных таблицах inserted, updated и deleted, об использовании триггеров для поддержания целостности и бизнес-логики, о проблемах при использовании триггеров, приводятся примеры кода. В завершающей части лекции обсуждаются вопросы, связанные с транзакциями: концепция A.C.I.D.; уровни изоляции ANSI/ISO (SET TRANSACTION ISOLATION LEVEL); взаимовлияние транзакций и проблемы lost update, dirty read, non-repeatable read и phantom read; технология MVCC (контроль версионирования конкуренции); конкуренция; параллельность и согласованность.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №3 "Выборка данных (продолжение). Транзакции"
Лектор - Павел Щербинин.
Лекция начинается с рассказа о добавлении данных и операторе INSERT, о модификации данных и операторе UPDATE, об удалении данных и операторе DELETE. Затем небольшая часть лекции посвящена пользовательским переменным. После этого даётся информация о подзапросах: SUBQUERIES, ROW SUBQUERIES, SUBQUERIES in FROM. Далее говорится об агрегации (UNION), о семействе функций JOIN и соединении таблиц, а в завершение лекции — о понятии VIEW (каковы преимущества, ограничения и особенности, алгоритмы использования и изменение).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №2 "Модификация данных. Выборка данных (начало)"
Лектор - Павел Щербинин.
Сначала завершается рассмотрение типа данных MySQL «Дата и время». Затем рассказывается о создании таблиц (CREATE TABLE): create_definition, column_definition, reference_defenition, обновление кортежа в родительском отношении. Далее обсуждается процедура изменения таблицы (ALTER TABLE), выборка данных и оператор SELECT, а также фильтрация (формирование групп, агрегаторы).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №1 "Введение и начало проектирования"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №1 "Введение и начало проектирования"
Лектор - Павел Щербинин.
В лекции обсуждаются значение и роли баз данных в IT, даются определения БД и СУБД. Затем рассказывается о реляционной модели данных, об основах реляционной алгебры. Далее говорится непосредственно о проектировании БД: каковы критерии оценки модели данных, особенности концептуального проектирования, этапы проектирования, что такое логическое проектирование. Остальная часть лекции посвящена типам данных MySQL: NULL, целые числа, числа с плавающей точкой, бинарные, строки, дата и время.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
3. HDFS
• Hadoop Distributed File System
• Для пользователя как “один большой диск”
• Работает поверх обычных файловых систем
– Ext3, Ext4, XFS
• Основывается на архитектуре Google's Filesystem
GFS
– research.google.com/archive/gfs-sosp2003.pdf
• Fault Tolerant
– Умеет справляться с выходом из строя дисков,
машин и т.д.
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
4. Используется обычное “железо”
• “Дешевое”серверное оборудование
– Нет суперкомпьютерам!
– Нет десктопам!
– Да обычным (ненадежным) серверам!
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
5. HDFS хорошо подходит для…
• Хранения больших файлов
– Терабайты, петабайты…
– Миллионы (но не миллиарды) файлов
– Файлы размером от 100 Мб
• Стриминг данных
– Паттерн “write once / read-many times”
– Оптимизация под последовательное чтение
• Нет операциям произвольного чтения
– Операция append появилась в Hadoop 0.21
• Обычные сервера
– Менее надежные, чем суперкомпьютеры
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
6. HDFS не подходит для…
• Low-latency reads
– Высокая пропускная способность большого объема данных
(high-throughput) вместо небольшого времени доступа к
небольшим порциям данных (low latency)
– HBase помогает решать эту задачу
• Большое количество небольших файлов
– Лучше миллион больших файлов, чем миллиард маленьких
• Напр. каждый файл размером от 100Мб
• Многопоточная запись
– Один процесс записи на файл
– Данные дописываются в конец файла
• Нет поддержки записи по смещению
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
7. Демоны HDFS
• Для управления файловой системой есть три типа демонов
– Namenode
• Отвечает за файловое пространство (namespace), мета-ифномрацию и
расположение блоков файлов
• Запускается на 1й (выделенной) машине
– Datanode
• Хранит и отдает блоки данных
• Отправляет ответы о состоянии на Namenode
• Запускается обычно на всех машинах кластера
– Secondary Namenode
• Периодически обновляет fsimage
• Требует то же железо, что и Namenode
• (!) Не используется для high-availability, т.е. это не backup для Namenode
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
9. Файлы и блоки
• Файлы в HDFS состоят из блоков
– Блок – единица хранения данных
• Управляется через Namenode
• Хранится на Datanode
• Реплицируются по машинам в процессе записи
– Один и тот же блок хранится на нескольких Datanode
– Фактор репликации по умолчанию равен 3
– Это нужно для fault-tolerance и упрощения доступа
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
10. Rack #NRack #1
Файлы и блоки
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
Namenode
Datanode
B1
DatanodeDatanode
B1
DatanodeDatanode
B1
large_file.txt = block 1 + block 2
Один и тот же блок
B2
B2B2
11. Блоки в HDFS
• Стандартный размер блоков 64Мб или 128Мб
• Основной мотив этого – снизить стоимость seek
time по сравнению со скоростью передачи
данных (transfer rate)
– 'Time to transfer' > 'Time to seek'
• Например, пусть будет
– seek time = 10ms
– transfer rate = 100 MB/s
• Для достижения seek time равного 1% от transfer
rate размер блока должен быть 100Мб
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
12. Репликация блоков
• Namenode определяет, куда копировать реплики
блоков
• Размещение блоков зависит от того, в какой стойке
стоит сервер (rack aware)
– Баланс между надежностью и производительностью
• Попытка снизить нагрузку на сеть (bandwidth)
• Попытка улучшить надежность путем размещения реплик в
разных стойках
– Фактор репликации по умолчанию равен 3
• 1-я реплика на локальную машину
• 2-я реплика на другую машину из той же стойки
• 3-я реплика на машину из другой стойки
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
13. Клиенты, Namenode и Datanodes
• Namenode не выполняет непосредственно
операций чтения/записи данных
– Это одна из причин масштабируемости Hadoop
• Клиент обращается к Namenode для
– обновления неймспейса HDFS
– для получения информации о размещении
блоков для чтения/записи
• Клиент взаимодействует напрямую с
Datanode для чтения/записи данных
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
14. HDFS: чтение файла
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
NamenodeClient
DatanodeDatanodeDatanode
1
2
3
1. Получить
расположение блоков
2. Прочитать 1й блок
файла
3. Прочитать 2й блок
файла
15. HDFS: запись файла
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
NamenodeClient
DatanodeDatanodeDatanode
1
2
1. Создать новый файл в
namespace на NN и
определить топологию
блоков
2. Отправить данные на 1-ю DN
3. Отправить данные на 2-ю DN
4. Отправить данные на 3-ю DN
5. Подтверждение
Success/Failure
6. Подтверждение
Success/Failure
7. Подтверждение
Success/Failure
7
3
6
4
5
16. Namenode: использование памяти
• Для быстрого доступа вся мета-информация о блоках
хранится в ОЗУ Namenode
– Чем больше кластер, тем больше ОЗУ требуется
• Лучше миллионы больших файлов (сотни мегабайт), чем миллиарды
маленьких
• Работает на кластерах из сотен машин
• Hadoop 2+
– Namenode Federation
• Каждая Namenode управляет частью блоков
• Горизонтальное масштабирование Namenode
– Поддержка кластеров из тысячи машин
– Детали тут: http://hadoop.apache.org/docs/r2.0.2-alpha/hadoop-
yarn/hadoop-yarn-site/Federation.html
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
17. Namenode: использование памяти
• Изменение размера блока влияет на максимальный
размер FS
– Увеличение размера блока с 64Мб до 128Мб уменьшает
число блоков и существенно увеличивает размер места,
которое NN может обслуживать
– Пример:
• Пусть у нас есть 200Тб = 209,715,200 Мб
• При размере блока 64Мб это соответствует 3,276,800 блоков
– 209,715,200Mб / 64Mб = 3,276,800 блоков
• При размере блока 128Мб это соответствует 1,638,400 блоков
– 209,715,200Mб / 128Mб = 1,638,400 блоков
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
18. Fault-tolerance в Namenode
• Процесс демона NN должен быть запущен все время
– Если демон падает, то HDFS не работает (и обычно весь кластер
тоже)
• Namenode – это единая точка отказа (single point of failure)
– Должна работать на отдельной надежной машине
– Обычно, это не бывает проблемой
• Hadoop 2+
– High Availability Namenode
• Процесс Active Standby всегда запущен и берет на себя управления в случае
падения NN
• Все еще в процессе тестирования
– Более подробно тут:
• http://hadoop.apache.org/docs/r2.0.2-alpha/hadoop-yarn/hadoop-yarn-
site/HDFSHighAvailability.html
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
19. Доступ к HDFS
• Способы доступа
– Direct Access
• Взаимодействует с HDFS с помощью нативного
клиента
• Java, C++
– Через Proxy Server
• Досутп к HDFS через Proxy Server – middle man
• Серверы REST, Thrift и Avro
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
20. Direct Access
• API для Java и C++
• Клиент запрашивает метаданные (такие, как расположение
блоков) от NN
• Клиент напрямую запрашивает данные от DN
• Java API
– Наиболее часто используется
• Используется для MapReduce
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
Namenode
Datanode
Datanode
Java Client
Java Client
Java Client
. . . . . .
21. Доступ через Proxy Server
• Клиент работает через внешний Proxy Server
– Т.о. должна быть независимость от языка
• Существует несколько серверов в поставке с Hadoop
– Thrift – язык определения интерфейса
– WebHDFS REST – ответы в формате JSON, XML или Protocol
Buffers
– Avro – механизм сериализации
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
Namenode
Datanode
Datanode
Client
Client
Client
Proxy
Server
. . . . . .
25. Команды в shell
• Большинство команд ведет себя схожим
образом, что и команды в Unix
– cat, rm, ls, du …
• Поддержка специфичных для HDFS операций
– Напр., смена фактора репликации
• Вывод списка команд
– $ hdfs dfs –help
• Показать детальную информацию по команде
– $ hdfs dfs -help <command_name>
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
26. Основные команды в shell
• cat – вывод источника в stdout
– Весь файл: $hdfs dfs -cat /dir/file.txt
– Полезно вывод перенаправить через pipe в less, head, tail
и т.д.
– Получить первые 100 строк из файла
• $hdfs dfs -cat /dir/file.txt | head -n 100
• ls – отобразить файловую статистику, для директории
отобразить вложенные директории и файлы
– $hdfs dfs -ls /dir/
• mkdir – создать директорию
– $hdfs dfs -mkdir /dir
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
27. Копирование данных в shell
• cp – скопировать файлы из одного места в другое
– $hdfs dfs -cp /dir/file1 /otherDir/file2
• mv – перемещение файла из одного места в другое
– $hdfs dfs -mv /dir/file1 /dir2
• put – копирование файла из локальной FS в HDFS
– $hdfs dfs -put localfile /dir/file1
– copyFromLocal
• get – копирование файла из HDFS в локальную FS
– $hdfs dfs -get /dir/file1 localfile
– copyToLocal
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
28. Удаление и статистика в shell
• rm – удалить файл (в корзину)
– $hdfs dfs -rm /dir/file
• rm -r – удалить рекурсивно директорию
– $hdfs dfs -rm -r /dir
• du – отобразить размер файла или директории в
байтах
– $hdfs dfs -du /dir/
• du -h – отобразить размер файла или директории в
удобно-читаемом формате
– $hdfs dfs -du –h /dir/
65M /dir
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
29. Остальные команды в shell
• Другие команды
– chmod, count, test, tail и т.д.
• Чтобы узнать больше
– $hdfs dfs -help
– $hdfs dfs -help <command>
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
30. Команда fsck
• Проверка неконсистентности файловой системы
• Показывает проблемы
– Отсутствующие блоки
– Недореплицированные блоки
• Не устраняет проблем, только информация
– Namenode попытается автоматически исправить
проблемы
• $ hdfs fsck <path>
– Напр., $ hdfs fsck /
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
31. Права в HDFS
• Ограничения на уровне файла/директории
– Сходство с моделью прав в POSIX
– Read (r), Write (w) и Execute (x)
– Разделяется на пользователя, группу и всех остальных
• Права пользователя определяются исходя из прав той ОС, где он
запускает клиентское приложение
• Авторизация через Kerberos
– Hadoop 0.20.20+
– http://hadoop.apache.org/common/docs/r0.23.0/hadoop-yarn/hadoop-
yarnsite/ClusterSetup.html
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
[cloudera@localhost ~]$ hadoop fs -ls /user/cloudera/wordcount/output
Found 3 items
-rw-r--r-- 3 cloudera cloudera 0 2014-03-15 11:56 /user/cloudera/wordcount/output/_SUCCESS
drwxr-xr-x - cloudera cloudera 0 2014-03-15 11:56 /user/cloudera/wordcount/output/_logs
-rw-r--r-- 3 cloudera cloudera 31 2014-03-15 11:56 /user/cloudera/wordcount/output/part-00000
32. Команда DFSAdmin
• Команды для администрирования HDFS
– $hdfs dfsadmin <command>
– Напр.: $hdfs dfsadmin –report
• report – отображает статистику по HDFS
– Часть из этого также доступна в веб-интерфейсе
• safemode – переключения между режимом
safemode для проведения административных
работ
– Upgrade, backup и т.д.
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
33. Балансер HDFS
• Блоки в HDFS могут быть неравномерно
распределены по всем Datanode’ам кластера
– К примеру, при добавлении новых машин они будут
какое-то время почти пустыми, т.к. новые данные
будут записываться исходи из топологии
• Балансер – это утилита, которая автоматически
анализирует расположение блоков в HDFS и
старается его сбалансировать
– $ hdfs balancer
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
35. File System Java API
• org.apache.hadoop.fs.FileSystem
– Абстрактный класс, которые представляет
абстрактную файловую систему
– (!) Это именно класс, а не интерфейс
• Реализуется в различных вариантах
– Напр., локальная или распределенная
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
36. Реализации FileSystem
• Hadoop предоставляет несколько конкретных реализаций
– org.apache.hadoop.fs.LocalFileSystem
• Подходит для нативных FS, использующих локальные диски
– org.apache.hadoop.hdfs.DistributedFileSystem
• Hadoop Distributed File System (HDFS)
– org.apache.hadoop.hdfs.HftpFileSystem
• Доступ к HDFS в read-only режиме через HTTP
– org.apache.hadoop.fs.ftp.FTPFileSystem
• Файловая система поверх FTP-сервера
• Различные реализации для разных задач
• Для работы с HDFS обычно используется
– org.apache.hadoop.hdfs.DistributedFileSystem
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
37. Пример SimpleLocalLs.java
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
public class SimpleLocalLs {
public static void main(String[] args) throws Exception{
Path path = new Path("/");
if ( args.length == 1 ){
path = new Path(args[0]);
}
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
FileStatus [] files = fs.listStatus(path);
for (FileStatus file : files ){
System.out.println(file.getPath().getName());
}
}
}
38. FileSystem API: Path
• Объект Path в Hadoop представляет файл или
директорию
– java.io.File сильно завязан на локальную FS
• Path – это на самом деле URI в FS
– HDFS: hdfs://localhost/user/file1
– Local: file:///user/file1
• Пример:
– new Path("/test/file1.txt");
– new Path("hdfs://localhost:9000/test/file1.txt");
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
39. Объект Configuration
• Объект Configuration хранит конфигурацию сервера и клиента
– Довольно много где используется в Hadoop
• HDFS, MapReduce, Hbase,..
• Использует простую парадигму key-value
– Является враппером надо java.util.Properties,
– Который в свою очередь враппер над java.util.Hashtable
• Получения значения параметра
– String name = conf.get("fs.default.name");
• returns null если свойства не существует
• Получения значения параметра и вернуть значение по-умолчанию, если
не существует
– String name = conf.get("fs.default.name“, “hdfs://localhost:9000”);
• Также есть типизированные варианты
– getBoolean, getInt, getFloat и т.п.
• float size = conf.getFloat("file.size");
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
40. Объект Configuration
• Обычно инициализируется значениями через
конфигурационный файлы из CLASSPATH (напр.,
conf/coresite.xml и conf/hdfs-site.xml)
– Configuration conf = new Configuration();
conf.addResource(
new Path(HADOOP_HOME + "/conf/coresite.xml"));
• conf.addResource() может принимать как String, так и Path
– conf.addResource("hdfs-site.xml")
– conf.addResource(new Path("/my/location/site.xml")
• По-умолчанию загружает
– core-default.xml
• Расположен в hadoop-common-X.X.X.jar/core-default.xml
– core-site.xml
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
41. Чтение данных из файла
• Создать объект FileSystem
• Открыть InputStream, указывающий на Path
• Скопировать данные по байтам используя
IOUtils
• Закрыть InputStream
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
42. Пример ReadFile.java
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
public class ReadFile {
public static void main(String[] args) throws IOException {
Path file = new Path("/path/to/file.txt");
FileSystem fs = FileSystem.get(new Configuration()); // Open FileSystem
InputStream input = null;
try {
input = fs.open(file); // Open InputStream
IOUtils.copyBytes(input, System.out, 4096); // Copy from Input to Output
Stream
} finally {
IOUtils.closeStream(input); // Close stream
}
}
}
43. Запись данных в файл
• Создать объект FileSystem
• Открыть OutputStream
– Указывает на Path из FileSystem
– Используем FSDataOutputStream
– Автоматически создаются все директори в пути,
если не существуют
• Копируем данные по байтам используя
IOUtils
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
44. Пример WriteToFile.java
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
public class WriteToFile {
public static void main(String[] args) throws IOException {
String text = "Hello world in HDFS!n";
InputStream in = new BufferedInputStream(
new ByteArrayInputStream(text.getBytes()));
Path file = new Path("/path/to/file.txt");
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf); // Create FileSystem
FSDataOutputStream out = fs.create(file); // Open OutputStream
IOUtils.copyBytes(in, out, conf); // Copy Data
}
}
45. FileSystem: запись данных
• fs.append(path) – дописать к существующему
файлу
– Поддержка для HDFS
• Нельзя записать в середину файла
• FileSystem.create(Path) создает все
промежуточные директории для заданного
каталога (по умолчанию)
– Если это не нужно, то надо использовать
• public FSDataOutputStream create(Path f, boolean overwrite)
• overwrite = false
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
46. FileSystem: подстановки (globbing)
• FileSystem имеет поддержку матчинга имени файла
по заданному паттерну используя метод globStatus()
– FileStatus [] files = fs.globStatus(glob);
• Используется для выбора списка файлов по шаблону
• Примеры шаблонов
– ? – любой один символ
– * - любые 0 и больше символов
– [abc] – любой символ из набора в скобках
• [a-z]
– [^a] – любой символ, кроме указанного
– {ab,cd} – любая строка из указанных в скобках
ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
47. ЛЕКЦИЯ 3: РАСПРЕДЕЛЕННАЯ ФАЙЛОВАЯ СИСТЕМА HDFS
Книги
Hadoop: The Definitive Guide
Tom White (Author)
O'Reilly Media; 3rd Edition
Chapter 3: The Hadoop
Distributed Filesystem
Chapter 4: Hadoop I/O