Hadoop - Riptutorial

Transcription

hadoop#hadoop

Table of ContentsAbout1Chapter 1: Getting started with hadoop2Remarks2What is Apache Hadoop?2Apache Hadoop includes these modules:2Reference:2Versions2Examples3Installation or Setup on Linux3Installation of Hadoop on ubuntu5Creating Hadoop User:5Adding a user:5Configuring SSH:6Add hadoop user to sudoer's list:8Disabling IPv6:8Installing Hadoop:8Hadoop overview and HDFSChapter 2: Debugging Hadoop MR Java code in local eclipse dev eps for configurationChapter 3: Hadoop commands1214Syntax14Examples14Hadoop v1 Commands141. Print the Hadoop version142. List the contents of the root directory in HDFS14h1114

3. Report the amount of space used and14available on currently mounted filesystem14h12144. Count the number of directories,files and bytes under14the paths that match the specified file pattern14h13145. Run a DFS filesystem checking utility15h14156. Run a cluster balancing utility15h15157. Create a new directory named “hadoop” below the15/user/training directory in HDFS. Since you’re15currently logged in with the “training” user ID,15/user/training is your home directory in HDFS.15h16158. Add a sample text file from the local directory15named “data” to the new directory you created in HDFS15during the previous step.16h17169. List the contents of this new directory in HDFS.16h181610. Add the entire local directory called “retail” to the16/user/training directory in HDFS.16h191611. Since /user/training is your home directory in HDFS,16any command that does not have an absolute path is16interpreted as relative to that directory. The next16command will therefore list your home directory, and16should show the items you’ve just added there.17

h1101712. See how much space this directory occupies in HDFS.17h1111713. Delete a file ‘customers’ from the “retail” directory.17h1121714. Ensure this file is no longer in HDFS.17h1131715. Delete all files from the “retail” directory using a wildcard.17h1141716. To empty the trash17h1151817. Finally, remove the entire retail directory and all18of its contents in HDFS.18h1161818. List the hadoop directory again18h1171819. Add the purchases.txt file from the local directory18named “/home/training/” to the hadoop directory you created in HDFS18h1181820. To view the contents of your text file purchases.txt18which is present in your hadoop directory.18h1191821. Add the purchases.txt file from “hadoop” directory which is present in HDFS directory19to the directory “data” which is present in your local directory19h1201922. cp is used to copy files between directories present in HDFS19h1211923. ‘-get’ command can be used alternaively to ‘-copyToLocal’ command19h12219

24. Display last kilobyte of the file “purchases.txt” to stdout.19h1231925. Default file permissions are 666 in HDFS19Use ‘-chmod’ command to change permissions of a file19h1242026. Default names of owner and group are training,training20Use ‘-chown’ to change owner name and group name simultaneously20h1252027. Default name of group is training20Use ‘-chgrp’ command to change group name20h1262028. Move a directory from one location to other20h1272029. Default replication factor to a file is 3.20Use ‘-setrep’ command to change replication factor of a file20h1282130. Copy a directory from one node in the cluster to another21Use ‘-distcp’ command to copy,21-overwrite option to overwrite in an existing files21-update command to synchronize both directories21h1292131. Command to make the name node leave safe mode21h1302132. List all the hadoop file system shell commands21h1312133. Get hdfs quota values and the current count of names and bytes in use.22h1322234. Last but not least, always ask for help!22h13322

Hadoop v2 CommandsChapter 4: Hadoop load dataExamplesLoad data into hadoop hdfs22262626hadoop fs -mkdir:26Usage:26Example:26hadoop fs -put:26Usage:26Example:26hadoop fs -copyFromLocal:26Usage:27Example:27hadoop fs :27Chapter 5: hue29Introduction29Examples29Setup process29Instalation Dependencies29Hue Installation in Ubuntu30Chapter 6: Introduction to MapReduce32Syntax32Remarks32Examples32Word Count Program(in Java & Python)Chapter 7: What is HDFS?3236

Remarks36Examples36HDFS - Hadoop Distributed File System36Finding files in HDFS36Blocks and Splits HDFS37Credits39

AboutYou can share this PDF with anyone you feel could benefit from it, downloaded the latest versionfrom: hadoopIt is an unofficial and free hadoop ebook created for educational purposes. All the content isextracted from Stack Overflow Documentation, which is written by many hardworking individuals atStack Overflow. It is neither affiliated with Stack Overflow nor official hadoop.The content is released under Creative Commons BY-SA, and the list of contributors to eachchapter are provided in the credits section at the end of this book. Images may be copyright oftheir respective owners unless otherwise specified. All trademarks and registered trademarks arethe property of their respective company owners.Use the content presented in this book at your own risk; it is not guaranteed to be correct noraccurate, please send your feedback and corrections to info@zzzprojects.comhttps://riptutorial.com/1

Chapter 1: Getting started with hadoopRemarksWhat is Apache Hadoop?The Apache Hadoop software library is a framework that allows for the distributed processing oflarge data sets across clusters of computers using simple programming models. It is designed toscale up from single servers to thousands of machines, each offering local computation andstorage. Rather than rely on hardware to deliver high-availability, the library itself is designed todetect and handle failures at the application layer, so delivering a highly-available service on top ofa cluster of computers, each of which may be prone to failures.Apache Hadoop includes these modules: Hadoop Common: The common utilities that support the other Hadoop modules. Hadoop Distributed File System (HDFS): A distributed file system that provides highthroughput access to application data. Hadoop YARN: A framework for job scheduling and cluster resource management. Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.Reference:Apache HadoopVersionsVersionRelease Notes3.0.0-alpha1Release Date2016-08-302.7.3Click here - 2.7.32016-01-252.6.4Click here - 2.6.42016-02-112.7.2Click here - 2.7.22016-01-252.6.3Click here - 2.6.32015-12-172.6.2Click here - 2.6.22015-10-282.7.1Click here - 2.7.12015-07-06https://riptutorial.com/2

ExamplesInstallation or Setup on LinuxA Pseudo Distributed Cluster Setup ProcedurePrerequisites Install JDK1.7 and set JAVA HOME environment variable. Create a new user as "hadoop".useradd hadoop Setup password-less SSH login to its own accountsu - hadoopssh-keygen Press ENTER for all prompts cat /.ssh/id rsa.pub /.ssh/authorized keyschmod 0600 /.ssh/authorized keys Verify by performing sshlocalhost Disable IPV6 by editing /etc/sysctl.conf with the followings:net.ipv6.conf.all.disable ipv6 1net.ipv6.conf.default.disable ipv6 1net.ipv6.conf.lo.disable ipv6 1 Check that using cat/proc/sys/net/ipv6/conf/all/disable ipv6(should return 1)Installation and Configuration: Download required version of Hadoop from Apache archives using wget command.cd /opt/hadoop/wget http:/addresstoarchive/hadoop-2.x.x/xxxxx.gztar -xvf hadoop-2.x.x.gzmv hadoop-2.x.x.gz hadoop(or)ln -s hadoop-2.x.x.gz hadoopchown -R hadoop:hadoop hadoop Update .bashrc/.kshrc based on your shell with below environment variablesexport HADOOP PREFIX /opt/hadoop/hadoopexport HADOOP CONF DIR HADOOP PREFIX/etc/hadoopexport JAVA HOME /java/home/pathhttps://riptutorial.com/3

export PATH PATH: HADOOP PREFIX/bin: HADOOP PREFIX/sbin: JAVA HOME/bin In HADOOP HOME/etc/hadoop directory edit below files core-site.xml configuration property name fs.defaultFS /name value hdfs://localhost:8020 /value /property /configuration mapred-site.xmlCreate mapred-site.xml from its templatecp mapred-site.xml.template mapred-site.xml configuration property name mapreduce.framework.name /name value yarn /value /property /configuration yarn-site.xml configuration property name yarn.resourcemanager.hostname /name value localhost /value /property property name yarn.nodemanager.aux-services /name value mapreduce shuffle /value /property /configuration hdfs-site.xml configuration property name dfs.replication /name value 1 /value /property property name dfs.namenode.name.dir /name value file:///home/hadoop/hdfs/namenode /value /property property name dfs.datanode.data.dir /name value file:///home/hadoop/hdfs/datanode /value /property /configuration https://riptutorial.com/4

Create the parent folder to store the hadoop datamkdir -p /home/hadoop/hdfs Format NameNode (cleans up the directory and creates necessary meta files)hdfs namenode -format Start all services:start-dfs.sh && start-yarn.shmr-jobhistory-server.sh start historyserverInstead use start-all.sh (deprecated). Check all running java processesjps Namenode Web Interface: http://localhost:50070/ Resource manager Web Interface: http://localhost:8088/ To stop daemons(services):stop-dfs.sh && stop-yarn.shmr-jobhistory-daemon.sh stop historyserverInstead use stop-all.sh (deprecated).Installation of Hadoop on ubuntuCreating Hadoop User:sudo addgroup hadoopAdding a user:sudo adduser --ingroup hadoop hduser001https://riptutorial.com/5

Configuring SSH:su -hduser001ssh-keygen -t rsa -P ""cat .ssh/id rsa.pub .ssh/authorized keysNote: If you get errors [bash: .ssh/authorized keys: No such file or directory] whilst writing theauthorized key. Check here.https://riptutorial.com/6

https://riptutorial.com/7

Add hadoop user to sudoer's list:sudo adduser hduser001 sudoDisabling IPv6:Installing Hadoop:https://riptutorial.com/8

sudo add-apt-repository ppa:hadoop-ubuntu/stablesudo apt-get install hadoopHadoop overview and HDFSHadoop is an open-source software framework for storage and large-scale processing ofdata-sets in a distributed computing environment. It is sponsored by Apache SoftwareFoundation. It is designed to scale up from single servers to thousands of machines, eachoffering local computation and storage.https://riptutorial.com/9

History Hadoop was created by Doug Cutting and Mike Cafarella in 2005. Cutting, who was working at Yahoo! at the time, named it after his son's toy elephant. It was originally developed to support distribution for the search engine project.Major modules of hadoopHadoop Distributed File System (HDFS): A distributed file system that provides highthroughput access to application data. Hadoop MapReduce: A software framework fordistributed processing of large data sets on compute clusters.Hadoop File System Basic FeaturesHighly fault-tolerant. High throughput. Suitable for applications with large data sets. Can bebuilt out of commodity hardware.Namenode and DatanodesMaster/slave architecture. HDFS cluster consists of a single Namenode, a master server thatmanages the file system namespace and regulates access to files by clients. TheDataNodes manage storage attached to the nodes that they run on. HDFS exposes a filesystem namespace and allows user data to be stored in files. A file is split into one or moreblocks and set of blocks are stored in DataNodes. DataNodes: serves read, write requests,performs block creation, deletion, and replication upon instruction from Namenode.HDFS is designed to store very large files across machines in a large cluster. Each file is ahttps://riptutorial.com/10

sequence of blocks. All blocks in the file except the last are of the same size. Blocks arereplicated for fault tolerance. The Namenode receives a Heartbeat and a BlockReport fromeach DataNode in the cluster. BlockReport contains all the blocks on a Datanode.Hadoop Shell CommandsCommon commands used:ls Usage: hadoop fs –ls Path(dir/file path to list). Cat Usage: hadoop fs -catPathOfFileToViewLink for hadoop shell commands:- ctdist/hadoop-common/FileSystemShell.htmlRead Getting started with hadoop online: tartedwith-hadoophttps://riptutorial.com/11

Chapter 2: Debugging Hadoop MR Java codein local eclipse dev environment.IntroductionThe basic thing to remember here is that debugging a Hadoop MR job is going to be similar to anyremotely debugged application in Eclipse.A debugger or debugging tool is a computer program that is used to test and debug otherprograms (the “target” program). It is greatly useful specially for a Hadoop environment whereinthere is little room for error and one small error can cause a huge loss.RemarksThat is all you need to do.ExamplesSteps for configurationAs you would know, Hadoop can be run in the local environment in 3 different modes :1. Local Mode2. Pseudo Distributed Mode3. Fully Distributed Mode (Cluster)Typically you will be running your local hadoop setup in Pseudo Distributed Mode to leverageHDFS and Map Reduce(MR). However you cannot debug MR programs in this mode as eachMap/Reduce task will be running in a separate JVM process so you need to switch back to Localmode where you can run your MR programs in a single JVM process.Here are the quick and simple steps to debug this in your local environment:1. Run hadoop in local mode for debugging so mapper and reducer tasks run in a single JVMinstead of separate JVMs. Below steps help you do it.2. Configure HADOOP OPTS to enable debugging so when you run your Hadoop job, it will bewaiting for the debugger to connect. Below is the command to debug the same at port 8080.(export HADOOP OPTS ”agentlib:jdwp transport dt socket,server y,suspend y,address 8008“)3. Configure fs.default.name value in core-site.xml to file:/// from hdfs://. You won’t be usinghdfs in local mode.https

Chapter 3: Hadoop commands 14 Syntax 14 Examples 14 Hadoop v1 Commands 14 1. Print the Hadoop version 14 2. List the contents of the root directory in HDFS 14 h11 14 . 3. Report the amount of space used and 14 available on currently mounted filesystem 14 h12 14 4. Count the number of directories,files and bytes under 14 the paths that match the specified file pattern 14 h13 14 5. Run a