收藏 分享(赏)

hadoop安装前准备工作精品资料.doc

上传人:风样花鼓 文档编号:21124590 上传时间:2023-07-07 格式:DOC 页数:26 大小:204.07KB
下载 相关 举报
hadoop安装前准备工作精品资料.doc_第1页
第1页 / 共26页
hadoop安装前准备工作精品资料.doc_第2页
第2页 / 共26页
hadoop安装前准备工作精品资料.doc_第3页
第3页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1 在安装好的Ubuntu系统下添加具有sudo权限的用户。rootnodeA:# sudo adduser zyxAdding user zyx .Adding new group zyx (1001) .Adding new user zyx (1001) with group zyx .Creating home directory /home/zyx .Copying files from /etc/skel .Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully

2、Changing the user information for zyxEnter the new value, or press ENTER for the default Full Name : Cadduser: /usr/bin/chfn zyx exited from signal 2. Exiting.rootnodeA:#rootnodeA:# sudo usermod -G admin -a zyxrootnodeA:#2 建立SSH无密码登陆(1)namenode上实现无密码登陆本机zyxnodeA:$ ssh-keygen -t dsa -P -f /.ssh/id_ds

3、aGenerating public/private dsa key pair.Created directory /home/zyx/.ssh.Your identification has been saved in /home/zyx/.ssh/id_dsa.Your public key has been saved in /home/zyx/.ssh/id_dsa.pub.The key fingerprint is:65:2e:e0:df:2e:61:a5:19:6a:ab:0e:38:45:a9:6a:2b zyxnodeAThe keys randomart image is:

4、+- DSA 1024-+| | . | o . o | o . .+. |. . .S=. |.o o.=o |+. . o. |E. . . |. .o. . |+-+zyxnodeA:$ cat /.ssh/id_dsa.pub /.ssh/authorized_keyszyxnodeA:$(2)实现namenode无密码登陆其他datanodehadoopnodeB:$ scp hadoopnodea:/home/hadoop/.ssh/id_dsa.pub /home/hadoophadoopnodeas password: id_dsa.pub 100% 602 0.6KB/s 0

5、0:00 hadoopnodeB:$ cat id_dsa.pub .ssh/authorized_keyshadoopnodeB:$ sudo ufw disable3 复制JDK(jdk-6u20-linux-i586.bin)文件到linux利用F-Secure SSH File Transfer Trial 工具,直接拖拽4 jdk-6u20-linux-i586.bin的安装和配置(1)安装zyxnodeA:$ lsExamples jdkzyxnodeA:$ cd jdkzyxnodeA:/jdk$ lsjdk-6u20-linux-i586.binzyxnodeA:/jdk$ c

6、hmod a+x jdk*zyxnodeA:/jdk$ ./jdk*接下来显示许可协议,然后选择yes, 然后按Enter键,安装结束。zyxnodeA:/jdk$ lsjdk1.6.0_20 jdk-6u20-linux-i586.bin(2)配置用rootnodeA:/home/zyx# vi .bashrc 打开bashrc, 然后在最后加入下面几行:export JAVA_HOME=/home/zyx/jdk/jdk1.6.0_20export JRE_HOME=/home/zyx/jdk/jdk1.6.0_20/jreexport CLASS_PATH=$CLASSPATH:$JAV

7、A_HOME/lib:$JRE_HOME/libexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HOMR/bin5 Hadoop的安装下载地址:把hadoop-0.20.2.tar.gz 放到home/zyx/hadoop下,然后解压该文件zyxnodeB:/hadoop$ tar -zvxf hadoop-0.20.2.tar.gz设置环境变量, 添加到home/zyx/.bashrczyxnodeA:$ vi .bashrcexport HADOOP_HOME=/home/zyx/hadoop/hadoop-0.20.2export PATH

8、=$HADOOP_HOME/bin:$PATH6 Hadoop的配置(1) 在conf/hadoop-env.sh中配置java环境export JAVA_HOME=/home/zyx/jdk/jdk/jdk1.6.0_20(2) 配置conf/masters, slaves 文件, 只需要在nodename上配置。(3) 配置core-site.xml, hdfs-site.xml, mapred-site.xml zyxnodeC:/hadoop-0.20.2/conf$ more core-site.xml fs.default.name# hdfs:/192.168.1.103:543

9、10 hdfs:/192.168.1.103:9000 zyxnodeC:/hadoop-0.20.2/conf$ more hdfs-site.xml dfs.replication 1 zyxnodeC:/hadoop-0.20.2/conf$ more mapred-site.xml mapred.job.tracker# hdfs:/192.168.1.103:54320 hdfs:/192.168.1.103:9001 7 Hadoop的运行(0) 格式化:zyxnodeC:/hadoop-0.20.2/bin$ hadoop namenode format(1)用jps查看进程:z

10、yxnodeC:/hadoop-0.20.2/bin$ jps31030 NameNode31488 TaskTracker31283 SecondaryNameNode31372 JobTracker31145 DataNode31599 Jps(2)查看集群状态zyxnodeC:/hadoop-0.20.2/bin$ hadoop dfsadmin -reportConfigured Capacity: 304716488704 (283.79 GB)Present Capacity: 270065557519 (251.52 GB)DFS Remaining: 270065532928

11、(251.52 GB)DFS Used: 24591 (24.01 KB)DFS Used%: 0%Under replicated blocks: 0Blocks with corrupt replicas: 0Missing blocks: 0 -Datanodes available: 1 (1 total, 0 dead) Name: 192.168.1.103:50010Decommission Status : NormalConfigured Capacity: 304716488704 (283.79 GB)DFS Used: 24591 (24.01 KB)Non DFS U

12、sed: 34650931185 (32.27 GB)DFS Remaining: 270065532928(251.52 GB)DFS Used%: 0%DFS Remaining%: 88.63%Last contact: Fri Apr 23 15:39:10 CST 2010(3)Stop 文件:zyxnodeC:/hadoop-0.20.2/bin$ stop-all.shstopping jobtrackerlocalhost: stopping tasktrackerstopping namenodelocalhost: stopping datanodelocalhost: s

13、topping secondarynamenode8 运行一个简单JAVA 程序1) 先在本地磁盘建立两个文件file01和file02cuijjstation1 $ echo Hello cuijj bye cuijj file01cuijjstation1 $ echo Hello Hadoop Goodbye Hadoop file022)在hdfs中建立一个input目录cuijjstation1 $ hadoop dfs -mkdir input(4) 将file01和file02拷贝到hdfs的input目录下zyxnodeC:$ hadoop dfs -copyFromLocal

14、 /home/zyx/file0* input(5) 查看hdfs中有没有input目录zyxnodeC:$ hadoop dfs -lsFound 1 itemsdrwxr-xr-x - zyx supergroup 0 2010-04-23 16:40 /user/zyx/input(6) 查看input目录下有没有复制成功file01和file02zyxnodeC:$ hadoop dfs -ls inputFound 2 items-rw-r-r- 1 zyx supergroup 0 2010-04-23 16:40 /user/zyx/input/file01-rw-r-r- 1

15、zyx supergroup 0 2010-04-23 16:40 /user/zyx/input/file02(7) 执行wordcount(确保hdfs上没有output目录)zyxnodeC:/hadoop-0.20.2$ hadoop jar hadoop-0.20.2-examples.jar wordcount input output10/04/24 09:25:10 INFO input.FileInputFormat: Total input paths to process : 210/04/24 09:25:11 INFO mapred.JobClient: Runnin

16、g job: job_201004240840_000110/04/24 09:25:12 INFO mapred.JobClient: map 0% reduce 0%10/04/24 09:25:22 INFO mapred.JobClient: map 100% reduce 0%10/04/24 09:25:34 INFO mapred.JobClient: map 100% reduce 100%10/04/24 09:25:36 INFO mapred.JobClient: Job complete: job_201004240840_000110/04/24 09:25:36 I

17、NFO mapred.JobClient: Counters: 1710/04/24 09:25:36 INFO mapred.JobClient: Job Counters 10/04/24 09:25:36 INFO mapred.JobClient: Launched reduce tasks=110/04/24 09:25:36 INFO mapred.JobClient: Launched map tasks=210/04/24 09:25:36 INFO mapred.JobClient: Data-local map tasks=210/04/24 09:25:36 INFO m

18、apred.JobClient: FileSystemCounters10/04/24 09:25:36 INFO mapred.JobClient: FILE_BYTES_READ=7910/04/24 09:25:36 INFO mapred.JobClient: HDFS_BYTES_READ=5010/04/24 09:25:36 INFO mapred.JobClient: FILE_BYTES_WRITTEN=22810/04/24 09:25:36 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=4110/04/24 09:25:36 INFO

19、 mapred.JobClient: Map-Reduce Framework10/04/24 09:25:36 INFO mapred.JobClient: Reduce input groups=510/04/24 09:25:36 INFO mapred.JobClient: Combine output records=610/04/24 09:25:36 INFO mapred.JobClient: Map input records=210/04/24 09:25:36 INFO mapred.JobClient: Reduce shuffle bytes=8510/04/24 0

20、9:25:36 INFO mapred.JobClient: Reduce output records=510/04/24 09:25:36 INFO mapred.JobClient: Spilled Records=1210/04/24 09:25:36 INFO mapred.JobClient: Map output bytes=8210/04/24 09:25:36 INFO mapred.JobClient: Combine input records=810/04/24 09:25:36 INFO mapred.JobClient: Map output records=810

21、/04/24 09:25:36 INFO mapred.JobClient: Reduce input records=6(8) 查看运行结果zyxnodeC:/hadoop-0.20.2$ hadoop fs -cat output/part-r-00000Goodbye 1Hadoop 2Hello 2bye 1cuijj 29 MapReduce的安装10 MapReduce程序的运行http:/www.michael-11. 对于.java程序的hadoop编译:rootnodeC:/home/zyx/hadoop-0.20.2# javac -classpath /home/zyx/

22、hadoop-0.20.2/hadoop-0.20.2-core.jar:/home/zyx/hadoop-0.20.2/lib/commons-cli-1.2.jar -d /home/zyx/wordcount_class /home/zyx/hadoop-0.20.2/src/examples/org/apache/hadoop/examples/WordCount.java12. 把 .class 文件生成 .jar 文件rootnodeC:/home/zyx/wordcount_class/org/apache/hadoop/examples# jar -cvf /home/zyx/

23、wordcount.jar /home/zyx/wordcount_class/ . added manifestadding: home/zyx/wordcount_class/(in = 0) (out= 0)(stored 0%)adding: home/zyx/wordcount_class/org/(in = 0) (out= 0)(stored 0%)adding: home/zyx/wordcount_class/org/apache/(in = 0) (out= 0)(stored 0%)adding: home/zyx/wordcount_class/org/apache/h

24、adoop/(in = 0) (out= 0)(stored 0%)adding: home/zyx/wordcount_class/org/apache/hadoop/examples/(in = 0) (out= 0)(stored 0%)adding: home/zyx/wordcount_class/org/apache/hadoop/examples/WordCount.class(in = 1911) (out= 996)(deflated 47%)adding: home/zyx/wordcount_class/org/apache/hadoop/examples/WordCou

25、nt$TokenizerMapper.class(in = 1790) (out= 765)(deflated 57%)adding: home/zyx/wordcount_class/org/apache/hadoop/examples/WordCount$IntSumReducer.class(in = 1789) (out= 746)(deflated 58%)adding: WordCount.class(in = 1911) (out= 996)(deflated 47%)adding: WordCount$TokenizerMapper.class(in = 1790) (out=

26、 765)(deflated 57%)例子:WordCount v1.0在深入细节之前,让我们先看一个Map/Reduce的应用示例,以便对它们的工作方式有一个初步的认识。WordCount是一个简单的应用,它可以计算出指定数据集中每一个单词出现的次数。这个应用适用于 单 机模式, 伪 分布式模式 或 完 全分布式模式 三种Hadoop安装方式。源代码WordCount.java1.package org.myorg; 2.3.import java.io.IOException; 4.import java.util.*; 5.6.import org.apache.hadoop.fs.Pa

27、th; 7.import org.apache.hadoop.conf.*; 8.import org.apache.hadoop.io.*; 9.import org.apache.hadoop.mapred.*; 10.import org.apache.hadoop.util.*; 11.12.public class WordCount 13.14. public static class Map extends MapReduceBase implements Mapper 15. private final static IntWritable one = new IntWrita

28、ble(1); 16. private Text word = new Text(); 17.18. public void map(LongWritable key, Text value, OutputCollector output, Reporter reporter) throws IOException 19. String line = value.toString(); 20. StringTokenizer tokenizer = new StringTokenizer(line); 21. while (tokenizer.hasMoreTokens() 22. word.

29、set(tokenizer.nextToken(); 23. output.collect(word, one); 24. 25. 26. 27.28. public static class Reduce extends MapReduceBase implements Reducer 29. public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException 30. int sum = 0; 31. while (values.hasNext(

30、) 32. sum += values.next().get(); 33. 34. output.collect(key, new IntWritable(sum); 35. 36. 37.38. public static void main(String args) throws Exception 39. JobConf conf = new JobConf(WordCount.class); 40. conf.setJobName(wordcount); 41.42. conf.setOutputKeyClass(Text.class); 43. conf.setOutputValue

31、Class(IntWritable.class); 44.45. conf.setMapperClass(Map.class); 46. conf.setCombinerClass(Reduce.class); 47. conf.setReducerClass(Reduce.class); 48.49. conf.setInputFormat(TextInputFormat.class); 50. conf.setOutputFormat(TextOutputFormat.class); 51.52. FileInputFormat.setInputPaths(conf, new Path(a

32、rgs0); 53. FileOutputFormat.setOutputPath(conf, new Path(args1); 54.55. JobClient.runJob(conf); 57. 58. 59.用法假设环境变量HADOOP_HOME对应安装时的根目录,HADOOP_VERSION对应Hadoop的当前安装版本,编译WordCount.java来创建jar包,可如下操作:$ mkdir wordcount_classes $ javac -classpath $HADOOP_HOME/hadoop-$HADOOP_VERSION-core.jar -d wordcount_c

33、lasses WordCount.java $ jar -cvf /usr/joe/wordcount.jar -C wordcount_classes/ . 假设: /usr/joe/wordcount/input - 是HDFS中的输入路径 /usr/joe/wordcount/output - 是HDFS中的输出路径 用示例文本文件做为输入:$ bin/hadoop dfs -ls /usr/joe/wordcount/input/ /usr/joe/wordcount/input/file01 /usr/joe/wordcount/input/file02 $ bin/hadoop d

34、fs -cat /usr/joe/wordcount/input/file01 Hello World Bye World $ bin/hadoop dfs -cat /usr/joe/wordcount/input/file02 Hello Hadoop Goodbye Hadoop 运行应用程序:$ bin/hadoop jar /usr/joe/wordcount.jar org.myorg.WordCount /usr/joe/wordcount/input /usr/joe/wordcount/output 输出是:$ bin/hadoop dfs -cat /usr/joe/wor

35、dcount/output/part-00000 Bye 1 Goodbye 1 Hadoop 2 Hello 2 World 2 应用程序能够使用-files选项来指定一个由逗号分隔的路径列表,这些路径是 task的当前工作目录。使用选项-libjars可以向map和reduce的 classpath中添加jar包。使用-archives选项程序可以传递档案文件做为 参数,这些档案文件会被解压并且在task的当前工作目录下会创建一个指向解压生成的目录的符号链接(以压缩包的名字命名)。 有关命令行选项的更多细节请参考 Commands manual。使用-libjars和-files运 行wo

36、rdcount例子:hadoop jar hadoop-examples.jar wordcount -files cachefile.txt -libjars mylib.jar input output 附录资料:不需要的可以自行删除bat文件的基本应用bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shel

37、l, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 = 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 = 注 = 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来

38、越边缘化。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 = 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 = 注 = 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c

39、语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 = 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:batch,你就可以在任意位置运行所有你编写的批处理程序。 = 注 = 纯以dos系统

40、而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),COMMAND.COM中的内部命令(根据内存的环境随时进驻内存),以com为扩展名的可执行程序(由 直接载入内存),以exe位扩展名的可执行程序(由 重定位后载入内存),以bat位扩展名的批处理程序(由 解释分析,根据其内容按优先级顺序调用第2,3,4,5种可执行程序,分析一行,执行一行,文件本身不载入内存) = 第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例: ECHO OFF PATH C:WINDOWS;C:WINDOWSCOMMAND;C:UCDOS;C:DOSTools; C:SYSTOOLS;C:WINTOOLS;C:BATCH LH SMARTDRV.EXE /X LH DOSKEY.COM /inser

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 其他相关文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报