<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8421570887939156929</id><updated>2024-03-21T09:45:06.559-07:00</updated><title type='text'>My perspective</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://clustermania.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8421570887939156929/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://clustermania.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nitin Jain</name><uri>http://www.blogger.com/profile/09788811655593781499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8421570887939156929.post-4079439737608288794</id><published>2011-11-28T06:10:00.001-08:00</published><updated>2011-11-28T09:46:10.555-08:00</updated><title type='text'>Hadoop - How it manages security</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;style&gt;
&lt;!--
 /* Font Definitions */
@font-face
 {font-family:&quot;Courier New&quot;;
 panose-1:2 7 3 9 2 2 5 2 4 4;
 mso-font-charset:0;
 mso-generic-font-family:auto;
 mso-font-pitch:variable;
 mso-font-signature:3 0 0 0 1 0;}
@font-face
 {font-family:Wingdings;
 panose-1:5 0 0 0 0 0 0 0 0 0;
 mso-font-charset:2;
 mso-generic-font-family:auto;
 mso-font-pitch:variable;
 mso-font-signature:0 0 65536 0 -2147483648 0;}
@font-face
 {font-family:Cambria;
 panose-1:0 0 0 0 0 0 0 0 0 0;
 mso-font-alt:&quot;Times New Roman&quot;;
 mso-font-charset:77;
 mso-generic-font-family:roman;
 mso-font-format:other;
 mso-font-pitch:auto;
 mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
 {mso-style-parent:&quot;&quot;;
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
 {margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
@page Section1
 {size:612.0pt 792.0pt;
 margin:72.0pt 90.0pt 72.0pt 90.0pt;
 mso-header-margin:36.0pt;
 mso-footer-margin:36.0pt;
 mso-paper-source:0;}
div.Section1
 {page:Section1;}
 /* List Definitions */
@list l0
 {mso-list-id:478614996;
 mso-list-type:hybrid;
 mso-list-template-ids:449999660 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:18.0pt;
 text-indent:-18.0pt;
 font-family:Symbol;}
@list l1
 {mso-list-id:890188503;
 mso-list-type:hybrid;
 mso-list-template-ids:1494623848 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:18.0pt;
 text-indent:-18.0pt;
 font-family:Symbol;}
@list l2
 {mso-list-id:1325816141;
 mso-list-type:hybrid;
 mso-list-template-ids:-1686889478 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
 {mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:18.0pt;
 text-indent:-18.0pt;}
@list l2:level2
 {mso-level-number-format:alpha-lower;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:54.0pt;
 text-indent:-18.0pt;}
@list l2:level3
 {mso-level-number-format:roman-lower;
 mso-level-tab-stop:none;
 mso-level-number-position:right;
 margin-left:90.0pt;
 text-indent:-9.0pt;}
ol
 {margin-bottom:0cm;}
ul
 {margin-bottom:0cm;}
--&gt;
&lt;/style&gt;






&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;u&gt;&lt;span style=&quot;text-decoration: none;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Security
is an important aspect of any IT deployment and Hadoop is no different. While
running a large Hadoop cluster, it becomes increasingly important to
authenticate users/services, prevent unauthorized access to data/services and
isolate user Jobs so that only authorized users can submit, view and mutate job
states. This article explains in detail the security aspects supported in
Hadoop version 0.20.205.0.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Security
in an IT setup typically involves following aspects &lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: Symbol;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Authentication&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; – Authentication&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=8421570887939156929&quot; name=&quot;kerberos-CHP-2-ITERM-850&quot;&gt;&lt;/a&gt;
is the process of verifying the identity of a particular user or service and
ensuring user/service is really the one they are claiming to be. In Hadoop
context services are NameNode, DataNode, JobTracker, TaskTracker &amp;amp; user
proxy services like Oozie. Hadoop has pretty strong Authentication support
through Kerberos,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;HMAC-SHA1 tokens and
pluggable HTTP authentication. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: black; font-family: Symbol;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;i style=&quot;mso-bidi-font-style: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&lt;b&gt;Authorization&lt;/b&gt;
&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;- Authorization &lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=8421570887939156929&quot; name=&quot;kerberos-CHP-2-ITERM-857&quot;&gt;&lt;/a&gt;refers to granting or denying access to
specific resources based on the requesting user&#39;s identity. This step is
performed after a user is identified through authentication. Authorization is
usually performed through access control lists, which associate user identities
with specific rights. Hadoop supports authorization by limiting access to service
APIs, HDFS files permissions, Job execution &amp;amp; administrative permissions
and making Job information accessible only to authorized users&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: black; font-family: Symbol;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&lt;b&gt;Data Integrity &amp;amp; Privacy&lt;/b&gt; – Data Integrity &amp;amp;
Privacy refers to the ability of ensuring that data is not tampered with and
sniffed when it is transferred over unsecure network channel. Hadoop has
limited support for Data Integrity &amp;amp; Privacy. RPC calls with various Hadoop
services can optionally be protected against tamper and sniff, however actual
HDFS data/blocks are transferred unencrypted.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 18pt; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 0cm; text-align: justify;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Players in Hadoop security –&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: black; font-family: Symbol;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;User (access HDFS and Map-Reduce services)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: black; font-family: Symbol;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;HDFS and Map-Reduce services (services user requests and
coordinates among themselves to perform Hadoop cluster operations)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: black; font-family: Symbol;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Proxy service like Oozie (accesses Hadoop services on
behalf of user)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 18pt; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Let us look
in detail how various interactions among these roles are secured - &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 18pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;1.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;User to Service Authentication, Integrity and Privacy – &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Hadoop has following user to service interaction&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;a.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;User code interacts with Name Node for creation/deletion
of files/directories, retrieve location of data blocks for file read/write
operations and other file system administrative operations&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;b.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;User code interacts with Data Node to recover from block
replication failure during file append&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;c.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;User code interacts with Data Node to read/write data
blocks&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;d.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;User code interacts with Job Tracker to schedule job
execution&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;e.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Job tracker, Task trackers and Tasks interact with Name
Node on behalf of a User to store and access job related files.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;f.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Job tracker, 
Task trackers and Tasks interact with Data Node on behalf of a User to store
and access job related data blocks.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;g.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Tasks interact with Task Tracker on behalf of user to
coordinate a Job’s tasks execution.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;h.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Reduce Tasks interact with Task Tracker through HTTP to
download Map tasks output.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;These interactions are depicted in picture below -&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJ19QkIt3EFHFgrdrUofc0zsJAqdGFRMKMgFcsP0wVt1cIl-KDPNARj2VEWfTLgKfqJ-opEJ7nmLtKBZ3j-Q_eG2l3q2L3Mrh-XduVdfqLXURSzMMVGFgI7W9l07NJL_zXKdy3h84Iami/s1600/Hadoop1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;419&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJ19QkIt3EFHFgrdrUofc0zsJAqdGFRMKMgFcsP0wVt1cIl-KDPNARj2VEWfTLgKfqJ-opEJ7nmLtKBZ3j-Q_eG2l3q2L3Mrh-XduVdfqLXURSzMMVGFgI7W9l07NJL_zXKdy3h84Iami/s640/Hadoop1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGmfjRlWeIVG4IPYipZymI7fYTmHWRwXYXow7Wkl8ceTUgrO1r8JOfnHMYJIyCuZE3V0diytf0H8XOC7LpqkfkCa8GFK_ZJtG2_39X85KC5lzo0x529voxweMHWpoxlVhidbLzVn8oB81-/s1600/Hadoop2.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGmfjRlWeIVG4IPYipZymI7fYTmHWRwXYXow7Wkl8ceTUgrO1r8JOfnHMYJIyCuZE3V0diytf0H8XOC7LpqkfkCa8GFK_ZJtG2_39X85KC5lzo0x529voxweMHWpoxlVhidbLzVn8oB81-/s640/Hadoop2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;style&gt;
&lt;!--
 /* Font Definitions */
@font-face
 {font-family:Cambria;
 panose-1:0 0 0 0 0 0 0 0 0 0;
 mso-font-alt:&quot;Times New Roman&quot;;
 mso-font-charset:77;
 mso-generic-font-family:roman;
 mso-font-format:other;
 mso-font-pitch:auto;
 mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
 {mso-style-parent:&quot;&quot;;
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
a:link, span.MsoHyperlink
 {color:blue;
 text-decoration:underline;
 text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
 {mso-style-noshow:yes;
 color:purple;
 text-decoration:underline;
 text-underline:single;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
 {margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
@page Section1
 {size:612.0pt 792.0pt;
 margin:72.0pt 90.0pt 72.0pt 90.0pt;
 mso-header-margin:36.0pt;
 mso-footer-margin:36.0pt;
 mso-paper-source:0;}
div.Section1
 {page:Section1;}
 /* List Definitions */
@list l0
 {mso-list-id:1325816141;
 mso-list-type:hybrid;
 mso-list-template-ids:-1686889478 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
 {mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:18.0pt;
 text-indent:-18.0pt;}
@list l0:level2
 {mso-level-number-format:alpha-lower;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:54.0pt;
 text-indent:-18.0pt;}
@list l0:level3
 {mso-level-number-format:roman-lower;
 mso-level-tab-stop:none;
 mso-level-number-position:right;
 margin-left:90.0pt;
 text-indent:-9.0pt;}
ol
 {margin-bottom:0cm;}
ul
 {margin-bottom:0cm;}
--&gt;
&lt;/style&gt;






&lt;br /&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18.0pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;2.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;User Authorization&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&lt;b&gt;Service Level authorization&lt;/b&gt; - First level of
authorization is service level access. All Hadoop services let you define the
users and groups who are authorized to make RPC call to that service. Only if
the user making RPC call belongs to authorized service user/group, the RPC call
will go through. Checkout &lt;/span&gt;&lt;a href=&quot;http://hadoop.apache.org/common/docs/stable/service_level_auth.html&quot;&gt;&lt;span style=&quot;font-family: Helvetica;&quot;&gt;http://hadoop.apache.org/common/docs/stable/service_level_auth.html&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; for configuration details of service level
authorization&lt;/span&gt;&amp;nbsp;

&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Authorization in HDFS - &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;All files &amp;amp; directory created in Hadoop carries
separate read and write permissions for user, groups and others (very much Unix
like file permissions). Before allowing access to a file/directory, name node
ensures that user has got appropriate permission for user/group/other based on
logged in user credentials. Checkout &lt;/span&gt;&lt;a href=&quot;http://hadoop.apache.org/common/docs/current/hdfs_permissions_guide.html&quot;&gt;&lt;span style=&quot;font-family: Helvetica;&quot;&gt;http://hadoop.apache.org/common/docs/current/hdfs_permissions_guide.html&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; for details.&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Authorization in Map-Reduce –&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; Job Tracker supports authorization on job queue, i.e. only
users with appropriate authorization are allowed to submit, view, modify and
cancel jobs. Checkout &lt;/span&gt;&lt;a href=&quot;http://hadoop.apache.org/mapreduce/docs/current/mapred_tutorial.html#Job+Authorization&quot;&gt;&lt;span style=&quot;font-family: Helvetica;&quot;&gt;http://hadoop.apache.org/mapreduce/docs/current/mapred_tutorial.html#Job+Authorization&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; &amp;amp; &lt;/span&gt;&lt;a href=&quot;http://hadoop.apache.org/common/docs/current/cluster_setup.html&quot;&gt;&lt;span style=&quot;font-family: Helvetica;&quot;&gt;http://hadoop.apache.org/common/docs/current/cluster_setup.html&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; for details. During job execution any access to HDFS
made with user credentials. Only user with appropriate authorization can access
HDFS files&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18.0pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;3.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Service-to-Service Authentication – &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Services are authenticated using Kerberos before they
start communicating with other services. This authorization protects Services
RPC APIs meant for Hadoop cluster management/coordination that are not directly
connected to any user request (e.g. Name node and data node interact with each
other for block management operations, TaskTracker interact with JobTracker for
a Job’s task scheduling and status tracking). Following service-to-service
authentication scenario exists in Hadoop-&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;a.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Data Node and Name Node authenticates each other using
Kerberos credentials&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;b.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Job Tracker and Name Node authenticates each other using
Kerberos credentials&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 40pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;c.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Task Tracker and Job Tracker authenticates each other
using Kerberos credentials&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&amp;nbsp;These interactions are depicted in picture below -&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTq-MzOmUqD0A_mPfS6sClQxx_-SG6YvRYzq7IyboqFvwkTWVBG0dLOQgTjF6S06mPmKZ-K59hUdQiQRM-tZYFRnWrR0PU_kC39W6sSKj-QkARj8yK6dclu3h0vGikAK2kYYdNrmlhKobc/s1600/Hadoop3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTq-MzOmUqD0A_mPfS6sClQxx_-SG6YvRYzq7IyboqFvwkTWVBG0dLOQgTjF6S06mPmKZ-K59hUdQiQRM-tZYFRnWrR0PU_kC39W6sSKj-QkARj8yK6dclu3h0vGikAK2kYYdNrmlhKobc/s640/Hadoop3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;style&gt;
&lt;!--
 /* Font Definitions */
@font-face
 {font-family:Cambria;
 panose-1:0 0 0 0 0 0 0 0 0 0;
 mso-font-alt:&quot;Times New Roman&quot;;
 mso-font-charset:77;
 mso-generic-font-family:roman;
 mso-font-format:other;
 mso-font-pitch:auto;
 mso-font-signature:3 0 0 0 1 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
 {mso-style-parent:&quot;&quot;;
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
tt
 {font-family:Courier;
 mso-ascii-font-family:Courier;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Courier;
 mso-bidi-font-family:Courier;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
 {margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
 {mso-style-type:export-only;
 margin-top:0cm;
 margin-right:0cm;
 margin-bottom:0cm;
 margin-left:36.0pt;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Cambria;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
@page Section1
 {size:612.0pt 792.0pt;
 margin:72.0pt 90.0pt 72.0pt 90.0pt;
 mso-header-margin:36.0pt;
 mso-footer-margin:36.0pt;
 mso-paper-source:0;}
div.Section1
 {page:Section1;}
 /* List Definitions */
@list l0
 {mso-list-id:1325816141;
 mso-list-type:hybrid;
 mso-list-template-ids:-1686889478 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
 {mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:18.0pt;
 text-indent:-18.0pt;}
@list l0:level2
 {mso-level-number-format:alpha-lower;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 margin-left:54.0pt;
 text-indent:-18.0pt;}
@list l0:level3
 {mso-level-number-format:roman-lower;
 mso-level-tab-stop:none;
 mso-level-number-position:right;
 margin-left:90.0pt;
 text-indent:-9.0pt;}
ol
 {margin-bottom:0cm;}
ul
 {margin-bottom:0cm;}
--&gt;
&lt;/style&gt;






&lt;br /&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18.0pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;4.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Service-to-Service Authorization – &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;If Hadoop security is enabled, each service-to-service
RPC interaction is already pre configured to allow access only to appropriate
services. E.g. access to methods in ‘&lt;/span&gt;&lt;tt&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol’&lt;/span&gt;&lt;/tt&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt; (interface used by Data Nodes to interact with Name
Node for data block management) is only allowed to services authenticated with
data node principal.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18.0pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;5.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Web UI Authentication, Integrity and Privacy – &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;All Hadoop services (NameNode, DataNode, JobTracker,
TaskTracker) exposes part of their functions and administrative interface through
HTTP. Hadoop ships with inbuilt authentication to protect services HTTP
interface through ‘SPNEGO Kerberos’ (users are authenticated using Kerberos
credentials) or rudimentary authentication through user name defined in HTTP
URL Parameters. Same user credentials setup for authentication with Hadoop
service RPC interface works for HTTP Kerberos authentication. Additionally Kerberos
HTTP authentication requires setting up Kerberos credentials for HTTP server
running with in each service.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Hadoop HTTP
Authentication can be extended to support other HTTP authentication mechanism
as well. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Integrity and privacy can be
enabled through SSL/TLS&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18.0pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;6.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Web UI Authorization – &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Works same as way as user authorization for HDFS and
Map-Reduce (Read section 2b. and 2c. for details)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-align: justify; text-indent: -18.0pt;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;7.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Proxy
Services (e.g. Oozie) Authentication, Integrity and Privacy – &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Proxy services are configured as super-user with other
Hadoop services. Proxy services authenticate themselves to core Hadoop services
using Kerberos. Communication channel between proxy services and Hadoop service
can optionally be secured for privacy and data integrity. Proxy service
authentication requires setting up Kerberos credential for proxy service&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-left: 18.0pt; mso-add-space: auto; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Additionally proxy services can be
configured to authenticate users before they use proxy service to access Hadoop
infrastructure.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18.0pt; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-left: 18pt; text-align: justify; text-indent: -18pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;8.&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Proxy Service Authorization - &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;Hadoop services allow super-users to perform operations
on behalf of other non-super users and operations are authorized based the
permission of non-super users. Since proxy services accesses the Hadoop cluster
on behalf of other users, proxy services performs those operations as the user
whom they proxy and hence authorized based on proxy user’s access rights
mentioned in section 2b. and 2c.&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Helvetica;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;&lt;span style=&quot;color: blue;&quot;&gt;In nutshell, Hadoop has strong support for authentication and authorization. On the other hand privacy and data integrity is optionally supported when Hadoop services are accessed through RPC and HTTP, while the actual HDFS blocks are transferred unencrypted. Hadoop assumes network involved in HDFS block transfer is secure and not publicly accessible for sniffing, which is not a bad assumption for private enterprise network.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;ol type=&quot;a&quot;&gt;
&lt;/ol&gt;
&lt;ul&gt;


&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clustermania.blogspot.com/feeds/4079439737608288794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clustermania.blogspot.com/2011/11/hadoop-how-it-manages-security.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8421570887939156929/posts/default/4079439737608288794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8421570887939156929/posts/default/4079439737608288794'/><link rel='alternate' type='text/html' href='http://clustermania.blogspot.com/2011/11/hadoop-how-it-manages-security.html' title='Hadoop - How it manages security'/><author><name>Nitin Jain</name><uri>http://www.blogger.com/profile/09788811655593781499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJ19QkIt3EFHFgrdrUofc0zsJAqdGFRMKMgFcsP0wVt1cIl-KDPNARj2VEWfTLgKfqJ-opEJ7nmLtKBZ3j-Q_eG2l3q2L3Mrh-XduVdfqLXURSzMMVGFgI7W9l07NJL_zXKdy3h84Iami/s72-c/Hadoop1.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8421570887939156929.post-2967037591933451451</id><published>2011-10-18T13:11:00.000-07:00</published><updated>2011-10-19T00:52:03.347-07:00</updated><title type='text'>Scaling Map-Reduce in new Hadoop release 0.23</title><content type='html'>&lt;a title=&quot;View Scaling Map-Reduce in new Hadoop release on Scribd&quot; href=&quot;http://www.scribd.com/doc/69334752/Scaling-Map-Reduce-in-new-Hadoop-release?secret_password=188zgtfpn7ck410aw3s2&quot; style=&quot;margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;&quot;&gt;Scaling Map-Reduce in new Hadoop release 0.23 (Click to Download PDF)&lt;/a&gt;&lt;iframe class=&quot;scribd_iframe_embed&quot; src=&quot;http://www.scribd.com/embeds/69334752/content?start_page=1&amp;view_mode=slideshow&amp;access_key=key-5gje0c7gvg0tbargmce&amp;secret_password=188zgtfpn7ck410aw3s2&quot; data-auto-height=&quot;true&quot; data-aspect-ratio=&quot;0.772727272727273&quot; scrolling=&quot;no&quot; id=&quot;doc_64016&quot; width=&quot;100%&quot; height=&quot;600&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;script type=&quot;text/javascript&quot;&gt;(function() { var scribd = document.createElement(&quot;script&quot;); scribd.type = &quot;text/javascript&quot;; scribd.async = true; scribd.src = &quot;http://www.scribd.com/javascripts/embed_code/inject.js&quot;; var s = document.getElementsByTagName(&quot;script&quot;)[0]; s.parentNode.insertBefore(scribd, s); })();&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://clustermania.blogspot.com/feeds/2967037591933451451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clustermania.blogspot.com/2011/10/scaling-map-reduce-in-new-hadoop_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8421570887939156929/posts/default/2967037591933451451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8421570887939156929/posts/default/2967037591933451451'/><link rel='alternate' type='text/html' href='http://clustermania.blogspot.com/2011/10/scaling-map-reduce-in-new-hadoop_18.html' title='Scaling Map-Reduce in new Hadoop release 0.23'/><author><name>Nitin Jain</name><uri>http://www.blogger.com/profile/09788811655593781499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8421570887939156929.post-8015584530362731935</id><published>2009-07-28T05:50:00.000-07:00</published><updated>2009-07-28T06:13:32.730-07:00</updated><title type='text'>With Read-Write hibernate 2nd level Cache strategy, why use transactional one at all</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;    Hibernate 2nd level cache is a great option for large performance improvements if configured correctly for a particular use case. While choosing a right 2nd level caching strategy applications typically battle between Read-Write and transactional strategy. Off late I have been trying to figure out what is in there Hibernate 2nd level transactional cache strategy implementation that is not offered by a read-write cache strategy implementation and what is the performance cost factor. And to my delight it turned out that a apart from offering a performance benefits most of the time, a properly implemented read-write cache (e.g. terracotta 2nd level hibernate cache) is functionally no less than a transactional cache except few caveats that either most of the application never run into or can be worked around easily if known what the caveats are. In this article I talk about the basic functioning of Hibernate read-write cache strategy (how does it guarantee transactionality), caveats and workarounds.&lt;br /&gt;&lt;br /&gt;    Read write caching strategy uses a combination of transaction time stamp, cache entry timestamp, cache entry version (if optimistic locking is used) and cache entry locking to guarantee repeatable read isolation level.&lt;br /&gt;&lt;br /&gt;   Some of the things hibernate does to ensure the liveliness of data read/updated inside a transaction is –&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Every cache entry inserted/changed inside cache is assigned a timestamp&lt;/li&gt;&lt;li&gt;Every transaction gets a timestamp at start.&lt;/li&gt;&lt;li&gt;Whenever a cache entry is updated it is soft locked (in a distributed cache setup, the cache provider should have a cluster wide lock, otherwise cache correctness is compromised). ‘Soft lock’ is referred as ‘lock’ later and is a Hibernate specific state where cache entry is not available for read and other cache operations.&lt;/li&gt;&lt;li&gt;Once transaction completes, cache entry state is updated cache entry state along with the new time stamp information. The update entry is soft unlocked then. ‘Soft unlock’ is referred as ‘unlock’ later and is the normal cache entry state where it is available for read and other cache operations.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;   A transaction can only read those cache entries that&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Have cache entry time stamp smaller than transaction timestamp (that i.e. cache entry reflects the database state prior to transaction start)&lt;/li&gt;&lt;li&gt;Not locked (i.e. it is not being updated by any other concurrently running transaction).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If any of the above 2 condition fails, then transaction is instructed to read from DB instead of cache and based on the configured DB database isolation level, transaction will read/block on appropriate DB entry. This is smart; in case of conflict you go to DB and let DB control the transaction conflict based on the DB semantics.&lt;br /&gt;&lt;br /&gt;   You might ask how Read-Write cache handles conflicting updates – i.e. two transactions updating same entry concurrently, how hibernate knows which update wins?  Remember whenever an update is made to cache entry, it is locked. When a transaction tries to lock an already locked entry (i.e entry is already under update by another concurrently running transaction), hibernate keeps the entry locked even after completion of both transactions and any read for this particular cache entry is again deflected to DB. Later reads from the DB refreshes the cache entry state and unlocks the entry for other transactional reads/updates.&lt;br /&gt;&lt;br /&gt;   So far we talked about reading the correct state of entity. Now comes the big question – how is the cache transactionality/correctness maintained in Read-Write caching strategy during transaction commit, rollback &amp;amp; failures (the so called value proposition of transactional cache). Here is how -&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When application commits transaction, cache entry is locked, there by deflecting all the reads for this entry to DB now.&lt;/li&gt;&lt;li&gt;Then changes are flushed to DB and transactional resources are committed.&lt;/li&gt;&lt;li&gt;Once transaction is committed (i.e. reflected inside DB), in the after completion phase cache entry is updated and unlocked. Any other transaction starting after the update time stamp can now read the cache entry contents.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;   This is what happens in different stages of transaction completion/failure -&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;So anytime lag between 2 &amp;amp; 3 (i.e. when DB and cache are out of sync), you are using DB to read the latest state.&lt;/li&gt;&lt;li&gt;If transaction rolled back, cache entry still remains locked and later reads from the DB refreshes the cache entry state&lt;/li&gt;&lt;li&gt;What if node making transactional change fails between step 2 &amp;amp; 3 (i.e. transaction is committed to DB but not to cache) and cache state is preserved (e.g. in clustered cache), is my cache left corrupted? not really. Since cache entry is locked, other transaction keep reading from the DB directly. Later hibernate times out the locked cache entry and its contents are refreshed with database state and cache entry is again back for read/write operations.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Do you still need a transactional cache that either integrates with hibernate native transactions or JTA? All a JTA transaction cache guarantees is cache state visibility across transactions and recoverability if any of the transaction phases fails. With read-write you are guaranteed to read the correct state all the time. If cache entry state gets inconsistent because of any failure in transaction commit phase, it is guaranteed to recover with correct state. This is all what a transactional cache guarantees, but at a higher cost (esp. when read outweigh writes).&lt;br /&gt;&lt;br /&gt;   Hibernate Read-Write cache strategy makes a smart decision of reading from the cache or database based on the cache entries. Anytime if cache can not guarantee the correct contents, application is deflected to DB.&lt;br /&gt;&lt;br /&gt;   What are the caveats?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Read-Write cache might compromise repeatable read isolation level if an entity is read from the cache and later its contents are flushed from 1st level (session) cache. If transaction reads the same entry again from DB later and in the meantime other transaction updated the entry state, current transaction will get different state than what it read earlier.&lt;/li&gt;&lt;/ul&gt;              Note:&lt;br /&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;This should occur only if session cache contents are flushed otherwise once any entry is read from 2nd level cache/DB, every subsequent read in the same transaction will get the state from session cache and there by guaranteed the same state again and again. How many people really flush session cache?&lt;/li&gt;&lt;li&gt;If certain scenario demands a flush from session cache, it can be worked around by explicitly using hibernate LockMode.READ when loading the entity. 2nd level cache is by passed in this mode and data is read from DB.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Cache entries might expire in lock mode. In lock mode each entry is assigned a timeout value and if update doesn’t unlock the entry within specified timeout, the entry might be unlocked forcefully(this done to avoid any permanent fallout of cache entry from the cache, e.g. when node fails before unlocking the entry). A genuinely delayed transaction might create a very small window where cache contents are stale and other transactions are reading the old state. Cache entry timeout is a cache provider property and might to be able tune if provider supports it.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;                   Note:&lt;br /&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;For this to occur, update has to be delayed, read has to occur after timeout and moreover the stale window is miniscule. So majority of the applications are safe anyways.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;        Entity type that are mostly updated and have got concurrent read and updates, read-write caching strategy may not be very useful as most of the read will be deflected to database.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;   While for majority of the application Read-Write cache is clear winner (repeatable read isolation level without overhead of cache provider maintaining explicit transactional boundaries), other cache modes (e.g transactional, non strict read write cache) might be used in some the apps depending upon the use.&lt;br /&gt;&lt;br /&gt;   To maintain transactional semantics in cluster, the cache provider has to support distributed locking along with other cache management features, which is one of the many Terracotta fortes. We at terracotta are releasing soon a highly optimized new version of hibernate 2nd level cache that supports all cache modes – Read-Write cache, transactional, not strict read write and read only. Check out &lt;a href=&quot;http://www.terracotta.org&quot;&gt;www.terracotta.org&lt;/a&gt; for details.&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clustermania.blogspot.com/feeds/8015584530362731935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://clustermania.blogspot.com/2009/07/with-read-write-hibernate-2nd-level.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8421570887939156929/posts/default/8015584530362731935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8421570887939156929/posts/default/8015584530362731935'/><link rel='alternate' type='text/html' href='http://clustermania.blogspot.com/2009/07/with-read-write-hibernate-2nd-level.html' title='With Read-Write hibernate 2nd level Cache strategy, why use transactional one at all'/><author><name>Nitin Jain</name><uri>http://www.blogger.com/profile/09788811655593781499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry></feed>