نصب آسان هدوپ به صورت تک نود

حداقل یک گیگابایت حافظه رم (پیشنهاد شده: 2 گیگابایت حافظه رم)توانایی دانلود بسته های اینترنتی با حجم بالاآشنایی با نرم افزارهای مجازی سازی نظیر VMware و VirtualBoxبسته های آماده هدوپ را شرکت های مختلفی چه به صورت بسته کامل و چه به صورت گزینشی ارائه می کنند. این شرکت ها عبارتند است از:IBMClouderaHortonworksهر کدام از این شرکت ها بسته های آماده ای را به صورت رایگان فراهم می کنند که هرچند دارای حجم بالایی هستند ولی می توانند توسط نرم افزارهای مجازی سازی به صورت مستقل اجرا شوند و همچنین این بسته ها عموما دارای امکانات بالاتری نسبت به بسته عمومی هدوپ است. این بسته های آماده حتی شامل واسط های مدیریتی گرافیکی است که توانایی کار با هدوپ را آسانتر می کند. نکته دیگر این است که این بسته ها شامل زیرپروژه های بیشتری نسبت به بسته عمومی می باشند.برای استفاده از این بسته ها کافی است به لینک های زیر مراجعه کنید و بسته مربوط به نرم افزار مجازی سازی خود را بارگیری نمایید و اجرا کنید:http://www.cloudera.com/downloads/quickstart_vms/5-7.htmlhttp://www.ibm.com/analytics/us/en/technology/hadoop/http://hortonworks.com/downloads/#data-platformشروع نصب: Installing Javak@laptop:~$ cd ~# Update the source listk@laptop:~$ sudo apt-get update# The OpenJDK project is the default version of Java # that is provided from a supported Ubuntu repository.k@laptop:~$ sudo apt-get install default-jdkk@laptop:~$ java -versionjava version "1.7.0_65"OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1)OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)ابتدا یک دایرکتوری hadoop ایجاد می کنیم.Mkdir Usr/local/hadoopدر این آموزش یک یوز به نامه hduser ایجاد میکنیم.k@laptop:~$ sudo adduser --ingroup hadoop hduserAdding user `hduser' ...Adding new user `hduser' (1001) with group `hadoop' ...Creating home directory `/home/hduser' ...Copying files from `/etc/skel' ...Enter new UNIX password: Retype new UNIX password: passwd: password updated successfullyChanging the user information for hduserEnter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Yنصب sshk@laptop:~$ sudo apt-get install sshایجاد ونصب تصدیق sshk@laptop:~$ ssh-keygen -t rsa -P ""Generating public/private rsa key pair.Enter file in which to save the key (/home/hduser/.ssh/id_rsa): Created directory '/home/hduser/.ssh'.Your identification has been saved in /home/hduser/.ssh/id_rsa.Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.The key fingerprint is:50:6b:f3:fc:0f:32:bf:30:79:c2:41:71:26:cc:7d:e3 hduser@laptopThe key's randomart image is:+--[ RSA 2048]----+| .oo.o || . .o=. o || . + . o . || o = E || S + || . + || O + || O o || o.. |+-----------------+چک کردن درست کار کردن sshhduser@laptop:/home/k$ ssh localhostThe authenticity of host 'localhost (127.0.0.1)' can't be established.ECDSA key fingerprint is e1:8b:a0:a5:75:ef:f4:b4:5e:a9:ed:be:64:be:5c:2f.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'localhost' (ECDSA) to the list of known hosts.Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-40-generic x86_64)...بعد از آن دانلود hadoophduser@laptop:~$ wget http://mirrors.sonic.net/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gzhduser@laptop:~$ tar xvzf hadoop-2.6.0.tar.gzانتقال هدوپ به این مسیر /usr/local/hadoophduser@laptop:~/hadoop-2.6.0$ sudo mv * /usr/local/hadoop[sudo] password for hduser: hduser is not in the sudoers file. This incident will be reported.hduser@laptop:~/hadoop-2.6.0$ sudo chown -R hduser:hadoop /usr/local/hadoopنکته:دستور chown مخفف کلمات لاتین Change Ownership به معنی تغییر مالکیت می باشد . این دستور به منظور تغییر مالکیت کاربر و تغییر مالکیت گروه یک فایل و یا یک پوشه صورت می پذیرد . به منظور استفاده از این دستور بایستی حتما دسترسی های کاربر ارشد (SuperUser) را داشته باشید . ترکیب دستور chown به این صورت است:chown [owner][:[group]] file…chown قادر به تغییر مالکیت فایل و یا مالکیت گروه فایل بسته به اولین آرگومان موجود در دستور می باشد.ببا توجه به این مورد مالکیت گروه هدوپ را مشخص می کنیم:hduser@laptop:~/hadoop-2.6.0$ sudo chown -R hduser:hadoop /usr/local/hadoopنکته:bashrc./~ : این فایل حاوی اطلاعات مربوط به bash هر کاربر میباشد. این فایل هنگامی خوانده میشود که به سیستم وارد میشود و هر گاه که یک پوسته جدید باز میکنید. اینجا بهترین مکان برای ذخیره متغییرهای محیطی و فرمانهای مستعار خاص خودتان است..اضافه کردن موارد زیر به فایل bashrc:hduser@laptop:~$ vi ~/.bashrc#HADOOP VARIABLES STARTexport JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64export HADOOP_INSTALL=/usr/local/hadoopexport PATH=$PATH:$HADOOP_INSTALL/binexport PATH=$PATH:$HADOOP_INSTALL/sbinexport HADOOP_MAPRED_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_HOME=$HADOOP_INSTALLexport HADOOP_HDFS_HOME=$HADOOP_INSTALLexport YARN_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"#HADOOP VARIABLES ENDhduser@laptop:~$ source ~/.bashrcمراحل زیر نیاز به ویرایش داره:1- /usr/local/hadoop/etc/hadoop/hadoop-env.shدر این مسیر فایل مورد نظر راباز کرده و java_home را به آن اضافه می کنیم.hduser@laptop:~$ vi /usr/local/hadoop/etc/hadoop/hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd642- /usr/local/hadoop/etc/hadoop/core-site.xml:hduser@laptop:~$ vi /usr/local/hadoop/etc/hadoop/core-site.xml<configuration><property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> <description>A base for other temporary directories.</description></property><property> <name>fs.default.name</name> <value>hdfs://localhost:54310</value> <description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.</description></property></configuration>بعد از آن دایرکتوری tmp ایجاد کرده و مالکیت ان را به یوزر مورد نظر می دهید.hduser@laptop:~$ sudo mkdir -p /app/hadoop/tmphduser@laptop:~$ sudo chown hduser:hadoop /app/hadoop/tmp3- /usr/local/hadoop/etc/hadoop/mapred-site.xmlقبل از آن دستور زیر را اجرا میکنیم hduser@laptop:~$ cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml<configuration><property> <name>mapred.job.tracker</name> <value>localhost:54311</value> <description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task. </description></property></configuration>4- /usr/local/hadoop/etc/hadoop/hdfs-site.xmlhduser@laptop:~$ vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml<configuration><property> <name>dfs.replication</name> <value>1</value> <description>Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time. </description></property><property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop_store/hdfs/namenode</value></property><property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop_store/hdfs/datanode</value></property></configuration>بعد از این نیاز هست که دایرکتوری های مربوط به Namenode وDataNode ایجاد کرده و مالکیت آن ها رو به یوزر مورد نظر بدهیم.hduser@laptop:~$ sudo mkdir -p /usr/local/hadoop_store/hdfs/namenodehduser@laptop:~$ sudo mkdir -p /usr/local/hadoop_store/hdfs/datanodehduser@laptop:~$ sudo chown -R hduser:hadoop /usr/local/hadoop_storeکانفیگ هدوپ به پایان رسیده حال نیاز به فرمت Name Node داریم.hduser@laptop:~$ hadoop namenode -formatDEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.15/04/18 14:43:03 INFO namenode.NameNode: STARTUP_MSG: /************************************************************STARTUP_MSG: Starting NameNodeSTARTUP_MSG: host = laptop/192.168.1.1STARTUP_MSG: args = [-format]STARTUP_MSG: version = 2.6.0STARTUP_MSG: classpath = /usr/local/hadoop/etc/hadoop...STARTUP_MSG: java = 1.7.0_65************************************************************/15/04/18 14:43:03 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]15/04/18 14:43:03 INFO namenode.NameNode: createNameNode [-format]15/04/18 14:43:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableFormatting using clusterid: CID-e2f515ac-33da-45bc-8466-5b1100a2bf7f15/04/18 14:43:09 INFO namenode.FSNamesystem: No KeyProvider found.15/04/18 14:43:09 INFO namenode.FSNamesystem: fsLock is fair:true15/04/18 14:43:10 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=100015/04/18 14:43:10 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true15/04/18 14:43:10 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.00015/04/18 14:43:10 INFO blockmanagement.BlockManager: The block deletion will start around 2015 Apr 18 14:43:1015/04/18 14:43:10 INFO util.GSet: Computing capacity for map BlocksMap15/04/18 14:43:10 INFO util.GSet: VM type = 64-bit15/04/18 14:43:10 INFO util.GSet: 2.0% max memory 889 MB = 17.8 MB15/04/18 14:43:10 INFO util.GSet: capacity = 2^21 = 2097152 entries15/04/18 14:43:10 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false15/04/18 14:43:10 INFO blockmanagement.BlockManager: defaultReplication = 115/04/18 14:43:10 INFO blockmanagement.BlockManager: maxReplication = 51215/04/18 14:43:10 INFO blockmanagement.BlockManager: minReplication = 115/04/18 14:43:10 INFO blockmanagement.BlockManager: maxReplicationStreams = 215/04/18 14:43:10 INFO blockmanagement.BlockManager: shouldCheckForEnoughRacks = false15/04/18 14:43:10 INFO blockmanagement.BlockManager: replicationRecheckInterval = 300015/04/18 14:43:10 INFO blockmanagement.BlockManager: encryptDataTransfer = false15/04/18 14:43:10 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 100015/04/18 14:43:10 INFO namenode.FSNamesystem: fsOwner = hduser (auth:SIMPLE)15/04/18 14:43:10 INFO namenode.FSNamesystem: supergroup = supergroup15/04/18 14:43:10 INFO namenode.FSNamesystem: isPermissionEnabled = true15/04/18 14:43:10 INFO namenode.FSNamesystem: HA Enabled: false15/04/18 14:43:10 INFO namenode.FSNamesystem: Append Enabled: true15/04/18 14:43:11 INFO util.GSet: Computing capacity for map INodeMap15/04/18 14:43:11 INFO util.GSet: VM type = 64-bit15/04/18 14:43:11 INFO util.GSet: 1.0% max memory 889 MB = 8.9 MB15/04/18 14:43:11 INFO util.GSet: capacity = 2^20 = 1048576 entries15/04/18 14:43:11 INFO namenode.NameNode: Caching file names occuring more than 10 times15/04/18 14:43:11 INFO util.GSet: Computing capacity for map cachedBlocks15/04/18 14:43:11 INFO util.GSet: VM type = 64-bit15/04/18 14:43:11 INFO util.GSet: 0.25% max memory 889 MB = 2.2 MB15/04/18 14:43:11 INFO util.GSet: capacity = 2^18 = 262144 entries15/04/18 14:43:11 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.999000012874603315/04/18 14:43:11 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 015/04/18 14:43:11 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 3000015/04/18 14:43:11 INFO namenode.FSNamesystem: Retry cache on namenode is enabled15/04/18 14:43:11 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis15/04/18 14:43:11 INFO util.GSet: Computing capacity for map NameNodeRetryCache15/04/18 14:43:11 INFO util.GSet: VM type = 64-bit15/04/18 14:43:11 INFO util.GSet: 0.029999999329447746% max memory 889 MB = 273.1 KB15/04/18 14:43:11 INFO util.GSet: capacity = 2^15 = 32768 entries15/04/18 14:43:11 INFO namenode.NNConf: ACLs enabled? false15/04/18 14:43:11 INFO namenode.NNConf: XAttrs enabled? true15/04/18 14:43:11 INFO namenode.NNConf: Maximum size of an xattr: 1638415/04/18 14:43:12 INFO namenode.FSImage: Allocated new BlockPoolId: BP-130729900-192.168.1.1-142939339159515/04/18 14:43:12 INFO common.Storage: Storage directory /usr/local/hadoop_store/hdfs/namenode has been successfully formatted.15/04/18 14:43:12 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 015/04/18 14:43:12 INFO util.ExitUtil: Exiting with status 015/04/18 14:43:12 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************SHUTDOWN_MSG: Shutting down NameNode at laptop/192.168.1.1************************************************************/باید فرمت به شکل بالا انجام شود.حال با دستور start-all.sh هدوپ را اجرا میکنیم.hduser@laptop:/usr/local/hadoop/sbin$ start-all.shhduser@laptop:~$ start-all.shThis script is Deprecated. Instead use start-dfs.sh and start-yarn.sh15/04/18 16:43:13 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableStarting namenodes on [localhost]localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hduser-namenode-laptop.outlocalhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-laptop.outStarting secondary namenodes [0.0.0.0]0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hduser-secondarynamenode-laptop.out15/04/18 16:43:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicablestarting yarn daemonsstarting resourcemanager, logging to /usr/local/hadoop/logs/yarn-hduser-resourcemanager-laptop.outlocalhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hduser-nodemanager-laptop.outبا دستور jps می توانیم تمام وارد قابل اجرا را ببینیم:hduser@laptop:/usr/local/hadoop/sbin$ jps9026 NodeManager7348 NameNode9766 Jps8887 ResourceManager7507 DataNodeHadoop Web Interfaceshttp://localhost:50070