Linux下Hadoop的分布式配置和使用.doc
《Linux下Hadoop的分布式配置和使用.doc》由会员分享,可在线阅读,更多相关《Linux下Hadoop的分布式配置和使用.doc(20页珍藏版)》请在咨信网上搜索。
1、Linux下Hadoop的分布式配置和使用Linux下Hadoop分布式配置和使用(适用于0.20及以后版本)詹坤林 2010年5月目 录介绍20 集群网络环境介绍21 /etc/hosts文件配置22 SSH无密码验证配置32.1 选择一:配置Namenode无密码登录所有Datanode32.1选择二:配置所有节点之间SSH无密码验证43 JDK安装和Java环境变量配置53.1 安装 JDK 1.653.2 Java环境变量配置54 Hadoop集群配置55 Hadoop集群启动86 Hadoop使用106.1 客户机与HDFS进行交互106.1.1 客户机配置106.1.2 列出HDF
2、S根目录/下的文件116.1.3 列出当前用户主目录下的文件116.1.4 HDFS用户管理116.1.5 复制本地数据到HDFS中126.1.6 数据副本说明126.1.7 hadoop-site.xml参数说明136.1.8 HDFS中的路径136.1.8 Hadoop相关命令146.2 客户机提交作业到集群146.2.1 客户机配置146.2.2 一个测试例子WordCount156.2.3 编写Hadoop应用程序并在集群上运行166.2.4 三种模式下编译运行Hadoop应用程序166.2.5 提交多个作业到集群18附 程序19介绍这是本人在完全分布式环境下在Cent-OS中配置Ha
3、doop-0.19.1时的总结文档,但该文档也适合其他版本的Linux系统和目前各版本的Hadoop(Hadoop-0.20之后的版本配置文件hadoop-site.xml被拆分成了三个core-site.xml,hdfs-site.xml和mapred-site.xml,这里会说明0.20后的版本中如何配置这三个文件)。Hadoop配置建议所有配置文件中使用主机名进行配置,并且机器上应在防火墙中开启相应端口,并设置SSHD服务为开机启动,此外java环境变量可以在/etc/profile中配置。0 集群网络环境介绍集群包含三个节点:1个namenode,2个datanode,节点之间局域网连
4、接,可以相互ping通。节点IP地址和主机名分布如下:10.10.97.132 gc03vm12 namenode 10.10.97.142 gc04vm12 datanode0110.10.97.144 gc04vm14 datanode02所有节点均是Cent-OS系统,防火墙均禁用,sshd服务均开启并设置为开机启动。所有节点上均创建了一个hadoop用户,用户主目录是/home/hadoop。所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。因为该目录用于安装hadoop,用户对其必须有rwx权限。(一般做法是root用户在/usr/local
5、下创建hadoop目录,并修改该目录拥有者为nutch(chown R nutch:nutch /usr/local/hadoop)。1 /etc/hosts文件配置(1)namenode节点上编辑/etc/hosts文件将所有节点的名字和IP地址写入其中,写入如下内容,注意注释掉127.0.0.1行,保证内容如下: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/host
6、s文件复制到所有数据节点上,操作步骤如下:root用户登录namenode;执行命令:scp /etc/hosts rootdatanode ip:/etc/hosts2 SSH无密码验证配置Hadoop需要使用SSH协议,namenode将使用SSH协议启动namenode和datanode进程,datanode向namenode传递心跳信息可能也是使用SSH协议,这是我认为的,还没有做深入了解,datanode之间可能也需要使用SSH协议。假若是,则需要配置使得所有节点之间可以相互SSH无密码登陆验证。下面给出了两种配置方式,用户可以选择第一种,若实验中出现问题可选择第二种进行尝试。2.1
7、 选择一:配置Namenode无密码登录所有Datanode(0)原理Namenode作为客户端,要实现无密码公钥认证,连接到服务端datanode上时,需要在namenode上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到datanode上。当namenode通过ssh连接datanode时,datanode就会生成一个随机数并用namenode的公钥对随机数进行加密,并发送给namenode。namenode收到加密数之后再用私钥进行解密,并将解密数回传给datanode,datanode确认解密数无误之后就允许namenode进行连接了。这就是一个公钥认证过程,其间不需要用户手
8、工输入密码。重要过程是将客户端namenode公钥复制到datanode上。所有机器上生成密码对,所有节点上执行以下命令:ssh-keygen -t rsa Generating public/private rsa key pair.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 save
9、d in /home/ hadoop /.ssh/id_rsa.Your public key has been saved in /home/ hadoop /.ssh/id_rsa.pub.这将在/home/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地址:/hom
10、e/hadoop/.ssh 这样配置过后,namenode可以无密码登录所有datanode,可以通过命令“ssh 节点ip地址”来验证。配置完毕,在namenode上执行“ssh 本机,所有数据节点”命令,因为ssh执行一次之后将不会再询问。2.1选择二:配置所有节点之间SSH无密码验证(0)原理节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B上。当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。客户端A收到加密数之后再
11、用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端A公钥复制到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 d
12、atanode01.id_rsa.pubscp datanode01.id_rsa.pub namenode节点ip地址:/home/hadoop/.ssh .cp id_rsa.pub datanoden.id_rsa.pubscp 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 da
13、tanode0n.id_rsa.pub authorized_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.6root用户登陆,在Namenode节点上新建文件夹/usr/
14、program,下载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”,并加入以下内容,配置环境变量(注意/e
15、tc/profile这个文件很重要,后面Hadoop的配置还会用到)。# set java environmentexport JAVA_HOME=/usr/program/jdk1.6.0_13/export JRE_HOME=/usr/program/jdk1.6.0_13/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH保存并退出,执行以下命令使配置生效chmod +x /etc/profilesource /etc/pro
16、file配置完毕,在命令行中使用命令”java -version”可以判断是否成功。在hadoop用户下测试java version,一样成功。将Namenode上的/etc/profile复制到所有数据节点上。操作步骤如下:root用户登录namenode;执行命令:scp /etc/profile rootdatanode ip:/etc/profile4 Hadoop集群配置在namenode上执行:Hadoop用户登录。下载hadoop-0.19.1,将其解压到/usr/local/hadoop目录下,解压后目录形式是/usr/local/hadoop/hadoop-0.19.1。使用
17、如下命令:tar zxvf hadoop-0.19.1.tar.gz(1)配置Hadoop的配置文件 (a)配置hadoop-env.sh $ vi nutch-1.0/conf/hadoop-env.sh# set java environmentexport JAVA_HOME=/usr/program/jdk1.6.0_13/(b)配置conf/hadoop-site.xmlHadoop配置参数的含义请参考conf/Hadoop-default.xml。Hadoop-0.20之后的版本请分别配置core-site.xml,hdfs-site.xml和mapred-site.xml三个配置
18、文件,配置方法即将下面hadoop-site.xml文件中的三块参数分别复制到三个文件当中。fs.default.namehdfs:/gc03vm12:9000HDFS的URI,文件系统:/namenode标识:端口号hadoop.tmp.dir/usr/local/hadoop/hadooptmp namenode上本地的hadoop临时文件夹 dfs.name.dir /usr/local/hadoop/hdfs/name namenode上存储hdfs名字空间元数据 dfs.data.dir /usr/local/hadoop/hdfs/data datanode上数据块的物理存储位置
19、dfs.replication 2副本个数,不配置默认是3,应小于datanode机器数量 mapred.job.trackergc03vm12:9001jobtracker标识:端口号,不是URI mapred.local.dir /usr/local/hadoop/mapred/local tasktracker上执行mapreduce程序时的本地目录 mapred.system.dir /tmp/hadoop/mapred/system 这个是hdfs中的目录,存储执行mr程序时的共享文件 (c)配置masters文件,加入namenode的主机名gc03vm12 (d)配置slaves
20、文件, 加入所有datanode的主机名gc04vm12gc04vm14(2)复制配置好的各文件到所有数据节点上。root用户下:scp /etc/hosts 数据节点ip地址:/etc/hostsscp /etc/profile 数据节点ip地址:/etc/profilescp /usr/program 数据节点ip地址:/usr/programnutch用户下:scp /usr/local/hadoop 数据节点ip地址: /usr/local/5 Hadoop集群启动Namenode执行:格式化namenode,格式化后在namenode生成了hdfs/name文件夹bin/hadoop
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux Hadoop 分布式 配置 使用
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。