Apache Hadoop DataNode

DataNode в экосистеме Hadoop в первую очередь отвечает за хранение данных приложения в распределенной и реплицированной форме. Он действует как подчиненный в системе и управляется NameNode. Каждый диск в системе Hadoop разделен на несколько блоков, как и традиционное запоминающее устройство компьютера. Блок – это минимальная единица, в которой данные могут быть прочитаны или записаны файловой системой Hadoop. Эта экосистема дает естественное преимущество в разделении больших файлов на эти блоки и хранении их на нескольких узлах. Размер блока узла данных по умолчанию варьируется от 64 МБ до 128 МБ, в зависимости от реализации Hadoop. Это можно изменить через конфигурацию узла данных. HDFS разработана для поддержки очень больших размеров файлов и для семантики на основе однократной записи-чтения-многих.

DataNodes в первую очередь отвечают за хранение и извлечение этих блоков, когда они запрашиваются потребителями через Name Node. В Hadoop версии 3.X DataNode не только хранит данные в блоках, но также распределенным образом контрольную сумму или четность исходных блоков. Узлы данных следуют механизму конвейера репликации для хранения данных в блоках, распространяющих части на другие Data Nodes.

Когда кластер запускается, NameNode запускается в безопасном режиме, пока узлы данных не зарегистрируют информацию блока данных с NameNode. Как только это подтверждено, он начинает взаимодействовать с клиентами для обслуживания запросов. Когда Data node запускается, он сначала соединяется с NameNode, сообщая всю информацию о доступности своих блоков данных. Эта информация регистрируется в NameNode, и когда клиент запрашивает информацию об определенном блоке, NameNode указывает на соответствующие данные не из своего реестра. Затем клиент напрямую взаимодействует с DataNode для чтения / записи блока данных. Во время обработки кластера узел данных периодически связывается с Name Node, отправляя контрольный сигнал.

Working with YARN distributed CLI

YARN CLI provides three types of commands. The first type is for users who wish to use YARN infrastructure for developing applications. The second type are administrative commands, which provide monitoring and administrative capabilities of all components of YARN including resource manager, application master, and timeline server. The third type are daemon commands, which are used for maintenance purposes covering stopping, starting, and restarting of daemons. Now, let’s look at user commands for YARN:

CommandParametersDescriptionImportant Parameters
applicationyarn application <command> <parameters>All actions pertaining to applications such as print and kill.- appID <applicationID>
- kill <applicationID>
- list
- status <applicationID>
applicationattemptyarn applicationattempt <parameter>Prints an application attempt(s) report. 
classpathyarn classpath --jar <path>Prints the classpath needed for the given JARor prints the current classpath set when passed without a parameter. 
containeryarn container <parameters>Prints a container report.-status <containerID>
-list  <applicationattemptID>
jaryarn jar <jar file> <mainClassName>Runs the given JAR file in YARN. The main class name is needed. 
logsyarn logs <command> <parameter>Dumps the log for a given application, container, or owner.-applicationId <applicationID>
- containerId <containerID>
nodeyarn node <command> <parameter>Prints node-related reports.-all prints it for all nodes
- list - lists all nodes
queueyarn queue <options>Prints queue information.-status <queueName>
version Prints current Hadoop version. 
envvars Displays current environment variables. 

The following screenshot shows how a command is fired on YARN:

When a command is run, the YARN client connects to the Resource Manager default port to get the details—in this case, node listing. More details about administrative and daemon commands can be read here.

Using the Hive command

Hive first started with hiveserver1. However, this version of Hive server was not very stable. It sometimes suspended or blocked the client’s connection quietly. Since v0.11.0, Hive has included a new thrift server called hivesever2 to replace hiveserver1hiveserver2 has an enhanced server designed for multiple client concurrency and improved authentication. It also recommends using beeline as the major Hive command-line interface instead of the hive command. The primary difference between the two versions of servers is how the clients connect to them. hive is an Apache-Thrift-based client, and beeline is a JDBC client. The hive command directly connects to the Hive drivers, so we need to install the Hive library on the client. However, beeline connects to hiveserver2 through JDBC connections without installing Hive libraries on the client. That means we can run beeline remotely from outside the cluster. For more usage of hiveserver2 and its API access, refer to https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients.

The following two tables list the commonly-used commands in different command modes considering different user preferences:

Purposehiveserver2 - beelinehiveserver1 - hive
Connect serverbeeline –u <jdbc_url>hive -h <hostname> -p <port>
Helpbeeline -hhive -H
Run querybeeline -e "hql query"
beeline -f hql_query_file.hql
beeline -i hql_init_file.hql
hive -e "hql query"
hive -f hql_query_file.hql
hive -i hql_init_file.hql
Setvariablebeeline --hivevar var_name=var_valuehive --hivevar var_name=var_value
Purposehiveserver2 - beelinehiveserver1 - hive
Enter modebeelinehive
Connect server!connect <jdbc_url>N/A
List tables!table
show tables; --also support
show tables;
List columns!column table_name
desc table_name;
desc table_name;
Run queryselect * from table_name;select * from table_name;
Save result!record result_file.dat
Run shell cmd!sh ls!ls;
Run dfs cmddfs -ls;dfs -ls;
Run hql file!run hql_query_file.hqlsource hql_query_file.hql;
Quit mode!quitquit;

In addition, Hive configuration settings and properties can be accessed and overwritten by theSET keyword in the interactive mode. For more details, refer to the Apache Hive wiki at https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties.
For beeline, ; is not needed after the command that starts with !. Both commands do not support running a pasted query with <tab> inside, because <tab> is used for auto-complete by default in the environment. Alternatively, running the query from files has no such issues. In interactive mode, we can use the keyboard’s up and down arrow keys to retrieve the previous commands. The !history command can be used in beeline to show the command’s history.  In addition, the dfs command may be disabled in beeline for permissions control in some Hadoop distributions. Both commands support variable substitution, which refers to https://cwiki.apache.org/confluence/display/Hive/LanguageManual+VariableSubstitution.

Oracle Essbase Bootcamp

01 Oracle Essbase BootCamp. Описание предметной области.

02 Oracle Essbase. BootCamp. Описание Артефактов.

03 Oracle Essbase. BootCamp Load Rules Dimensions

04 Oracle Essbase. BootCamp Load Rules Data

05 Oracle Essbase BootCamp. Dynamic Calc. Two Pass Calculations.

06 Oracle Essbase BootCamp. Datastore in blocks. Multidimensions blocks explosion

07 Oracle Essbase BootCamp. MDX Reports .Functional Testing

08 Oracle Essbase BootCamp. Sample Calculations. How to use blocks to store calculated data

09 Oracle Essbase BootCamp. Calculation modes(Pull,Push,Cell,Block,by Data,by Model,Serial,Parallel)

10 Oracle Essbase. Allocation bootcamp

11 Oracle Essbase BootCamp. Sample Allocation

12 Oracle Essbase BootCamp. All about CalcScript

12a Oracle Essbase Bootcamp. Мониторинг работы

in2sql excel addin for odbc data sources


I have started a new OpenSource project for creating Excel C# Addin to simplify user access to ODBC. Now this project has limited functionality but it is already useful for Excel data analytics.

Main functionality

  1. reduce level for involving analytics for creating SQL query
  2. remove middlemen between SQL data and Excel (use 3d part application with exporting data to CSV )
  3. real-time update data without steps in different tools

Source code