Hadoop的安装与使用_第1页
Hadoop的安装与使用_第2页
Hadoop的安装与使用_第3页
Hadoop的安装与使用_第4页
Hadoop的安装与使用_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、hadoop 的安装与使用oldbig, nhpcc, ustc 主要参考: http:/ 0. 介绍对于 hadoop 来说,在 hdfs 看来,节点分为namenode 和 datanode,其中 namenode 只有一个, datanode 可以是很多;在mapreduce 看来,节点又分为jobtracker 和 tasktracker,其中 jobtracker 只有一个, tasktracker 可以是很多。当前将namenode 和 jobtracker 部署在wukong1 上, wukong2,wukong3作为datanode 和 tasktracker。当然也可以将na

2、menode,datanode, jobtracker,tasktracker 全部部署在一台机器上。1. 系统配置操作系统: unbuntu-7.04 jdk: sun-java6-jdk hadoop:hadoop-0.13.0 /dyn/closer.cgi/lucene/hadoop/ 硬件:三台机器,ip 配置如下:wukong1:, wukong2: wukong3: 系统使用: ssh wukong:wukong1

3、23 2. 修改每台机器的/etc/hosts,保证每台机器间都可以通过机器名解析加入下面几行: wukong1 wukong1 wukong2 wukong2 wukong3 wukong3 3. 设置 ssh无密码登录在 hadoop 启动以后, namenode 是通过 ssh(secure shell)来启动和停止各个节点上的各种守护进程的, 这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置 ssh 使用无密码公钥认证的方式。在没进行下面的配置前,在wukong1 上执行ssh wu

4、kong2 的操作时,需要输入wukongwukong2 的密码。配置 wukong1 上 ssh的过程如下。生成密钥对:ssh-keygen -t rsa, 会在 /.ssh/目录下生成id_rsa 和 id_rsa.pub, 其中id_rsa 是私钥, id_rsa.pub 是公钥,需要把公钥拷到所有节点的/.ssh/authorized_keys 这个文件中(包括自己本身,保证ssh 登录自己时也不需要密码),如果该文件已经存在则追加到这个文件中。要正确设置authorized_key 的权限为644,不然还是不行, chmod 644 authorized_key 。 当 wukong

5、1 向 wukong2 发起 ssh连接的时候,wukong2上就会生成随机数并用wukong1 的公钥对这个随机数进行加密,并发送给wukong1 ;wukong1 收到这个加密的数以后用私钥进行解密,并将解密后的数发送回wukong2, wukong2确认解密的数无误后就允许wukong1 进行连接了。这就完成了一次公钥认证过程。这时,可以测试一下,ssh wukong2 是不是已经不再需要输入密码了。对于每个节点都要进行上面类似的操作,保证该节点到其它节点的ssh连接不需要输入密码。4. 配置 hadoop 由于 hadoop 要求所有机器上hadoop 的部署目录结构要相同,并且都有一

6、个相同的用户名的帐户。三台机器上是这样的:都有一个wukong 的帐户,主目录是/home/wukong 。把 hadoop-0.13.0.tar.gz 放到所有节点的/目录下,wukongwukong1:$tar zxvf hadoop-0.13.0.tar.gz 会在 /目录下生成一个hadoop-0.13.0 目录,为了方便以后版本升级,建立一个链接指向要使用的 hadoop 版本,不妨设为hadoop wukongwukong1:$ln -s hadoop0.12.0 hadoop 这样一来, 所有的配置文件都在/hadoop/conf/目录中, 所有执行程序都在/hadoop/bin

7、 目录中。但是由于上述目录中hadoop 的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级 hadoop 版本的时候所有的配置文件都会被覆盖,因 此将配置文件与安装目录分离,一种比较好的方法就是建立一个存放配置文件的目录,/home/wukong/hadoop-config/ ,然后将/hadoop/conf/ 目录中的hadoop_site.xml,slaves,hadoop_env.sh,masters,这 4 个文件拷贝到hadoop-config/ 目录中,并指定环境变量$hadoop_conf_dir指向该目录。环境变量在/home/wukong/.bashrc 中设

8、定。在 hadoop-conf/目录下,打开slaves 文件,该文件用来指定所有的从节点,一行指定一个主机名, slaves内容如下:wukongwukong1:/hadoop-config$ cat slaves wukong2 wukong3 在 hadoop-conf/目录下,打开masters文件指定主节点,masters内容如下:wukongwukong1:/hadoop-config$ cat masters wukong1 在 conf/目录中的hadoop-default.xml 中包含了hadoop 的所有配置项, 但是不允许直接修改!可以在hadoop-conf/ 目录下

9、的hadoop-site.xml里面定义我们需要的项,其值会覆盖hadoop-default.xml 中的默认值。 可以根据自己的实际需要来进行定制。当前的配置档如下:wukongwukong1:/hadoop-config$ cat hadoop-site.xml wukong1:9000 the name of the default file system. either the literal string local or a host:port for dfs. mapred.job.tracker wukong1:9001 the host and

10、 port that the mapreduce job tracker runs at. if local, then jobs are run in-process as a single map and reduce task. hadoop.tmp.dir /home/wukong/hadoop/tmp a base for other temporary directories. .dir /home/wukong/hadoop/filesystem/name determines where on the local filesystem the dfs name

11、node should store the name table. if this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy. dfs.data.dir /home/wukong/hadoop/filesystem/data determines where on the local filesystem an dfs data node should store its blocks. if this

12、is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. directories that do not exist are ignored. dfs.replication 1 default block replication. the actual number of replications can be specified when the file is created. the defaul

13、t is used if replication is not specified in create time. mapred.map.tasks 6 the default number of map tasks per job. typically set to a prime several times greater than number of available hosts. ignored when mapred.job.tracker is local. mapred.reduce.tasks 2 the default number of reduce tasks per

14、job. typically set to a prime close to the number of available hosts. ignored when mapred.job.tracker is local. hadoop 环境变量在/home/wukong/hadoop-conf 目录下的hadoop_env.sh中设置 hadoop 需要的环境变量,其中java_home是必须设定的变量。hadoop_home变量可以设定也可以不设定,如果不设定, hadoop_home默认的是bin 目录的父目录,即本文中的/home/wukong/hadoop 。当前设置:export

15、java_home=/usr/lib/jvm/java-6-sun export hadoop_home=/home/$user/hadoop 这样以后升级的时候只要把hadoop 的联接指向新的版本就行了,不需要修改配置文件。5. 部署 hadoop 前面讲的这么多hadoop 的环境变量和配置文件都是在dbrg-1 这台机器上的,现在需要将hadoop 部署到其他的机器上,保证目录结构一致。wukongwukong1:/hadoop-config$scp -r /home/wukong/hadoop-0.13.0 wukong2:/home/wukong wukongwukong1:/ha

16、doop-config$scp -r /home/wukong/hadoop-0.13.0 wukong3:/home/wukong wukongwukong1:/hadoop-config$scp -r /home/wukong/hadoop-config wukong2:/home/wukong wukongwukong1:/hadoop-config$scp -r /home/wukong/hadoop-config wukong3:/home/wukong 至此,可以说,hadoop 已经在各个机器上部署完毕了如果要新加入节点的话,新的节点要重复前面2,3 步,本地安装好hadoop

17、后,从其它节点把 hadoop-config 复制过来,还要修改其它所有机器的/ets/hosts 和.ssh/authorized_keys,加入对新节点的识别。6. 启动 hadoop 启动之前,我们先要格式化namenode,先进入 /hadoop 目录,执行下面的命令wukongwukong1:/hadoop$bin/hadoop namenode -format 不出意外,应该会提示格式化成功。如果不成功,就去hadoop/logs/目录下去查看日志文件下面就该正式启动hadoop啦,在 bin/下面有很多启动脚本,可以根据自己的需要来启动。* start-all.sh 启动所有的h

18、adoop 守护。包括namenode, datanode, jobtracker, tasktrack * stop-all.sh 停止所有的hadoop * start-mapred.sh 启动 map/reduce 守护。包括jobtracker 和 tasktrack * stop-mapred.sh 停止 map/reduce 守护* start-dfs.sh 启动 hadoop dfs 守护 .namenode 和 datanode * stop-dfs.sh 停止 dfs 守护在这里,简单启动所有守护wukongwukong1:/hadoop$bin/start-all.sh 同

19、样,如果要停止hadoop,则wukongwukong1:/hadoop$bin/stop-all.sh 7.hadoop 文件系统操作wukongwukong1:/hadoop$ bin/hadoop dfsadmin -report 查看当前文件系统状态total raw bytes: 107354136576 (99.98 gb) used raw bytes: 8215538156 (7.65 gb) % used: 7.65% total effective bytes: 143160206 (136.52 mb) effective replication multiplier:

20、57.38702384935098 - datanodes available: 2 name: :50010 state : in service total raw bytes: 39395708928 (36.69 gb) used raw bytes: 3089165011 (2.87 gb) % used: 7.84% last contact: tue jul 10 13:09:24 cst 2007 name: :50010 state : in service total raw bytes: 67958427648 (63.

21、29 gb) used raw bytes: 5126373145 (4.77 gb) % used: 7.54% last contact: tue jul 10 13:09:25 cst 2007 说明 wukong2 和 wukong3 作为 datanode节点,总的容量,有效数据大小等。对文件系统支持的一些操作如下,wukongwukong1:/hadoop$ bin/hadoop dfs -h h: unknown command usage: java fsshell -fs -conf -d -ls -lsr -du -dus -mv -cp -rm -rmr -expunge

22、 -put -copyfromlocal -movefromlocal -get -crc -getmerge addnl -cat -copytolocal -crc -movetolocal -crc -mkdir -setrep -r -help cmd 每个操作的详细说明可用:wukongwukong1:/hadoop$ bin/hadoop dfs -help 8. 使用 hadoop 来做计算hadoop 基于 mapreduce 模型进行计算。mapreduce 是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java 程序员可以不考虑内

23、存泄露一样,mapreduce 的 run-time 系统会解决输入数据的分布细节,跨越机器集群的程序执行调度, 处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。hadoop 自带了一些测试用的例子:wukongwukong1:/hadoop$ jar -tf hadoop-0.13.0-examples.jar 然后可以看到有如下几个:grep,wordcount,sort 等org/apache/hadoop/examples/exampledriver.class org/apache/had

24、oop/examples/grep.class org/apache/hadoop/examples/piestimator$pimapper.class org/apache/hadoop/examples/piestimator$pireducer.class org/apache/hadoop/examples/piestimator.class org/apache/hadoop/examples/randomwriter$counters.class org/apache/hadoop/examples/randomwriter$map.class org/apache/hadoop

25、/examples/randomwriter$randominputformat$randomrecordreader.class org/apache/hadoop/examples/randomwriter$randominputformat.class org/apache/hadoop/examples/randomwriter.class org/apache/hadoop/examples/sort.class org/apache/hadoop/examples/wordcount$counter.class org/apache/hadoop/examples/wordcount$mapclass.class org/apache/hadoop/ex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论