<?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: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-23646064</id><updated>2012-01-23T12:22:19.523+05:30</updated><category term='samba smb mount ubuntu linux'/><title type='text'>Rajeev Sharma</title><subtitle type='html'>Technology today</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23646064.post-6119754040367097431</id><published>2011-01-12T08:15:00.001+05:30</published><updated>2011-01-12T08:15:31.053+05:30</updated><title type='text'>Configuring passwordless ssh access</title><content type='html'>&lt;font style="font-family: Courier New;" size="3"&gt;&lt;span class="codefrag"&gt;&lt;span style="font-family: Verdana;"&gt;1. Execute the following commands on local machine.&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa&lt;/span&gt;&lt;/font&gt;&lt;br style="font-family: Courier New;"&gt;&lt;font style="font-family: Courier New;" size="3"&gt;&lt;span class="codefrag"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;$ cat ~/.ssh/id_dsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This will create a key id_dsa.pub&lt;br&gt;&lt;br&gt;2. Copy the id_dsa.pub to remote machine. Execute the following command to send the key to remote server.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ scp ~/.ssh/id_dsa.pub remote-machine:~/.ssh/&lt;/span&gt;&lt;br&gt;&lt;br&gt;3. Login to the remote machine and execute the following command to authorize the key.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;font style="font-family: Courier New;" size="2"&gt;&lt;span class="codefrag"&gt;$ cat ~/.ssh/id_dsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-6119754040367097431?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/6119754040367097431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=6119754040367097431' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/6119754040367097431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/6119754040367097431'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2011/01/configuring-passwordless-ssh-access.html' title='Configuring passwordless ssh access'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-5387700940761652282</id><published>2010-05-02T13:44:00.001+05:30</published><updated>2010-05-02T14:11:44.786+05:30</updated><title type='text'>Compile vpnc with openssl in Ubuntu</title><content type='html'>&lt;div&gt;&lt;b&gt;1. Compile vpnc with openssl and build package&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Download vpnc source&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left:40px"&gt;sudo apt-get source vpnc&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Uncomment some lines from Makefile. One of these two set of lines would be present in Makefile uncomment whichever is present.&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left:40px"&gt;OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION&lt;br&gt;OPENSSLLIBS = -lcrypto&lt;br&gt;or&lt;br&gt;OPENSSL_GPL_VIOLATION=yes&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Build vpnc dependencies&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left:40px"&gt;sudo apt-get build-dep vpnc&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Install openssl&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left:40px"&gt;sudo apt-get install openssl&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Install libssl dev packages&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left:40px"&gt;sudo apt-get install libssl-dev&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Build vpnc package&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-left:40px"&gt;sudo dpkg-buildpackage&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;b&gt;2. Create a vpnc conf file&lt;/b&gt;&lt;br&gt;&lt;div style="margin-left:40px"&gt;#Generated by pcf2vpnc&lt;br&gt;IPSec ID GeneralHybrid&lt;br&gt;IPSec gateway &amp;lt;server&amp;gt;&lt;br&gt;IPSec secret &amp;lt;sercret&amp;gt;&lt;br&gt;Xauth username &amp;lt;username&amp;gt;&lt;br&gt;IKE Authmode hybrid&lt;br&gt;CA-File &amp;lt;path_to_certificate_file&amp;gt;.pem&lt;br&gt;&lt;br&gt;#Xauth password 123456&lt;br&gt;#IKE DH Group dh2&lt;br&gt;#To add your username and password, use the following lines:&lt;br&gt;#Xauth password &amp;lt;your password&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;3. Install network manager vpnc with openssl support&lt;/b&gt;&lt;br&gt;&lt;div style="margin-left:40px"&gt;TBD&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-5387700940761652282?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/5387700940761652282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=5387700940761652282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/5387700940761652282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/5387700940761652282'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2010/05/vpnc-with-openssl.html' title='Compile vpnc with openssl in Ubuntu'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-517097124563977654</id><published>2010-02-17T11:20:00.001+05:30</published><updated>2010-02-17T11:20:13.552+05:30</updated><title type='text'>Creating a custom boot entry in Grub2 in Ubuntu 9.10</title><content type='html'>I created a custom boot entry for RHEL 4.5 in grub2 in Ubuntu 9.10. here are the steps&lt;br&gt;&lt;br&gt;1. Open &amp;quot;/etc/grub.d/40_custom&amp;quot; file and add the following contents and save the file.&lt;br&gt;&lt;br&gt;&lt;div style="margin-left:40px"&gt;#!/bin/sh&lt;br&gt;&lt;br&gt;cat &amp;lt;&amp;lt; EOF&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;menuentry &amp;quot;Redhat Enterprise Linux 4.5&amp;quot; {&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;linux (hd0,1)/vmlinuz-2.6.9-42.ELsmp root=LABEL=/1 ro rhgb quiet pci=nommconf&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;initrd (hd0,1)/initrd-2.6.9-42.ELsmp.img&lt;br&gt;}&lt;br&gt;EOF&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp; You may have to pass different parameters to the kernel. Also, In grub2 partition start from (hd0,1) whereas in grub it start from (hd0,0)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp; Make sure that in the parameter to the kernel root=LABEL=/&amp;lt;something&amp;gt;, &amp;lt;something&amp;gt; is the label of the root partition for the given OS.&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;2. Run the following command to generate the grub conf file&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ sudo grub-mkconfig -o /boot/grub/grub.cfg&lt;br&gt;&lt;br&gt;3. Restart the machine and you are done!&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-517097124563977654?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/517097124563977654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=517097124563977654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/517097124563977654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/517097124563977654'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2010/02/creating-custom-boot-entry-in-grub2-in.html' title='Creating a custom boot entry in Grub2 in Ubuntu 9.10'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-8380709459171536886</id><published>2010-02-09T20:46:00.001+05:30</published><updated>2010-02-09T20:50:19.102+05:30</updated><title type='text'>Configure mod_jk with Apache 2.2 in Ubuntu</title><content type='html'>&lt;b&gt;1. Install mod_jk: &lt;/b&gt;To install mod_jk in ubuntu execute the following command on the command line.&lt;br&gt;&lt;br&gt;&lt;div style="margin-left:40px"&gt;sudo apt-get install libapache2-mod-jk&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;2. Enable mod_jk loading: &lt;/b&gt;Create a link in /etc/apache2/mods-enabled/jk.load which points to /etc/apache2/mods-available/jk.load. This will enable loading mod_jk module in apache when apache is restarted.&lt;br&gt;&lt;b&gt;&lt;br&gt;3. Create mod_jk conf file: &lt;/b&gt;Create a mod_jk conf file and place it in /etc/apache2/mods-available/jk.conf&lt;br&gt;&lt;br&gt;&lt;div style="margin-left:40px"&gt;# Where to find workers.properties&lt;br&gt;# Update this path to match your conf directory location&lt;br&gt;JkWorkersFile /etc/apache2/jk_workers.properties&lt;br&gt;&lt;br&gt;# Where to put jk logs&lt;br&gt;# Update this path to match your logs directory location&lt;br&gt;JkLogFile /var/log/apache2/mod_jk.log&lt;br&gt;&lt;br&gt;# Set the jk log level [debug/error/info]&lt;br&gt;JkLogLevel info&lt;br&gt;&lt;br&gt;# Select the log format&lt;br&gt;JkLogStampFormat &amp;quot;[%a %b %d %H:%M:%S %Y]&amp;quot;&lt;br&gt;&lt;br&gt;# JkOptions indicate to send SSL KEY SIZE,&lt;br&gt;JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories&lt;br&gt;&lt;br&gt;# JkRequestLogFormat set the request format&lt;br&gt;JkRequestLogFormat &amp;quot;%w %V %T&amp;quot;&lt;br&gt;&lt;br&gt;# Shm log file&lt;br&gt;JkShmFile /var/log/apache2/jk-runtime-status&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;b&gt;4. Enable mod_jk configurations: &lt;/b&gt;Create a link in /etc/apache2/mods-enabled/jk.conf which points to /etc/apache2/mods-available/jk.conf&lt;b&gt;. &lt;/b&gt;This will enable mod_jk configuration in apache when apache is restarted.&lt;br&gt;&lt;br&gt;&lt;b&gt;5. Create a worker properties file:&lt;/b&gt; Create a workers properties file and place it in /etc/apache2/jk_workers.properties&lt;br&gt;&lt;br&gt;&lt;div style="margin-left:40px"&gt;# Define 1 real worker named ajp13&lt;br&gt;worker.list=ajp13&lt;br&gt;&lt;br&gt;# Set properties for worker named ajp13 to use ajp13 protocol,&lt;br&gt;# and run on port 8009&lt;br&gt;worker.ajp13.type=ajp13&lt;br&gt;worker.ajp13.host=localhost&lt;br&gt;worker.ajp13.port=8009&lt;br&gt;worker.ajp13.lbfactor=50&lt;br&gt;worker.ajp13.cachesize=10&lt;br&gt;worker.ajp13.cache_timeout=600&lt;br&gt;worker.ajp13.socket_keepalive=1&lt;br&gt;worker.ajp13.socket_timeout=300&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;6. Configure url forwarding in apache to tomcat: &lt;/b&gt;Put the following lines in you apache virtualhost to forward requests to tomcat.&lt;br&gt;&lt;div style="margin-left:40px"&gt;&lt;br&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Send everything for context &amp;quot;/context&amp;quot; to worker ajp13&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; JkMount /context/ ajp13&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; JkMount /context/* ajp13&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;b&gt;7. Configure AJP in tomcat server. Put the following line in $TOMCAT_HOME/conf/server.xml file under the Servies tag.&lt;br&gt;&lt;/b&gt;&lt;br&gt;&lt;div style="margin-left:40px"&gt;&amp;lt;Service name=&amp;quot;Catalina&amp;quot;&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define an AJP 1.3 Connector on port 8009 --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Connector port=&amp;quot;8009&amp;quot; protocol=&amp;quot;AJP/1.3&amp;quot; redirectPort=&amp;quot;8443&amp;quot; /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;&amp;lt;/Service&amp;gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;8. Restart the tomcat and apache server: &lt;/b&gt;Relax you are done.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-8380709459171536886?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/8380709459171536886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=8380709459171536886' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/8380709459171536886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/8380709459171536886'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2010/02/configure-modjk-with-apache-22-in.html' title='Configure mod_jk with Apache 2.2 in Ubuntu'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-3642876932766243804</id><published>2009-12-09T15:35:00.001+05:30</published><updated>2011-01-12T08:17:35.655+05:30</updated><title type='text'>HBase setup (0.20.0)</title><content type='html'>&lt;b&gt;&lt;font size="3"&gt;Before you begin:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Before you start configure HBase, you need to have a running Hadoop cluster, which will be the storage for hbase. Please refere to &lt;a href="http://rajeev1982.blogspot.com/2009/06/hadoop-cluster-setup-0191_17.html" id="c5tp" target="_blank" title="Learn how to setup a Hadoop 0.19.1 cluster"&gt;Hadoop cluster setup&lt;/a&gt; document before continuing.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;On the HBaseMaster (master) machine:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;1. In file /etc/hosts, define the ip address of the namenode machine and all the datanode machines. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1) for all the machines including the namenode, otherwise the datanodes will not be able to connect to namenode machine).&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-masterserver&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.8&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver1&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.7&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver2&lt;/font&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.6 &amp;nbsp;&amp;nbsp; hadoop-nameserver&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Check to see if the namenode machine ip is being resolved to actual ip not localhost ip using &amp;quot;ping hbase-namenode&amp;quot;.&lt;br&gt;&lt;br&gt;2. Configure password less login from masterserver to all regionserver machines. Refer to &lt;a href="http://blog.rajeevsharma.in/2011/01/configuring-passwordless-ssh-access.html" id="hu_q" title="Learn how to configure passwordless ssh access"&gt;Configuring passwordless ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hbase-0.20.0.tar.gz from &lt;a href="http://hadoop.apache.org/hbase" id="scyc" target="_blank" title="Download HBase"&gt;HBase website&lt;/a&gt; to some path in your computer (We&amp;#39;ll call the hbase installation root as $HBASE_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HBASE_INSTALL_DIR/conf/hbase-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/usr/lib/jvm/java-6-sun&lt;/font&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HBASE_INSTALL_DIR/conf/hbase-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;configuration.xsl&amp;quot;?&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;div&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;property&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;hbase.master&amp;lt;/name&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;localhost:60000&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;The host and port that the HBase master runs at.&lt;/font&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;A value of &amp;#39;local&amp;#39; runs the master and a regionserver in&lt;/font&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;a single process.&lt;/font&gt;&lt;div&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;property&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;div&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.rootdir&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://hadoop-nameserver:9000/hbase&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;The directory shared by region servers.&amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;property&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;hbase.cluster.distributed&amp;lt;/name&amp;gt;&lt;br&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;The mode the cluster will be in. Possible values are&lt;br&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;false: standalone and pseudo-distributed setups with managed&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Zookeeper true: fully-distributed with unmanaged Zookeeper &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Quorum (see hbase-env.sh)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Remeber to replace masterserver and regionserver machine names with real machine names here.&lt;br&gt;&lt;br&gt;6. Edit $HBASE_INSTALL_DIR/conf/regionservers and add the namenode machine&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver1&lt;/font&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver2&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-masterserver&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Add masterserver machine name only if you are running a regionserver on masterserver machine.&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;&lt;br&gt;On HRegionServer (slave) machine:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;1. In file /etc/hosts, define the ip address of the namenode machine. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1).&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; bhase-masterserver&lt;/font&gt;&lt;br&gt;&lt;br&gt;Note: Check to see if the masterserver machine ip is being resolved to actual ip not localhost ip using &amp;quot;ping hbase-masterserver&amp;quot;.&lt;br&gt;&lt;br&gt;2. Configure password less login from all regionserver machines to masterserver machines. Refer to &lt;a href="http://blog.rajeevsharma.in/2011/01/configuring-passwordless-ssh-access.html" id="z326" title="Learn how to configure passwordless ssh access"&gt;Configuring passwordless ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hbase-0.20.0.tar.gz from &lt;a href="http://hadoop.apache.org/hbase" id="s4n4" target="_blank" title="Download HBase"&gt;HBase website&lt;/a&gt; to some path in your computer (We&amp;#39;ll call the hadoop installation root as $HBASE_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HBASE_INSTALL_DIR/conf/hadoop-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/usr/lib/jvm/java-6-sun&lt;/font&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HBASE_INSTALL_DIR/conf/hbase-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;configuration.xsl&amp;quot;?&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;property&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;hbase.master&amp;lt;/name&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;localhost:60000&amp;lt;/value&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;The host and port that the HBase master runs at.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;A value of &amp;#39;local&amp;#39; runs the master and a regionserver in&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;a single process&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;property&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;div&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.rootdir&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://hadoop-nameserver:9000/hbase&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;The directory shared by region servers.&amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font face="&amp;#39;courier new&amp;#39;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;font face="Courier New"&gt;&amp;lt;property&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;hbase.cluster.distributed&amp;lt;/name&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;The mode the cluster will be in. Possible values are&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;false: standalone and pseudo-distributed setups with managed&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Zookeeper true: fully-distributed with unmanaged Zookeeper&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Quorum (see hbase-env.sh)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font size="3"&gt;&lt;b&gt;Start and Stop hbase daemons:&lt;br&gt;&lt;/b&gt;&lt;/font&gt;&lt;br&gt;You need to start/stop the daemons only on the masterserver machine, it will start/stop the daemons in all regionserver machines. Execute the following command to start/stop the hbase.&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HBASE_INSTALL_DIR/bin/start-hbase.sh&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HBASE_INSTALL_DIR/bin/stop-hbase.sh&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-3642876932766243804?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/3642876932766243804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=3642876932766243804' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/3642876932766243804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/3642876932766243804'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/12/hbase-setup-0200.html' title='HBase setup (0.20.0)'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-9166382201628785673</id><published>2009-06-18T17:27:00.001+05:30</published><updated>2011-01-03T13:29:53.488+05:30</updated><title type='text'>Secondary indexes in HBase</title><content type='html'>&lt;b&gt;&lt;font size="3"&gt;Creating secondary indexes in HBase-0.19.3:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;You need to enable indexing in HBase before you can create a secondary index on columns. Edit the file $HBASE_INSTALL_DIR/conf/hbase-site.xml and add the following property to it.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.regionserver.class&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;org.apache.hadoop.hbase.ipc.IndexedRegionInterface&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.regionserver.impl&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;Adding secondary index while creating table:&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTableDescriptor desc = new HTableDescriptor(&amp;quot;test_table&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addFamily(new HColumnDescriptor(&amp;quot;columnfamily1:&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addFamily(new HColumnDescriptor(&amp;quot;columnfamily2:&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addIndex(new IndexSpecification(&amp;quot;column1&amp;quot;, &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addIndex(new IndexSpecification(&amp;quot;&lt;/font&gt;&lt;font face="courier new"&gt;column&lt;/font&gt;&lt;font face="courier new"&gt;2&amp;quot;, &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTableAdmin admin = null;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin = new IndexedTableAdmin(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.createTable(desc);&lt;/font&gt;&lt;br&gt;&lt;br&gt;Adding index in an existing table:&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTableAdmin admin = null;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin = new IndexedTableAdmin(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.addIndex(Bytes.toBytes(&amp;quot;test_table&amp;quot;), new IndexSpecification(&amp;quot;column2&amp;quot;,&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)));&lt;/font&gt;&lt;br&gt;&lt;br&gt;Deleting existing index from a table.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTableAdmin admin = null;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin = new IndexedTableAdmin(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.removeIndex(Bytes.toBytes(&amp;quot;test_table&amp;quot;), &amp;quot;column2&amp;quot;);&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;Reading from secondary indexed columns:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;To read from a secondary index, get a scanner for the index and scan through the data.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTable table = new IndexedTable(conf, Bytes.toBytes(&amp;quot;test_table&amp;quot;));&lt;/font&gt;&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // You need to specify which columns to get&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scanner scanner = table.getIndexedScanner(&amp;quot;column1&amp;quot;,&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HConstants.EMPTY_START_ROW, null, null, new byte[][] {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;),&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;) });&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;/font&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (RowResult rowResult : scanner) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String value1 =&lt;/font&gt;&lt;font face="courier new"&gt; new String(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rowResult.get(Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;)).getValue());&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String value2 =&lt;/font&gt;&lt;font face="courier new"&gt; new String(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rowResult.get(Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)).getValue());&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(value1 + &amp;quot;, &amp;quot; + value2);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;table.close();&lt;/font&gt;&lt;br&gt;&lt;br&gt;To get a scanner to a subset of the rows specify a column filter.&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ColumnValueFilter filter = &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;new ColumnValueFilter(Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;),&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompareOp.LESS, Bytes.toBytes(&amp;quot;value1-10&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scanner = table.getIndexedScanner(&amp;quot;column1&amp;quot;, HConstants.EMPTY_START_ROW,&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;null,&lt;/font&gt;&lt;font face="courier new"&gt; filter, &lt;/font&gt;&lt;font face="courier new"&gt;new byte[][] {&lt;/font&gt;&lt;font face="courier new"&gt; Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;),&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)&lt;/font&gt;&lt;font face="courier new"&gt;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (RowResult rowResult : scanner) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String value1 =&lt;/font&gt;&lt;font face="courier new"&gt; new String(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rowResult.get(Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;)).getValue());&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String value2 =&lt;/font&gt;&lt;font face="courier new"&gt; new String(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rowResult.get(Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)).getValue());&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(value1 + &amp;quot;, &amp;quot; + value2);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br&gt;&lt;br&gt;Example Code:&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;import java.io.IOException;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.util.Date;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.fs.Path;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.HBaseConfiguration;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.HColumnDescriptor;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.HConstants;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.HTableDescriptor;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.client.Scanner;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.client.tableindexed.IndexSpecification;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.client.tableindexed.IndexedTable;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.client.tableindexed.IndexedTableAdmin;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.filter.ColumnValueFilter;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.filter.ColumnValueFilter.CompareOp;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.io.BatchUpdate;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.io.RowResult;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.hbase.util.Bytes;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;public class SecondaryIndexTest {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void writeToTable() throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTable table = new IndexedTable(conf, Bytes.toBytes(&amp;quot;test_table&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String row = &amp;quot;test_row&amp;quot;;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BatchUpdate update = null;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 100; i++) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; update = new BatchUpdate(row + i);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; update.put(&amp;quot;columnfamily1:column1&amp;quot;, Bytes.toBytes(&amp;quot;value1-&amp;quot; + i));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; update.put(&amp;quot;columnfamily1:column2&amp;quot;, Bytes.toBytes(&amp;quot;value2-&amp;quot; + i));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.commit(update);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void readAllRowsFromSecondaryIndex() throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTable table = new IndexedTable(conf, Bytes.toBytes(&amp;quot;test_table&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scanner scanner = table.getIndexedScanner(&amp;quot;column1&amp;quot;,&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HConstants.EMPTY_START_ROW, null, null, new byte[][] {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;),&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;) });&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (RowResult rowResult : scanner) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(Bytes.toString(&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowResult.get(Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;)).getValue())&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &amp;quot;, &amp;quot; + Bytes.toString(rowResult.get(&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)).getValue()&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void readFilteredRowsFromSecondaryIndex() throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTable table = new IndexedTable(conf, Bytes.toBytes(&amp;quot;test_table&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ColumnValueFilter filter = &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;new ColumnValueFilter(Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;), &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompareOp.LESS, Bytes.toBytes(&amp;quot;value1-40&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scanner scanner = table.getIndexedScanner(&amp;quot;column1&amp;quot;, &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HConstants.EMPTY_START_ROW, null, filter, &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new byte[][] { Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;),&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (RowResult rowResult : scanner) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(Bytes.toString(&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowResult.get(Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;)).getValue())&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &amp;quot;, &amp;quot; + Bytes.toString(rowResult.get(&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)).getValue()&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void createTableWithSecondaryIndexes() throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTableDescriptor desc = new HTableDescriptor(&amp;quot;test_table&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addFamily(new HColumnDescriptor(&amp;quot;columnfamily1:column1&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addFamily(new HColumnDescriptor(&amp;quot;columnfamily1:column2&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addIndex(new IndexSpecification(&amp;quot;column1&amp;quot;,&lt;/font&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Bytes.toBytes(&amp;quot;columnfamily1:column1&amp;quot;)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc.addIndex(new IndexSpecification(&amp;quot;column2&amp;quot;,&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTableAdmin admin = null;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin = new IndexedTableAdmin(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (admin.tableExists(Bytes.toBytes(&amp;quot;test_table&amp;quot;))) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (admin.isTableEnabled(&amp;quot;test_table&amp;quot;)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.disableTable(Bytes.toBytes(&amp;quot;test_table&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.deleteTable(Bytes.toBytes(&amp;quot;test_table&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (admin.tableExists(Bytes.toBytes(&amp;quot;test_table-column1&amp;quot;))) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (admin.isTableEnabled(&amp;quot;test_table-column1&amp;quot;)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.disableTable(Bytes.toBytes(&amp;quot;test_table-column1&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.deleteTable(Bytes.toBytes(&amp;quot;test_table-column1&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.createTable(desc);&lt;br style="font-family:Courier New"&gt;&lt;/font&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void addSecondaryIndexToExistingTable() throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTableAdmin admin = null;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin = new IndexedTableAdmin(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.addIndex(Bytes.toBytes(&amp;quot;test_table&amp;quot;), &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new IndexSpecification(&amp;quot;column2&amp;quot;, &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Bytes.toBytes(&amp;quot;columnfamily1:column2&amp;quot;)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void removeSecondaryIndexToExistingTable() throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path(&amp;quot;/opt/hbase-0.19.3/conf/hbase-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IndexedTableAdmin admin = null;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin = new IndexedTableAdmin(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin.removeIndex(Bytes.toBytes(&amp;quot;test_table&amp;quot;), &amp;quot;column2&amp;quot;);&lt;br style="font-family:Courier New"&gt;&lt;/font&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SecondaryIndexTest test = new SecondaryIndexTest();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test.createTableWithSecondaryIndexes();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test.writeToTable();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test.addSecondaryIndexToExistingTable();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test.removeSecondaryIndexToExistingTable();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test.readAllRowsFromSecondaryIndex();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test.readFilteredRowsFromSecondaryIndex();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;Done!&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;}&lt;/font&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-9166382201628785673?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/9166382201628785673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=9166382201628785673' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/9166382201628785673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/9166382201628785673'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/secondary-indexes-in-hbase.html' title='Secondary indexes in HBase'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-4110211767992046940</id><published>2009-06-18T15:25:00.001+05:30</published><updated>2009-07-10T13:45:35.750+05:30</updated><title type='text'>Using HBase in Java (0.19.3)</title><content type='html'>&lt;font size="3"&gt;&lt;b&gt;Using&lt;/b&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;b&gt; HBase in java&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;Create a HBaseConfiguration object to connect to a HBase server. You need to tell configuration object that where to read the HBase configuration from. to do this add a resource to the HBaseConfiguration object.&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path("/opt/hbase-0.19.3/conf/hbase-site.xml"));&lt;/span&gt;&lt;br&gt;&lt;br&gt;Create a HTable object to a table in HBase. HTable object connects you to a table in HBase.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTable table = new HTable(conf, "test_table");&lt;/span&gt;&lt;br&gt;&lt;br&gt;Create a BatchUpdate object on a row to perform update operations (like put and delete)&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BatchUpdate batchUpdate = new BatchUpdate("test_row1");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; batchUpdate.put("columnfamily:column1", Bytes.toBytes("some value"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; batchUpdate.delete("column1");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br&gt;Commit the changes to table using HTable#commit() method.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.commit(batchUpdate);&lt;/span&gt;&lt;br&gt;&lt;br&gt;To read one column value from a row use HTable#get() method.&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Cell cell = table.get("test_row1", "columnfamily1:column1");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cell != null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String valueStr = Bytes.toString(cell.getValue());&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("test_row1:columnfamily1:column1 " + valueStr);&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;To read one row with given columns, use HTable#getRow() method.&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowResult singleRow = table.getRow(Bytes.toBytes("test_row1"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cell cell = singleRow.get(Bytes.toBytes("columnfamily1:column1"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cell!=null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(Bytes.toString(cell.getValue()));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cell = singleRow.get(Bytes.toBytes("columnfamily1:column2"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cell!=null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(Bytes.toString(cell.getValue()));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br&gt;To get multiple rows use Scanner and iterate throw to get values.&lt;span style="font-family: Courier New;"&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Scanner scanner = table.getScanner(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new String[] { "columnfamily1:column1" });&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//First aproach to iterate the scanner.&lt;/span&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowResult rowResult = scanner.next();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (rowResult != null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Found row: " + Bytes.toString(rowResult.getRow())&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " with value: " + &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rowResult.get(Bytes.toBytes("columnfamily1:column1")));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowResult = scanner.next();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The other approach is to use a foreach loop. Scanners are iterable!&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (RowResult result : scanner) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Found row: " + Bytes.toString(result.getRow())&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " with value: " + &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;result.get(Bytes.toBytes("columnfamily1:column1")));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scanner.close();&lt;/span&gt;&lt;br&gt;&lt;br&gt;Example Code:&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import java.io.IOException;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.fs.Path;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.hbase.HBaseConfiguration;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.hbase.client.HTable;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.hbase.client.Scanner;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.hbase.io.BatchUpdate;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.hbase.io.Cell;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.hbase.io.RowResult;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;import org.apache.hadoop.hbase.util.Bytes;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;public class HBaseExample {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String args[]) throws IOException {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBaseConfiguration conf = new HBaseConfiguration();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conf.addResource(new Path("/opt/hbase-0.19.3/conf/hbase-site.xml"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTable table = new HTable(conf, "test_table");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BatchUpdate batchUpdate = new BatchUpdate("test_row1");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; batchUpdate.put("columnfamily1:column1", Bytes.toBytes("some value"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; batchUpdate.delete("column1");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.commit(batchUpdate);&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cell cell = table.get("test_row1", "columnfamily1:column1");&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cell != null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String valueStr = Bytes.toString(cell.getValue());&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("test_row1:columnfamily1:column1 " + valueStr);&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowResult singleRow = table.getRow(Bytes.toBytes("test_row1"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cell cell = singleRow.get(Bytes.toBytes("columnfamily1:column1"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cell!=null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(Bytes.toString(cell.getValue()));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cell = singleRow.get(Bytes.toBytes("columnfamily1:column2"));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cell!=null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(Bytes.toString(cell.getValue()));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scanner scanner = table.getScanner(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;new String[] { "columnfamily1:column1" });&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //First approach to iterate a scanner&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowResult rowResult = scanner.next();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (rowResult != null) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Found row: " + Bytes.toString(rowResult.getRow())&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " with value: " + &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;rowResult.get(Bytes.toBytes("columnfamily1:column1")));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowResult = scanner.next();&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The other approach is to use a foreach loop. Scanners are iterable!&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (RowResult result : scanner) {&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // print out the row we found and the columns we were looking for&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Found row: " + Bytes.toString(result.getRow())&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " with value: " + &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;result.get(Bytes.toBytes("columnfamily1:column1")));&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scanner.close();&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.close();&lt;br style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;}&lt;/span&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-4110211767992046940?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/4110211767992046940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=4110211767992046940' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/4110211767992046940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/4110211767992046940'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/using-hbase-in-java-0193.html' title='Using HBase in Java (0.19.3)'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-880111544997913472</id><published>2009-06-18T11:04:00.001+05:30</published><updated>2010-02-18T21:32:34.962+05:30</updated><title type='text'>Using HDFS in java (0.20.0)</title><content type='html'>&lt;font size="3"&gt;&lt;b&gt;Below is a code sample of how to read from and write to HDFS in java.&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;1. Creating a configuration object:&lt;/b&gt; To be able to read from or write to HDFS, you need to create a Configuration object and pass configuration parameter to it using hadoop configuration files. &lt;br&gt;&amp;nbsp;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Conf object will read the HDFS configuration parameters from these&lt;/font&gt;&lt;font face="courier new"&gt; XML&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // files. You may specify the parameters for your own if you want.&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuration conf = new Configuration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;conf.addResource(new Path(&amp;quot;/opt/hadoop-0.20.0/conf/core-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;conf.addResource(new Path(&amp;quot;/opt/hadoop-0.20.0/conf/hdfs-site.xml&amp;quot;));&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;If you do not assign the configurations to conf object (using hadoop xml file) your HDFS operation will be performed on the local file system and not on the HDFS.&lt;br&gt;&lt;b&gt;&lt;br&gt;2. Adding file to HDFS:&lt;/b&gt; Create a FileSystem object and use a file stream to add a file.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileSystem fileSystem = FileSystem.get(conf);&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check if the file already exists&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Path path = new Path(&amp;quot;/path/to/file.ext&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;File &amp;quot; + dest + &amp;quot; already exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font face="courier new"&gt;// Create a new file and write data to it.&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSDataOutputStream out = fileSystem.create(path);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream in = new BufferedInputStream(new FileInputStream(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new File(source)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] b = new byte[1024];&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int numBytes = 0;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((numBytes = in.read(b)) &amp;gt; 0) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.write(b, 0, numBytes);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Close all the file descripters&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; in.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileSystem.close();&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt;3. Reading file from HDFS:&lt;/b&gt; Create a file stream object to a file in HDFS and read it.&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; F&lt;font face="courier new"&gt;ileSystem fileSystem = FileSystem.get(conf);&lt;br&gt;&lt;br&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Path path = new Path(&amp;quot;/path/to/file.ext&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;File does not exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FSDataInputStream in = fileSystem.open(path);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String filename = file.substring(file.lastIndexOf(&amp;#39;/&amp;#39;) + 1,&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file.length());&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutputStream out = new BufferedOutputStream(new FileOutputStream(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new File(filename)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] b = new byte[1024];&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int numBytes = 0;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((numBytes = in.read(b)) &amp;gt; 0) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.write(b, 0, numBytes);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; in.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileSystem.close();&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;3. Deleting file from HDFS:&lt;/b&gt; Create a file stream object to a file in HDFS and delete it.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileSystem fileSystem = FileSystem.get(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Path path = new Path(&amp;quot;/path/to/file.ext&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (!fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;File does not exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;/font&gt;&lt;font face="courier new"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Delete file&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.delete(new Path(file), true);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier &lt;br /&gt;new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.close();&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;3. Create dir in HDFS:&lt;/b&gt; Create a file stream object to a file in HDFS and read it.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileSystem fileSystem = FileSystem.get(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Path path = new Path(dir);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Dir &amp;quot; + dir + &amp;quot; already not exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Create directories&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.mkdirs(path);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.close();&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Code:&lt;/b&gt;&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.BufferedInputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.BufferedOutputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.File;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.FileInputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.FileOutputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.IOException;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.InputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import java.io.OutputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.conf.Configuration;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.fs.FSDataInputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.fs.FSDataOutputStream;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.fs.FileSystem;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;import org.apache.hadoop.fs.Path;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;public class HDFSClient {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public HDFSClient() {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void addFile(String source, String dest) throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Configuration conf = new Configuration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Conf object will read the HDFS configuration parameters from these&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// XML files.&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;conf.addResource(new Path(&amp;quot;/opt/hadoop-0.20.0/conf/core-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;conf.addResource(new Path(&amp;quot;/opt/hadoop-0.20.0/conf/hdfs-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileSystem fileSystem = FileSystem.get(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get the filename out of the file path&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;String filename = source.substring(source.lastIndexOf(&amp;#39;/&amp;#39;) + 1,&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;source.length());&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Create the destination path including the filename.&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (dest.charAt(dest.length() - 1) != &amp;#39;/&amp;#39;) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dest = dest + &amp;quot;/&amp;quot; + filename;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dest = dest + filename;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// System.out.println(&amp;quot;Adding file to &amp;quot; + destination);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check if the file already exists&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Path path = new Path(dest);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;File &amp;quot; + dest + &amp;quot; already exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Create a new file and write data to it.&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FSDataOutputStream out = fileSystem.create(path);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;InputStream in = new BufferedInputStream(new FileInputStream(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;new File(source)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;byte[] b = new byte[1024];&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int numBytes = 0;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while ((numBytes = in.read(b)) &amp;gt; 0) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;out.write(b, 0, numBytes);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Close all the file descripters&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;in.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;out.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void readFile(String file) throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Configuration conf = new Configuration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;conf.addResource(new Path(&amp;quot;/opt/hadoop-0.20.0/conf/core-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileSystem fileSystem = FileSystem.get(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Path path = new Path(file);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (!fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;File &amp;quot; + file + &amp;quot; does not exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FSDataInputStream in = fileSystem.open(path);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;String filename = file.substring(file.lastIndexOf(&amp;#39;/&amp;#39;) + 1,&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;file.length());&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;OutputStream out = new BufferedOutputStream(new FileOutputStream(&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;new File(filename)));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;byte[] b = new byte[1024];&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int numBytes = 0;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while ((numBytes = in.read(b)) &amp;gt; 0) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;out.write(b, 0, numBytes);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;in.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;out.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void deleteFile(String file) throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Configuration conf = new Configuration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;conf.addResource(new Path(&amp;quot;/opt/hadoop-0.20.0/conf/core-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileSystem fileSystem = FileSystem.get(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Path path = new Path(file);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (!fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;File &amp;quot; + file + &amp;quot; does not exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.delete(new Path(file), true);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void mkdir(String dir) throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Configuration conf = new Configuration();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;conf.addResource(new Path(&amp;quot;/opt/hadoop-0.20.0/conf/core-site.xml&amp;quot;));&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FileSystem fileSystem = FileSystem.get(conf);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Path path = new Path(dir);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (fileSystem.exists(path)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Dir &amp;quot; + dir + &amp;quot; already not exists&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.mkdirs(path);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fileSystem.close();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public static void main(String[] args) throws IOException {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (args.length &amp;lt; 1) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Usage: hdfsclient add/read/delete/mkdir&amp;quot; +&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot; [&amp;lt;local_path&amp;gt; &amp;lt;hdfs_path&amp;gt;]&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.exit(1);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;HDFSClient client = new HDFSClient();&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (args[0].equals(&amp;quot;add&amp;quot;)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (args.length &amp;lt; 3) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Usage: hdfsclient add &amp;lt;local_path&amp;gt; &amp;quot; + &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;lt;hdfs_path&amp;gt;&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.exit(1);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;client.addFile(args[1], args[2]);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else if (args[0].equals(&amp;quot;read&amp;quot;)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (args.length &amp;lt; 2) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Usage: hdfsclient read &amp;lt;hdfs_path&amp;gt;&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.exit(1);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;client.readFile(args[1]);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else if (args[0].equals(&amp;quot;delete&amp;quot;)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (args.length &amp;lt; 2) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Usage: hdfsclient delete &amp;lt;hdfs_path&amp;gt;&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.exit(1);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;client.deleteFile(args[1]);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} &lt;/font&gt;&lt;font face="courier new"&gt;else if (args[0].equals(&amp;quot;mkdir&amp;quot;)) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (args.length &amp;lt; 2) {&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Usage: hdfsclient mkdir &amp;lt;hdfs_path&amp;gt;&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.exit(1);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;client.mkdir(args[1]);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else {&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font face="courier new"&gt;System.out.println(&amp;quot;Usage: hdfsclient add/read/delete/mkdir&amp;quot; +&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;quot; [&amp;lt;local_path&amp;gt; &amp;lt;hdfs_path&amp;gt;]&amp;quot;);&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.exit(1);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&amp;quot;Done!&amp;quot;);&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;}&lt;/font&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-880111544997913472?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/880111544997913472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=880111544997913472' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/880111544997913472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/880111544997913472'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/using-hdfs-in-java-0200.html' title='Using HDFS in java (0.20.0)'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-4319577279814061724</id><published>2009-06-17T22:00:00.001+05:30</published><updated>2011-01-12T08:18:39.520+05:30</updated><title type='text'>HBase setup (0.19.3)</title><content type='html'>&lt;b&gt;&lt;font size="3"&gt;Before you begin:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Before you start configure HBase, you need to have a running Hadoop cluster, which will be the storage for hbase. Please refere to &lt;a href="http://rajeev1982.blogspot.com/2009/06/hadoop-cluster-setup-0191_17.html" id="c5tp" target="_blank" title="Learn how to setup a Hadoop 0.19.1 cluster"&gt;Hadoop cluster setup&lt;/a&gt; document before continuing.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;On the HBaseMaster (master) machine:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;1. In file /etc/hosts, define the ip address of the namenode machine and all the datanode machines. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1) for all the machines including the namenode, otherwise the datanodes will not be able to connect to namenode machine).&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-masterserver&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.8&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver1&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.7&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver2&lt;/font&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.6 &amp;nbsp;&amp;nbsp; hadoop-nameserver&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Check to see if the namenode machine ip is being resolved to actual ip not localhost ip using &amp;quot;ping hbase-namenode&amp;quot;.&lt;br&gt;&lt;br&gt;2. Configure password less login from masterserver to all regionserver machines. Refer to &lt;a href="http://blog.rajeevsharma.in/2011/01/configuring-passwordless-ssh-access.html" id="hu_q" title="Learn how to configure passwordless ssh access"&gt;Configuring passwordless ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hbase-0.19.3.tar.gz from &lt;a href="http://hadoop.apache.org/hbase" id="scyc" target="_blank" title="Download HBase"&gt;HBase website&lt;/a&gt; to some path in your computer (We&amp;#39;ll call the hbase installation root as $HBASE_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HBASE_INSTALL_DIR/conf/hbase-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/user/lib/jvm/java-6-sun&lt;/font&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HBASE_INSTALL_DIR/conf/hbase-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;configuration.xsl&amp;quot;?&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.master&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hbase-masterserver:60000&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;The host and port that the HBase master runs at.&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A value of &amp;#39;local&amp;#39; runs the master and a regionserver in&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a single process.&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.rootdir&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://hadoop-nameserver:9000/hbase&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;The directory shared by region servers.&amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.regionserver.class&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;org.apache.hadoop.hbase.ipc.IndexedRegionInterface&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This configuration is required to enable indexing on &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase and to be able to create secondary indexes&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.regionserver.impl&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This configuration is required to enable indexing on &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase and to be able to create secondary indexes&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Remeber to replace masterserver and regionserver machine names with real machine names here.&lt;br&gt;&lt;br&gt;6. Edit $HBASE_INSTALL_DIR/conf/regionservers and add the namenode machine&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver1&lt;/font&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-regionserver2&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase-masterserver&lt;/font&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Add masterserver machine name only if you are running a regionserver on masterserver machine.&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;&lt;br&gt;On HRegionServer (slave) machine:&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;1. In file /etc/hosts, define the ip address of the namenode machine. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1).&lt;br&gt;&lt;br&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; bhase-masterserver&lt;/font&gt;&lt;br&gt;&lt;br&gt;Note: Check to see if the masterserver machine ip is being resolved to actual ip not localhost ip using &amp;quot;ping hbase-masterserver&amp;quot;.&lt;br&gt;&lt;br&gt;2. Configure password less login from all regionserver machines to masterserver machines. Refer to &lt;a href="http://blog.rajeevsharma.in/2011/01/configuring-passwordless-ssh-access.html" id="z326" title="Learn how to configure passwordless ssh access"&gt;Configuring passwordless ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hbase-0.19.3.tar.gz from &lt;a href="http://hadoop.apache.org/hbase" id="s4n4" target="_blank" title="Download HBase"&gt;HBase website&lt;/a&gt; to some path in your computer (We&amp;#39;ll call the hadoop installation root as $HBASE_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HBASE_INSTALL_DIR/conf/hadoop-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/user/lib/jvm/java-6-sun&lt;/font&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HBASE_INSTALL_DIR/conf/hbase-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;configuration.xsl&amp;quot;?&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font face="courier new"&gt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.rootdir&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://rajeevks-lx:9000/hbase&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;The directory shared by region servers.&amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.regionserver.class&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;org.apache.hadoop.hbase.ipc.IndexedRegionInterface&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This configuration is required to enable indexing on &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase and to be able to create secondary indexes&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hbase.regionserver.impl&amp;lt;/name&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/value&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This configuration is required to enable indexing on &lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbase and to be able to create secondary indexes.&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;font size="3"&gt;&lt;b&gt;Start and Stop hbase daemons:&lt;br&gt;&lt;/b&gt;&lt;/font&gt;&lt;br&gt;You need to start/stop the daemons only on the masterserver machine, it will start/stop the daemons in all regionserver machines. Execute the following command to start/stop the hbase.&lt;br&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HBASE_INSTALL_DIR/bin/start-hbase.sh&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;/font&gt;&lt;br style="font-family:Courier New"&gt;&lt;font face="courier new"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HBASE_INSTALL_DIR/bin/stop-hbase.sh&lt;/font&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-4319577279814061724?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/4319577279814061724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=4319577279814061724' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/4319577279814061724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/4319577279814061724'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/hbase-setup-0193.html' title='HBase setup (0.19.3)'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-7849318835649192094</id><published>2009-06-17T20:38:00.001+05:30</published><updated>2009-12-09T14:57:44.236+05:30</updated><title type='text'>Hadoop cluster setup (0.20.0)</title><content type='html'>&lt;font size="3"&gt;&lt;b&gt;On the NameNode (master) machine:&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;/font&gt;1. In file /etc/hosts, define the ip address of the namenode machine and all the datanode machines. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1) for all the machines including the namenode, otherwise the datanodes will not be able to connect to namenode machine).&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-namenode&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.8&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.7&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode2&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Check to see if the namenode machine ip is being resolved to actual ip not localhost ip using "ping hadoop-namenode".&lt;br&gt;&lt;br&gt;2. Configure password less login from namenode to all datanode machines. Refer to &lt;a title="Learn how to configure passwordless ssh access" target="_blank" href="http://rajeev1982.blogspot.com/2009/06/configuring-passwordless-ssh-access_17.html" id="li:s"&gt;Configure passwordless ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hadoop-0.20.0.tar.gz from &lt;a title="Download Hadoop" target="_blank" href="http://hadoop.apache.org/core" id="am_3"&gt;Hadoop website&lt;/a&gt; to some path in your computer (We'll call the hadoop installation root as $HADOOP_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HADOOP_INSTALL_DIR/conf/hadoop-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/usr/lib/jvm/java-6-sun&lt;/span&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HADOOP_INSTALL_DIR/conf/core-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;fs.default.name&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://hadoop-namenode:54310&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;The name of the default file system.&amp;nbsp; A URI whose &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scheme and authority determine the FileSystem implementation. The &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uri's scheme determines the config property (fs.SCHEME.impl) naming &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the fleSystem implementation class.&amp;nbsp; The uri's authority is used to&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; determine the host, port, etc. for a filesystem.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hadoop.tmp.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs/tmp&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;A base for other temporary directories.&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Remeber to replace namenode and datanode machine names with real machine names here&lt;br&gt;&lt;br&gt;6. Edit the file $HADOOP_INSTALL_DIR/conf/hdfs-site.xml and add the following properties. (This file defines the properties of the namenode and datanode).&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.name.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs/name&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Determines where on the local filesystem an DFS name &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node should store its blocks.&amp;nbsp; If this is a comma-delimited list of&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directories, then data will be stored in all named directories,&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; typically on different devices. Directories that do not exist are &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ignored.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.data.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs/data&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Determines where on the local filesystem an DFS data&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node should store its blocks.&amp;nbsp; If this is a comma-delimited list of&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directories, then data will be stored in all named directories, &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; typically on different devices. Directories that do not exist are &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ignored.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.replication&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;1&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Default block replication.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The actual number of replications can be specified when the file is&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; created. The default is used if replication is not specified in &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create time.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.datanode.du.reserved&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;53687090000&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the reserved space for non dfs use&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Remeber to replace namenode and datanode machine names with real machine names here&lt;br&gt;&lt;br&gt;7. Edit $HADOOP_INSTALL_DIR/conf/mapred.xml and add the following configuration. (This file defines the configuration for the maper and reduser)&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. If you only need to use HDFS, leave this file empty.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. Remeber to replace namenode and datanode machine names with real machine names here.&lt;br&gt;&lt;br&gt;8. Edit $HADOOP_INSTALL_DIR/conf/masters and add the machine names where a secondary namenodes will run.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-secondarynamenode1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-secondarynamenode2&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: If you want to secondary name to to run on the same machine as the primary namenode, enter the machine name of primary namenode machine.&lt;br&gt;&lt;br&gt;9. Edit $HADOOP_INSTALL_DIR/conf/slaves and add all the datanodes machine names. If you are running a datanode on the namenode machine do remember to add that also.&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-namenode&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode2&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Add namenode machine name only if you are running a datanode on namenode machine.&lt;br&gt;&lt;br&gt;&lt;font size="3"&gt;&lt;b&gt;On DataNode (slave) machine:&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;/font&gt;1. In file /etc/hosts, define the ip address of the namenode machine. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1).&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-namenode&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Check to see if the namenode machine ip is being resolved to actual ip not localhost ip using "ping hadoop-namenode".&lt;br&gt;&lt;br&gt;2. Configure password less login from all datanode machines to namenode machines. Refer to &lt;a title="Learn how to configure passwordless ssh access" target="_blank" href="http://rajeev1982.blogspot.com/2009/06/configuring-passwordless-ssh-access_17.html" id="g7t3"&gt;Configureing password less ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hadoop-0.20.0.tar.gz from &lt;a title="Download Hadoop" target="_blank" href="http://hadoop.apache.org/core" id="ld5-"&gt;Hadoop website&lt;/a&gt; to some path in your computer (We'll call the hadoop installation root as $HADOOP_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HADOOP_INSTALL_DIR/conf/hadoop-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/usr/lib/jvm/java-6-sun&lt;/span&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HADOOP_INSTALL_DIR/conf/core-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;fs.default.name&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://hadoop-namenode:54310&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;The name of the default file system.&amp;nbsp; A URI whose scheme &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and authority determine the FileSystem implementation. The uri's scheme &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; determines the config property (fs.SCHEME.impl) naming the FileSystem&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; implementation class.&amp;nbsp; The uri's authority is used to determine the &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; host, port, etc. for a filesystem.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;hadoop.tmp.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs/tmp&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;A base for other temporary directories.&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;6. Edit the file $HADOOP_INSTALL_DIR/conf/hdfs-site.xml and add the following properties. (This file defines the properties of the namenode and datanode).&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.name.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs/name&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Determines where on the local filesystem an DFS name&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;node&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt; should store its blocks.&amp;nbsp; If this is a comma-delimited&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list of directories, then data will be stored in all named&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directories, typically on different devices.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directories that do not exist are ignored.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.data.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs/data&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Determines where on the local filesystem an DFS data&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;node&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt; should store its blocks.&amp;nbsp; If this is a comma-delimited&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list of directories, then data will be stored in all named&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directories, typically on different devices.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directories that do not exist are ignored.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.replication&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;1&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Default block replication.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The actual number of replications can be specified when the file is &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; created. The default is used if replication is not specified in&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;create &lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;time.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.datanode.du.reserved&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;53687090000&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the reserved space for non dfs use&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;7. Edit $HADOOP_INSTALL_DIR/conf/mapred.xml and add the following configuration. (This file defines the configuration for the maper and reduser)&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: If you only need to use HDFS, leave this file empty.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;Start and Stop hadoop daemons:&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/b&gt;1. Before you start the Hadoop daemons, you need to format the filesystem. Execute the following command to format the file system.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/hadoop namenode -format&lt;/span&gt;&lt;br&gt;&lt;br&gt;2. You need to start/stop the daemons only on the master machine, it will start/stop the daemons in all slave machines.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; To start/stop all the daemons execute the following command.&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/start-all.sh&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/stop-all.sh&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; To start only the dfs daemons execute the following command&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/start-dfs.sh&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/stop-dfs.sh&lt;/span&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-7849318835649192094?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/7849318835649192094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=7849318835649192094' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/7849318835649192094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/7849318835649192094'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/hadoop-cluster-setup-0200_2155.html' title='Hadoop cluster setup (0.20.0)'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-5910495828502185973</id><published>2009-06-17T20:33:00.001+05:30</published><updated>2009-06-18T11:18:50.918+05:30</updated><title type='text'>Hadoop cluster setup (0.19.1)</title><content type='html'>&lt;b&gt;&lt;font size="3"&gt;On the NameNode (master) machine:&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/b&gt;1. In file /etc/hosts, define the ip address of the namenode machine and all the datanode machines. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1) for all the machines including the namenode, otherwise the datanodes will not be able to connect to namenode machine).&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-namenode&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.8&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.7&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode2&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Check to see if the namenode machine ip is being resolved to actual ip not localhost ip using "ping hadoop-namenode".&lt;br&gt;&lt;br&gt;2. Configure password less login from namenode to all datanode machines. Refer to &lt;a title="Learn to configure passwordless ssh access" target="_blank" href="http://rajeev1982.blogspot.com/2009/06/configuring-passwordless-ssh-access_17.html" id="v8_:"&gt;Configure passwordless ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hadoop-0.20.0.tar.gz from &lt;a title="Download hadoop" target="_blank" href="http://hadoop.apache.org/core" id="kjvf"&gt;Hadoop website&lt;/a&gt; to some path in your computer (We'll call the hadoop installation root as $HADOOP_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HADOOP_INSTALL_DIR/conf/hadoop-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/user/lib/jvm/java-6-sun&lt;/span&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HADOOP_INSTALL_DIR/conf/hadoop-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;fs.default.name&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://rajeevks-lx:9000&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;description&amp;gt;This is the namenode uri&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.name.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs-0.19.0/name&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;fs.data.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs-0.19.0/data&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;mapred.system.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/system&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the path where mapred will store its data in&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;HDFS.&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;mapred.local.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs-0.19.0/mapred&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the path where mapred will store its temporary&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;data in local file system&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.replication&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;1&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Default block replication.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The actual number of replications can be specified when the file is&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;created.&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt; The default is used if replication is not specified in&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;create time.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.datanode.du.reserved&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;53687090000&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the reserved space for non dfs use&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Remeber to replace namenode and datanode machine names with real machine names here&lt;br&gt;&lt;br&gt;6. Edit $HADOOP_INSTALL_DIR/conf/masters and add the machine names where a secondary namenodes will run.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-secondarynamenode1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-secondarynamenode2&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: If you want to secondary name to to run on the same machine as the primary namenode, enter the machine name of primary namenode machine.&lt;br&gt;&lt;br&gt;7. Edit $HADOOP_INSTALL_DIR/conf/slaves and add all the datanodes machine names. &lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-namenode&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-datanode2&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: If you are running a datanode on the namenode machine, add that also.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;On DataNode (slave) machine:&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/b&gt;1. In file /etc/hosts, define the ip address of the namenode machine. Make sure you define the actual ip (eg. 192.168.1.9) and not the localhost ip (eg. 127.0.0.1).&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192.168.1.9&amp;nbsp;&amp;nbsp;&amp;nbsp; hadoop-namenode&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Check to see if the namenode machine ip is being resolved to actual ip not localhost ip using "ping hadoop-namenode".&lt;br&gt;&lt;br&gt;2. Configure password less login from all datanode machines to namenode machines. Refer to &lt;a title="Learn how to configure passwordless ssh access" target="_blank" href="http://rajeev1982.blogspot.com/2009/06/configuring-passwordless-ssh-access_17.html" id="yei8"&gt;Configuring password less ssh access&lt;/a&gt; for instructions on how to setup password less ssh access.&lt;br&gt;&lt;br&gt;3. Download and unpack hadoop-0.20.0.tar.gz from &lt;a title="Download hadoop" target="_blank" href="http://hadoop.apache.org/core" id="ly87"&gt;Hadoop website&lt;/a&gt; to some path in your computer (We'll call the hadoop installation root as $HADOOP_INSTALL_DIR now on).&lt;br&gt;&lt;br&gt;4. Edit the file $HADOOP_INSTALL_DIR/conf/hadoop-env.sh and define the $JAVA_HOME.&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; export JAVA_HOME=/user/lib/jvm/java-6-sun&lt;/span&gt;&lt;br&gt;&lt;br&gt;5. Edit the file $HADOOP_INSTALL_DIR/conf/core-site.xml and add the following properties. (These configurations are required on all the node in the cluster)&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml-stylesheet type="text/xsl" href="configuration.xsl"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;fs.default.name&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;hdfs://rajeevks-lx:9000&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the namenode uri&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.name.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs-0.19.0/name&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;fs.data.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs-0.19.0/data&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;mapred.system.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/system&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the path where mapred will store its data in&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;HDFS&lt;/span&gt;.&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;mapred.local.dir&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;/opt/hdfs-0.19.0/mapred&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the path where mapred will store its temporary &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data in local file system&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.replication&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;1&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Default block replication.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The actual number of replications can be specified when the file is &lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; created. The default is used if replication is not specified in&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;create&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt; time.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;dfs.datanode.du.reserved&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;53687090000&amp;lt;/value&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This is the reserved space for non dfs use&amp;lt;/description&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font size="3"&gt;Start and Stop hadoop daemons:&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/b&gt;1. Before you start the Hadoop daemons, you need to format the filesystem. Execute the following command to format the file system.&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/hadoop namenode -format&lt;/span&gt;&lt;br&gt;&lt;br&gt;2. You need to start/stop the daemons only on the master machine, it will start/stop the daemons in all slave machines.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; To start/stop all the daemons execute the following command.&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/start-all.sh&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/stop-all.sh&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; To start only the dfs daemons execute the following command&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/start-dfs.sh&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $HADOOP_INSTALL_DIR/bin/stop-dfs.sh&lt;/span&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-5910495828502185973?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/5910495828502185973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=5910495828502185973' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/5910495828502185973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/5910495828502185973'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/hadoop-cluster-setup-0191_17.html' title='Hadoop cluster setup (0.19.1)'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-7352655924152035821</id><published>2009-06-17T20:21:00.008+05:30</published><updated>2011-06-11T00:26:50.178+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba smb mount ubuntu linux'/><title type='text'>Mounting samba share in Ubuntu</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Mounting samba share in Ubuntu&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After my move to Ubuntu I was finding the built in network browser very slow. I decided to see if there was a way I could mount my SMB shares to the /media directory so they show up as a drive on the desktop. Better yet, I wanted to make it so they mount automatically on boot.&lt;br /&gt;&lt;br /&gt;Here are the steps:&lt;br /&gt;&lt;br /&gt;1. Execute the following command to install smbfs:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo apt-get install smbfs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Create a folder inside of the /media directory to mount the share on:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo mkdir /media/Storage&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. You can run the following command to mount a share manually:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo mount -t smbfs //fileserver/Storage /media/Storage -o uid=&amp;lt;user&amp;gt;,gid=users&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo mount -t smbfs //fileserver/Storage /media/Storage -o uid=&amp;lt;user&amp;gt;,gid=&amp;lt;group&amp;gt;,credentials=&amp;lt;path_to_credentials_file&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; or&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; sudo mount -t smbfs //fileserver/Storage /media/Storage -o user=&amp;lt;username&amp;gt;,password=&amp;lt;password&amp;gt;,uid=&amp;lt;user&amp;gt;,gid=&amp;lt;group&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Change &amp;lt;user&amp;gt; to your linux username. The uid=&amp;lt;user&amp;gt;,gid=users is important because if you don't use that, only root will have access to write files to the mounted share.&lt;br /&gt;&lt;br /&gt;4. You can edit the mount list in /etc/fstab to have the drive mount on boot. And add this line to the bottom of the fstab file, but change //fileserver/Storage to the path to your share on your server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo gedit /etc/fstab&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //fileserver/Storage /media/Storage smbfs credentials=/home/USER/.smbcredentials,uid=&amp;lt;user&amp;gt;,gid=users 0 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; In the above line change &amp;lt;user&amp;gt; to your user account in both spots. Before this will work you also have to create the .smbcredentials file in the above users home directory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo gedit ~/.smbcredentials&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. Add the following information to the file, but change Guest to your SMB username and add your SMB password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; username=Guest&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; password=Guest&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: My fileserver allows Guest access to the shares, so I just use the username Guest with no password. If your server requires a username and password put it in here.&lt;br /&gt;&lt;br /&gt;6. To test if the auto mount works just run the following command&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo mount -a&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You should see a new mount show up on your desktop for the drive.&lt;br /&gt;&lt;br /&gt;7. If you are worried about people who dont have root access being able to read login and password from the .smbcredentials file you can give only root and admin group access by typing&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo chmod o= ~/.smbcredentials&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. Do not try and mount a folder on a share, it wont work. The source for an SMB mount has to be a share.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. Do not put a trailing “/” on the share path or the directory path, it will cause it to fail.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;SMB Shares with spaces in the names:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you have an SMB share with a space in the path you can replace the space with \040. For example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //fileserver/Storage\040Share /media/Storage\040Share smbfs credentials=/home/USER/.smbcredentials,uid=USER,gid=users 0 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note: Change USER to your linux username. This will mount the share “//fileserver/Storage Share” to the directory “/media/Storage Share” and give USER r/w access to it. If you are using the mount command you dont have to do this, you can just put the source share and the destination directory into quotes like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo mount -t smbfs "//fileserver/Storage Share" "/media/Storage Share" -o uid=USER,gid=users&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //192.168.11.53/documents /mnt/pavan smbfs credentials=/home/pavan/.smbcredentials,uid=pavan,gid=users 0 0&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-7352655924152035821?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/7352655924152035821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=7352655924152035821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/7352655924152035821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/7352655924152035821'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/mounting-smb-share-in-ubuntu.html' title='Mounting samba share in Ubuntu'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23646064.post-5836906902858318654</id><published>2009-06-17T20:03:00.001+05:30</published><updated>2009-06-17T20:03:09.279+05:30</updated><title type='text'>Using reliance datacard in Ubuntu</title><content type='html'>1. Edit the file /etc/wvdial.conf and paste the following code.&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Modem0]&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Modem = /dev/ttyUSB0&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Baud = 115200&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetVolume = 0&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dial Command = ATDT&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Init1 = ATZ&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Init2 = AT+CRM=1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FlowControl = Hardware (CRTSCTS)&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Dialer RIL]&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Phone = #777&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Username = 9322305547&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Password = 9322305547&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stupid Mode = 1&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Inherits = Modem0&lt;/span&gt;&lt;br&gt;&lt;br&gt;2. Create a file /home/&amp;lt;username&amp;gt;/.ril and put the following code in the file&lt;br&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; modprobe usbserial vendor=0x12d1 product=0x1001&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wvdial RIL&lt;/span&gt;&lt;br&gt;&lt;br&gt;3. Change the file permission for .ril&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chmod 777 .ril&lt;/span&gt;&lt;br&gt;&lt;br&gt;4. Execute the command ./.ril from the home directory.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23646064-5836906902858318654?l=blog.rajeevsharma.in' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.rajeevsharma.in/feeds/5836906902858318654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23646064&amp;postID=5836906902858318654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/5836906902858318654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23646064/posts/default/5836906902858318654'/><link rel='alternate' type='text/html' href='http://blog.rajeevsharma.in/2009/06/using-reliance-datacard-in-ubuntu_17.html' title='Using reliance datacard in Ubuntu'/><author><name>Rajeev</name><uri>http://www.blogger.com/profile/06232456057295603250</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://2.bp.blogspot.com/_CZLEGIt0PPg/SlXItsI4UkI/AAAAAAAAHmc/ddQu-qGqrcM/S220/Adobe+Photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
