ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:851KB ,
资源ID:4575416      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4575416.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Linux下Hadoop的分布式配置和使用.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Linux下Hadoop的分布式配置和使用.doc

1、Linux下Hadoop的分布式配置和使用 Linux下Hadoop分布式配置和使用(适用于0.20及以后版本) 詹坤林 2010年5月 目 录 介绍 2 0 集群网络环境介绍 2 1 /etc/hosts文件配置 2 2 SSH无密码验证配置 3 2.1 选择一:配置Namenode无密码登录所有Datanode 3 2.1选择二:配置所有节点之间SSH无密码验证 4 3 JDK安装和Java环境变量配置 5 3.1 安装 JDK 1.6 5 3.2 Java环境变量配置 5 4 Hadoop集群配置 5 5 Hadoop集群启动 8 6 Hadoop

2、使用 10 6.1 客户机与HDFS进行交互 10 6.1.1 客户机配置 10 6.1.2 列出HDFS根目录/下的文件 11 6.1.3 列出当前用户主目录下的文件 11 6.1.4 HDFS用户管理 11 6.1.5 复制本地数据到HDFS中 12 6.1.6 数据副本说明 12 6.1.7 hadoop-site.xml参数说明 13 6.1.8 HDFS中的路径 13 6.1.8 Hadoop相关命令 14 6.2 客户机提交作业到集群 14 6.2.1 客户机配置 14 6.2.2 一个测试例子WordCount 15 6.2.3 编写Hadoop应用程

3、序并在集群上运行 16 6.2.4 三种模式下编译运行Hadoop应用程序 16 6.2.5 提交多个作业到集群 18 附 程序 19 介绍 这是本人在完全分布式环境下在Cent-OS中配置Hadoop-0.19.1时的总结文档,但该文档也适合其他版本的Linux系统和目前各版本的Hadoop(Hadoop-0.20之后的版本配置文件hadoop-site.xml被拆分成了三个core-site.xml,hdfs-site.xml和mapred-site.xml,这里会说明0.20后的版本中如何配置这三个文件)。 Hadoop配置建议所有配置文件中使用主机名进行配置,并且机

4、器上应在防火墙中开启相应端口,并设置SSHD服务为开机启动,此外java环境变量可以在/etc/profile中配置。 0 集群网络环境介绍 集群包含三个节点:1个namenode,2个datanode,节点之间局域网连接,可以相互ping通。节点IP地址和主机名分布如下: 10.10.97.132 gc03vm12 namenode 10.10.97.142 gc04vm12 datanode01 10.10.97.144 gc04vm14 datanode02 所有节点均是Cent-OS系统,防火墙均禁用,sshd服务均开启并设置为开机启动。 所有节点上均创建

5、了一个hadoop用户,用户主目录是/home/hadoop。 所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。因为该目录用于安装hadoop,用户对其必须有rwx权限。(一般做法是root用户在/usr/local下创建hadoop目录,并修改该目录拥有者为nutch(chown –R nutch:nutch /usr/local/hadoop)。 1 /etc/hosts文件配置 (1)namenode节点上编辑/etc/hosts文件 将所有节点的名字和IP地址写入其中,写入如下内容,注意注释掉127.0.0.1行,保证内容如下:

6、 10.10.97.132 gc03vm12 10.10.97.142 gc04vm12 10.10.97.144 gc04vm14 # 127.0.0.1 centos54 localhost.localdomain localhost (2)将Namenode上的/etc/hosts文件复制到所有数据节点上,操作步骤如下: root用户登录namenode; 执行命令:scp /etc/hosts root@datanode ip:/etc/hosts 2 SSH无密码验证配置 Hadoop需要使用SSH协议,namenode将使用SSH协议

7、启动namenode和datanode进程,datanode向namenode传递心跳信息可能也是使用SSH协议,这是我认为的,还没有做深入了解,datanode之间可能也需要使用SSH协议。假若是,则需要配置使得所有节点之间可以相互SSH无密码登陆验证。下面给出了两种配置方式,用户可以选择第一种,若实验中出现问题可选择第二种进行尝试。 2.1 选择一:配置Namenode无密码登录所有Datanode (0)原理 Namenode作为客户端,要实现无密码公钥认证,连接到服务端datanode上时,需要在namenode上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到datan

8、ode上。当namenode通过ssh连接datanode时,datanode就会生成一个随机数并用namenode的公钥对随机数进行加密,并发送给namenode。namenode收到加密数之后再用私钥进行解密,并将解密数回传给datanode,datanode确认解密数无误之后就允许namenode进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端namenode公钥复制到datanode上。 所有机器上生成密码对,所有节点上执行以下命令: ssh-keygen -t rsa Generating public/private rsa key pai

9、r. Enter file in which to save the key (/home/ hadoop /.ssh/id_rsa): 默认路径 Enter passphrase (empty for no passphrase): 回车,空密码 Enter same passphrase again: Your identification has been saved in /home/ hadoop /.ssh/id_rsa. Your public key has been saved in /home/ hadoop /.ssh/id_rsa.pub. 这将在/h

10、ome/hadoop/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。 在namenode节点上做如下配置 cp id_rsa.pub authorized_keys namenode的公钥 使用SSH协议将namenode的公钥信息authorized_keys复制到所有DataNode的.ssh目录下。 scp authorized_keys data节点ip地址:/home/hadoop/.ssh 这样配置过后,namenode可以无密码登录所有datanode,可以通过命令 “ssh 节点ip地址”来验证。 配置完毕,在namenode

11、上执行“ssh 本机,所有数据节点”命令,因为ssh执行一次之后将不会再询问。 2.1选择二:配置所有节点之间SSH无密码验证 (0)原理 节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B上。当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。客户端A收到加密数之后再用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端A公钥复

12、制到B上。 因此如果要实现所有节点之间无密码公钥认证,则需要将所有节点的公钥都复制到所有节点上。 (1)所有机器上生成密码对 (a)所有节点用hadoop用户登陆,并执行以下命令,生成rsa密钥对: ssh-keygen -t rsa 这将在/home/hadoop/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。 (b)将所有datanode节点的公钥id_rsa.pub传送到namenode上: cp id_rsa.pub datanode01.id_rsa.pub scp datanode01.id_rsa.pub namenode节点ip地址

13、/home/hadoop/.ssh ...... cp id_rsa.pub datanoden.id_rsa.pub scp datanoden.id_rsa.pub namenode节点ip地址:/home/hadoop/.ssh (c)namenode节点上综合所有公钥(包括自身)并传送到所有节点上 cp id_rsa.pub authorized_keys 这是namenode自己的公钥 cat datanode01.id_rsa.pub >> authorized_keys ...... cat datanode0n.id_rsa.pub >> aut

14、horized_keys 然后使用SSH协议将所有公钥信息authorized_keys复制到所有DataNode的.ssh目录下 scp authorized_keys data节点ip地址:/home/hadoop/.ssh 这样配置过后,所有节点之间可以相互SSH无密码登陆,可以通过命令 “ssh 节点ip地址”来验证。 配置完毕,在namenode上执行“ssh 本机,所有数据节点”命令,因为ssh执行一次之后将不会再询问。 3 JDK安装和Java环境变量配置 3.1 安装 JDK 1.6 root用户登陆,在Namenode节点上新建文件夹/usr/prog

15、ram,下载JDK安装包jdk-6u13-linux-i586.bin,复制到目录/usr/ program下,在命令行进入该目录,执行命令“./ jdk-6u13-linux-i586.bin”,命令运行完毕,将在目录下生成文件夹jdk1.6.0_13,安装完毕。 安装完成后,修改/usr/program目录拥有着为nutch用户, Chown -R nutch:nutch /usr/program /usr/ program目录需要复制到所有数据节点上。 3.2 Java环境变量配置 root用户登陆,命令行中执行命令”vi /etc/profile”,并加入以下内容,配置

16、环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。 # set java environment export JAVA_HOME=/usr/program/jdk1.6.0_13/ export JRE_HOME=/usr/program/jdk1.6.0_13/jre export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH 保存并退出,执行以下命令使配置生效 chmod +x /et

17、c/profile source /etc/profile 配置完毕,在命令行中使用命令”java -version”可以判断是否成功。在hadoop用户下测试java –version,一样成功。 将Namenode上的/etc/profile复制到所有数据节点上。操作步骤如下: root用户登录namenode; 执行命令:scp /etc/profile root@datanode ip:/etc/profile 4 Hadoop集群配置 在namenode上执行: Hadoop用户登录。 下载hadoop-0.19.1,将其解压到/usr/local/ha

18、doop目录下,解压后目录形式是/usr/local/hadoop/hadoop-0.19.1。使用如下命令: tar zxvf hadoop-0.19.1.tar.gz (1)配置Hadoop的配置文件 (a)配置hadoop-env.sh $ vi nutch-1.0/conf/hadoop-env.sh # set java environment export JAVA_HOME=/usr/program/jdk1.6.0_13/ (b)配置conf/hadoop-site.xml Hadoop配置参数的含义请参考conf/Hadoop-default.xml

19、 Hadoop-0.20之后的版本请分别配置core-site.xml,hdfs-site.xml和mapred-site.xml三个配置文件,配置方法即将下面hadoop-site.xml文件中的三块参数分别复制到三个文件当中。

20、l--> fs.default.name hdfs://gc03vm12:9000 HDFS的URI,文件系统://namenode标识:端口号 hadoop.tmp.dir /usr/local/hadoop/hadooptmp namenode上本地的hadoop临时文件夹

21、n> dfs.name.dir /usr/local/hadoop/hdfs/name namenode上存储hdfs名字空间元数据 dfs.data.dir /usr/local/hadoop/hdfs/data

22、datanode上数据块的物理存储位置 dfs.replication 2 副本个数,不配置默认是3,应小于datanode机器数量 mapred.job.tracker gc03vm12:9001 <

23、description>jobtracker标识:端口号,不是URI mapred.local.dir /usr/local/hadoop/mapred/local tasktracker上执行mapreduce程序时的本地目录 mapred.system.dir /tmp/ha

24、doop/mapred/system 这个是hdfs中的目录,存储执行mr程序时的共享文件 (c)配置masters文件,加入namenode的主机名 gc03vm12 (d)配置slaves文件, 加入所有datanode的主机名 gc04vm12 gc04vm14 (2)复制配置好的各文件到所有数据节点上。 root用户下: scp /etc/hosts 数据节点ip地址:/etc/hosts scp /etc/p

25、rofile 数据节点ip地址:/etc/profile scp /usr/program 数据节点ip地址:/usr/program nutch用户下: scp /usr/local/hadoop 数据节点ip地址: /usr/local/ 5 Hadoop集群启动 Namenode执行: 格式化namenode,格式化后在namenode生成了hdfs/name文件夹 bin/hadoop namenode –format 启动hadoop所有进程, bin/start-all.sh(或者先后执行start-dfs.sh和start-mapreduce.sh)。

26、 可以通过以下启动日志看出,首先启动namenode,然后启动datanode1,datanode2,然后启动secondarynamenode。再启动jobtracker,然后启动tasktracker1,最后启动tasktracker2。 启动hadoop成功后,在namenode中生成了hadooptmp文件夹,在datanode中生成了hdfs文件夹和mapred文件夹。 namenode上用java自带的小工具jps查看进程 # jps 8383 JobTracker 8733 Jps 8312 SecondaryNameNode 8174 NameNode 每

27、个datanode上查看进程 # jps 7636 DataNode 7962 Jps 7749 TaskTracker 在namenode上查看集群状态 bin/hadoop dfsadmin –report Configured Capacity: 16030539776 (14.93 GB) Present Capacity: 7813902336 (7.28 GB) DFS Remaining: 7748620288 (7.22 GB) DFS Used: 65282048 (62.26 MB) DFS Used%: 0.84% --------------

28、 Datanodes available: 2 (2 total, 0 dead) Name: 10.10.97.142:50010 Decommission Status : Normal Configured Capacity: 8015269888 (7.46 GB) DFS Used: 32641024 (31.13 MB) Non DFS Used: 4364853248 (4.07 GB) DFS Remaining: 3617775616(3.37 GB) DFS Used%: 0.41%

29、 DFS Remaining%: 45.14% Last contact: Thu May 13 06:17:57 CST 2010 Name: 10.10.97.144:50010 Decommission Status : Normal Configured Capacity: 8015269888 (7.46 GB) DFS Used: 32641024 (31.13 MB) Non DFS Used: 3851784192 (3.59 GB) DFS Remaining: 4130844672(3.85 GB) DFS Used%: 0.41% DFS Remai

30、ning%: 51.54% Last contact: Thu May 13 06:17:59 CST 2010 Hadoop 的web 方式查看:http:// namenode ip地址:50070 Hadoop查看工作情况: http:// namenode ip地址:50030 6 Hadoop使用 Hadoop有两个重要的模块:MapReduce和HDFS,HDFS是一个分布式文件系统,用于存储数据,MapReduce是一个编程框架,Hadoop中运行的程序均是MapReduce作业,一个作业分为若干个Map任务和Reduce任务。 6.1 客户机与HDFS进

31、行交互 6.1.1 客户机配置 可以查看HDFS中的数据,向HDFS中写入数据。 (1)选择一台机器,该机器可以是Hadoop集群中的节点,也可以是集群之外的机器。下面说明在集群之外的客户机上如何操作与HDFS交互,集群之内的节点省去配置过程。 (2)集群之外的机器请保证和Hadoop集群是网络连通的,并且安装了Hadoop(解压安装包即可)并在conf/hadoop-site.xml中做了相关配置,至少配置如下: fs.default.name

32、ame> hdfs://gc04vm12:9000 mapred.job.tracker gc03vm12:9001 jobtracker标识:端口号,不是URI (3)按照

33、以上步骤配置完成后,即可在客户机的命令行中执行命令,查看HDFS文件系统。 6.1.2 列出HDFS根目录/下的文件 [root@gc03vm12 nutch-1.0]# bin/hadoop dfs -ls / Found 3 items drwxr-xr-x - hadoop supergroup 0 2010-05-21 00:42 /tmp drwxr-xr-x - hadoop supergroup 0 2010-05-21 00:53 /user drwxr-xr-x - hadoop supergroup

34、 0 2010-05-21 00:55 /usr 第一列是目录权限,第二列的hadoop是目录拥有者,第三列是组名,第4列是目录大小(单位是B),第5列是目录的绝对路径。这里表示/目录下有三个目录。这里的用户hadoop是安装hadoop的用户,是超级用户,相当于Linux操作系统的root用户,组supergroup相当于root用户组。 6.1.3 列出当前用户主目录下的文件 Hadoop默认当前HDFS中的用户就是当前登录客户机的用户。 [root@gc03vm12 nutch-1.0]# bin/hadoop dfs –ls ls: Cannot access .: No

35、 such file or directory. 提示不能访问时因为hdfs中没有/user/root目录。 注意:这里的当前用户主目录是客户机中当前登录用户的主目录,即HDFS中的“/user/用户名”目录,由于当前是root用户登录,命令“bin/hadoop dfs –ls”访问的是HDFS中的“/user/root目录”。此时若/user/root目录不存在,则会出现上面的提示。 由于HDFS中不存在root用户,所以客户机当前登录用户无法向HDFS中写入数据,因为对HDFS中的所有目录没有写权限,只有r读权限。要使当前用户能够向HDFS中写入数据,必须在HDFS中创建ro

36、ot用户并且创建相应目录,赋予相关权限。 总之,HDFS的用户权限和Linux一样重要。 6.1.4 HDFS用户管理 创建HDFS用户需要使用hadoop用户登录客户机器,并且执行hadoop相关命令。由于Hadoop默认当前HDFS中的用户就是当前登录客户机的用户,所以当前HDFS用户即为Hadoop超级用户hadoop。 Hadoop似乎没有提供创建用户的命令,但要在HDFS中创建用户和用户组可以这样做。 (i)Hadoop超级用户hadoop在hdfs中创建目录/user/root, 即 bin/hadoop dfs -mkdir /user/root (ii)更改/us

37、er/root目录所属用户和组, 即bin/hadoop dfs -chown -R root:root /user/root,命令执行完毕Hadoop将默认创建有用户root,用户组root。 注意:若此处没有指定组,则默认将root用户分配到supergroup组, bin/hadoop dfs -chown -R root /user/root (ii)这样就相当于在hdfs中创建了用户root,组root。并且当前客户机的root用户对hdfs中的/user/root目录进行rwx。 6.1.5 复制本地数据到HDFS中 [root@gc03vm12 nutch-1.0]#

38、 bin/hadoop dfs –copyFromLocal /local/x /user/root/ 执行以上命令即能将本地数据上传到HDFS中,上传的文件将会被分块,并且数据块将物理存储在集群数据节点的hadoop-site.xml文件中的dfs.data.dir参数指定的目录下,用户可以登录数据节点查看相应数据块。 HDFS中一个文件对应若干数据块,如果文件小于块大小(默认64M),则将会存储到一个块中,块大小即文件大小。若文件很大,则分为多个块存储。 6.1.6 数据副本说明 Hadoop-site.xml文件中的dfs.replication参数指定了数据块的副本

39、数量。一个文件被分为若干数据块,其所有数据块副本的名字和元数据都是一样的,例如下图显示了上传一个目录(包含两个小文件)到HDFS后数据节点中数据块情况: 图 节点一上的副本 图 节点二上的副本 6.1.7 hadoop-site.xml参数说明 (1) hadoop.tmp.dir 该参数默认值是“/tmp/hadoop-{当前登录用户名}”。 它是本地路径,当第一次启动Hadoop集群进程时在namenode节点的本地创建该目录,其作用是存储相关临时文件。 (2)mapred.system.dir 该参数默认值是${hadoop.tmp.dir}/mapred/sy

40、stem,它所表示的目录是hdfs中的路径,是相对于dfs.default.name的路径,即它在hdfs中的绝对路径是{$dfs.default.name}/{$mapred.system.dir}。 该参数指定的目录的作用是当作业运行时,存储作业相关文件,供tasktracker节点共享。 一般hdfs系统中/目录下可以看到该参数指定的目录,如 [nutch@gc04vm12 nutch-1.0]$ bin/hadoop dfs -lsr / drwxr-xr-x - nutch supergroup /tmp drwxr-xr-x - nutch supergr

41、oup /tmp/hadoop drwxr-xr-x - nutch supergroup /tmp/hadoop/mapred drwx-wx-wx - nutch supergroup /tmp/hadoop/mapred/system (即此) 其他参数参见hadoop-default.xml中的说明。 6.1.8 HDFS中的路径 首先请查阅资料,把握URI的概念。在HDFS中,例如下面这些形式均是URI(注意不是URL,URI概念比URL更广)。例如file:///,hdfs://x/y/z,/x/y/z,z。 HDFS路径应该可以分为

42、三种:绝对URI路径,即 hdfs://namenode:端口/xxxx/xxxx 这种形式;HDFS绝对路径 ,例如/user或者///user,注意使用/或者///表示根目录,而不能使用//;HDFS相对路径,例如x,此路径往往是相对于当前用户主目录/user/用户名而言,例如x对应的HDFS绝对路径是/user/hadoop/x。 Hadoop-site.xml中参数mapred.system.dir的值所指的路径是HDFS的绝对路径,它和fs.default.name参数一起构成了绝对URI,例如参数值/tmp/hadoop/mapred/system最终将对应的是绝对URI:

43、 hdfs://gc04vm12:9000/tmp/hadoop/mapred/system 无论使用何种路径,均能查看HDFS中的数据,例如: 6.1.8 Hadoop相关命令 Hadoop提供一系列的命令,在bin中,例如bin/hadoop fs –x;bin/hadoop namenode –x等等。其中有些命令只能在namenode上执行。 bin下还有一些控制脚本,例如start-all.sh、start-mapred.sh、start-dfs.sh等等。数据节点上运行start-all.sh将会只启动本节点上的进程,如datanode、tasktracker

44、 6.2 客户机提交作业到集群 6.2.1 客户机配置 可以在客户机上向Hadoop集群提交作业。 (1)选择一台机器,该机器可以是Hadoop集群中的节点,也可以是集群之外的机器。下面说明在集群之外的客户机上如何向hadoop提交作业,集群之内的节点省去配置过程。 (2)集群之外的机器请保证和Hadoop集群是网络连通的,并且安装了Hadoop(解压安装包即可)并在conf/hadoop-site.xml中做了相关配置,至少配置如下: fs.de

45、fault.name hdfs://gc04vm12:9000 mapred.job.tracker gc03vm12:9001 jobtracker标识:端口号,不是URI

46、on> (3)按照以上步骤配置完成后,即可在客户机的命令行中执行命令,向hadoop提交作业。 6.2.2 一个测试例子WordCount 计算输入文本中词语数量的程序WordCount在Hadoop主目录下的java程序包hadoop-0.19.1-examples.jar中,执行步骤如下: (1)上传数据到HDFS中 bin/hadoop fs -mkdir mytest bin/hadoop fs -copyFromLocal /home/hadoop/mytest/input1 bin/hadoop fs -copyFromLocal /home/hadoop/

47、mytest/input2 (2)执行命令,提交作业 bin/hadoop jar hadoop-0.19.1-examples.jar wordcount mytest/* output 命令执行完毕,在页面http://namenodeip:50030/中能够看到作业执行情况。 (3)程序输出 程序将统计mytest目录下的所有文本文件中词语的数量,并将结果输出到hdfs的output目录下的part-00000文件中。这里的output目录是程序生成的目录,程序运行前不可存在。执行以下命令可以查看结果。 bin/hadoop fs -cat output/part-00000

48、 6.2.3 编写Hadoop应用程序并在集群上运行 这里介绍一个向HDFS中写入数据的例子(注意不是MR程序)来说明编写Hadoop应用程序并放到集群上运行的步骤。 (1)客户端编写应用程序并编译运行,进行测试。 编写程序一般需要引入hadoop相关jar包或者直接使用hadoop整个程序包,相关代码见附录。 (2)打包应用程序 在eclipse中打包成jar文件存储到相应目录下,例如/hadoop/ jarseclipse/dfsOperator.jar。 (3)上传数据到HDFS bin/hadoop fs –copyFromLocal local dst 本实例中不

49、需要上传数据,一般的程序都涉及输入数据。 (4)执行应用程序 bin/hadoop jar x.jar jar包中主类名 [输入参数] [输出参数] 这里使用的命令是: bin/hadoop jar ~/jarseclipse/dfsOperator.jar DFSOperator 6.2.4 三种模式下编译运行Hadoop应用程序 集群是完全分布式环境,Hadoop的MR程序将以作业的形式提交到集群中运行。我们在客户端编写Hadoop应用程序时一般是在伪分布式模式或单击模式下进行编译,然后将编译无误的程序打成包提交到Hadoop集群中,当然我们仍可直接让程序在Hado

50、op集群中编译。 (1)让Hadoop应用程序在直接在集群中编译 将hadoop整个包导入eclipse中,配置hadoop-site.xml文件如下: fs.default.name hdfs://gc04vm12:9000

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服