Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Hosts Details:
NOTE: This step should be followed in all the masters (Active NN, Stand by NN, RM, etc)
rm -rf ~/.ssh/id_rsa*
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ls -ltr ~/.ssh
for i in 192.168.56.{181,182,183,184,185,186}; do sshpass -p welcome1 ssh-copy-id $i; done
sudo vi /etc/clustershell/groups.d/local.cfg
clush -w 192.168.56.181 -b "echo 'server 127.127.1.0' | sudo tee -a /etc/ntp.conf > /dev/null 2>&1"
clush -w 192.168.56.181 -b "echo 'fudge 127.127.1.0 stratum 10' | sudo tee -a /etc/ntp.conf > /dev/null
2>&1"
http://mirror.fibergrid.in/apache/hadoop/common/
sudo vi /etc/profile
export JAVA_HOME=/usr/java/default
export ZOOKEEPER_HOME=/usr/local/zookeeper
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_HOME_WARN_SUPPRESS=1
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_ROOT_LOGGER="WARN,DRFA"
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export YARN_HOME=$HADOOP_HOME
export YARN_HOME_WARN_SUPPRESS=1
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME_WARN_SUPPRESS=1
export HADOOP_COMMON_HOME=$HADOOP_HOME
PATH=$PATH:$HOME/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZOOKEEPER_HOME}/bin:${J
AVA_HOME}/bin
export PATH
sudo vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh
sudo vi /usr/local/hadoop/etc/hadoop/yarn-env.sh
sudo vi /usr/local/hadoop/etc/hadoop/core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>h3n1.hadoop.com:2181,h3n2.hadoop.com:2181,h3n3.hadoop.com:2181</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://h3n1.hadoop.com:8485;h3n2.hadoop.com:8485;h3n3.hadoop.com:8485/mycluster</v
alue>
</property>
<property>
<name>topology.script.file.name</name>
<value>/usr/local/hadoop/etc/hadoop/topology.sh</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>360</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>2</value>
</property>
sudo vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>h3n1,h3n2,h3n3, h3n4</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.h3n1</name>
<value>h3n1.hadoop.com:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.h3n2</name>
<value>h3n2.hadoop.com:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.h3n3</name>
<value>h3n3.hadoop.com:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.h3n4</name>
<value>h3n4.hadoop.com:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.h3n1</name>
<value>h3n1.hadoop.com:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.h3n2</name>
<value>h3n2.hadoop.com:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.h3n3</name>
<value>h3n3.hadoop.com:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.h3n4</name>
<value>h3n4.hadoop.com:9870</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/mnt/disk1/name </value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/mnt/disk1/data,file:/mnt/disk2/data,file:/mnt/disk3/data</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/mnt/disk1/jnedits</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hdpuser/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence
shell(/bin/true)
</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/mnt/disk1/snn</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>/mnt/disk1/snn</value>
</property>
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
</property>
<property>
<name>dfs.ha.log-roll.period</name>
<value>600</value>
</property>
<property>
<name>dfs.acl.enable</name>
<value>true</value>
</property>
sudo vi /usr/local/hadoop/etc/hadoop/slaves
192.168.56.183
192.168.56.184
192.168.56.185
8. Create Log directories to store logs and copy updated xmls to other machines.
9. Setting up zookeeper.
clush -g zk -b "date"
Comment dataDir property and add below at the end of the file:
dataDir=/mnt/disk1/zkdata
server.1=h3n1.hadoop.com:2888:3888
server.2=h3n2.hadoop.com:2888:3888
server.3=h3n3.hadoop.com:2888:3888
h3n1 - 1
h3n2 - 2
h3n3 - 3
sudo vi /usr/local/hadoop/etc/hadoop/topology.sh
#==================================
while [ $# -gt 0 ] ; do
nodeArg=$1
exec< /usr/local/hadoop/etc/hadoop/topology.data
result=""
sudo vi /usr/local/hadoop/etc/hadoop/topology.data
192.168.56.181 /rack1
192.168.56.182 /rack2
192.168.56.183 /rack1
192.168.56.184 /rack2
192.168.56.185 /rack2
In Active NN:
Start DataNodes
To save namespace
seen_txid: This contains the last transaction ID of the last checkpoint (merge of edits into a fsimage) or edit log roll
(finalization of current edits_inprogress and creation of a new one). The file is not updated on every transaction,
only on a checkpoint or an edit log roll.
last-promised-epoch: When NN becomes active, it increments the last-promised-epoch. While writing edits to Edit
log, NN will send this epoch to JN to confirm the latest Active NN. Edits from previous Active will be discorded.
last-writer-epoch: This contains the epoch number associated with the NN who last actually wrote a transaction.
clush -g rm -b "date"
In H3N1,
sudo vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>mycluster</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>h3n1,h3n2,h3n3</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.h3n1</name>
<value>h3n1.hadoop.com</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.h3n2</name>
<value>h3n2.hadoop.com</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.h3n3</name>
<value>h3n3.hadoop.com</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.h3n1</name>
<value>h3n1.hadoop.com:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.h3n2</name>
<value>h3n2.hadoop.com:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.h3n3</name>
<value>h3n3.hadoop.com:8088</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>h3n1.hadoop.com:2181,h3n2.hadoop.com:2181,h3n3.hadoop.com:2181</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.client.failover-proxy-provider</name>
<value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/apps/yarn/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>1296000</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASS
PATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template
/usr/local/hadoop/etc/hadoop/mapred-site.xml
sudo vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>h3n1.hadoop.com:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>h3n1.hadoop.com:19888</value>
</property>
In H3N1:
mapred --daemon stop historyserver
mapred --daemon start historyserver
http://192.168.56.181:9870
http://192.168.56.181:8088
Check for MRAppMaster, YarnChild by checking jps command as below while running the job. We can see how RM
is launching these and running the jobs.
http://192.168.56.181:8088/
If you are using VMs from Windows, add the host details to C:\Windows\System32\drivers\etc to resolve
the hostname and show logs.
http://h3n1.hadoop.com:19888/