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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LinuxX64下Hadoop分布式配置和使用0319.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LinuxX64下Hadoop分布式配置和使用0319.docx

1、LinuxX64下Hadoop分布式配置和使用0319Hadoop0.20.2在Linux X64下的分布式配置和使用 2013年3月郭运凯目 录介绍 21 集群网络环境介绍及快速部署 22 SSH无密码验证配置 62.1配置所有节点之间SSH无密码验证 63 JDK安装和Java环境变量配置 103.1 安装 JDK 1.6 103.2 Java环境变量配置 114 Hadoop集群配置 135 Hadoop集群启动 176 Hadoop使用 226.1 客户机与HDFS进行交互 226.1.1 客户机配置 226.1.2 列出HDFS根目录/下的文件 226.1.3 HDFS用户管理 23

2、6.1.5 复制本地数据到HDFS中 236.1.6 数据副本说明 236.1.7 hadoop-site.xml参数说明 246.1.8 HDFS中的路径 256.1.8 Hadoop相关命令 256.2 客户机提交作业到集群 256.2.1 客户机配置 256.2.2 一个测试例子WordCount 266.2.3 编写Hadoop应用程序并在集群上运行 296.2.4 三种模式下编译运行Hadoop应用程序 296.2.5 提交多个作业到集群 31附录:Hadoop安装常见错误 31介绍 这是利用Vmware 9.0(VMware-workstation-full-9.0.0-81238

3、8,已下载(注册机)在一台服务器上搭建的分布式环境,操作系统CentOS 6.3 X64中配置Hadoop-0.20.2时的总结文档。 Hadoop配置建议所有配置文件中使用主机名进行配置,并且机器上应在防火墙中开启相应端口,并设置SSHD服务为开机启动,此外java环境变量可以在/etc/profile中配置。1 集群网络环境介绍及快速部署 集群包含五个节点:1个namenode,4个datanode,节点之间局域网连接,可以相互ping通。所有节点均是Centos 6.3 64位系统,防火墙均禁用,sshd服务均开启并设置为开机启动。a) 首先在VMware中安装好一台Centos 6.3

4、,安装时创建hadoop用户。假设虚拟机的名字为NameNodeb) 关闭虚拟机,把NameNode文件夹,拷贝4份,并命名为DataNode1,.,DataNode4c) 用VMware打开每个DateNode,设置其虚拟机的名字d) 打开操作系统,当弹出对话框时,选择“I copy it”e) 打开每个虚拟机,查看ip地址ifconfig按照以上各虚拟机结果,IP地址规划如下郭10.88.106.187namenode10.88.106.188datanode110.88.106.189datanode210.88.106.190datanode310.88.106.191datanode

5、4王192.168.1.114namenode192.168.1.115datanode1192.168.1.116datanode2192.168.1.117datanode3有时候,会使用VMware虚拟机的的克隆功能,快速的复制已安装好的系统。可是克隆完之后,ifconfig会发现没有eth0网卡。问题解决方法:1、 编辑/etc/udev/rules.d/70-persistent-net.rules文件把NAME=eth0的那行配置注释掉或者删掉,把NAME=eth1的修改成NAME=eth0,修改后如下:2、 更改网卡配置文件,/etc/sysconfig/network-scri

6、pts/ifcfg-eth0将HWADDR的值修改为/etc/udev/rules.d/70-persistent-net.rules文件中的新值,修改后如下:3、 修改/etc/sysconfig/network,更改主机名4、 重启系统,reboot,再次ifconfig查看网卡情况5、 同时需注意IP地址尽量设置成静态iP防止IP变动。配置文件位于:/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.3NETMASK=255.255.255.0GATE

7、WAY=192.168.0.1使IP地址生效:/sbin/ifdown eth0/sbin/ifup eth0配置dns解析echo nameserver 211.98.1.28 /etc/resolv.conf通知网关更新信息:/etc/init.d/network restartf) 配置NameNode第一步,检查机器名#hostname如发现不对,则修改,root用户登陆,修改命令如下# vim /etc/sysconfig/networkNETWORKING=yesHOSTNAME=NameNode依次对每个节点进行处理,修改完之后,重启系统 #rebootg) 修改/etc/hos

8、tsroot用户vim /etc/sysconfig/network(1)namenode节点上编辑/etc/hosts文件将所有节点的名字和IP地址写入其中,写入如下内容,注意注释掉127.0.0.1行,保证内容如下:10.88.106.187 namenode10.88.106.188 datanode110.88.106.189 datanode210.88.106.190 datanode310.88.106.191 datanode4# 127.0.0.1 centos63 localhost.localdomain localhost(2)将Namenode上的/etc/hosts

9、文件复制到所有数据节点上,操作步骤如下: root用户登录namenode;执行命令: scp /etc/hosts root10.88.106.188:/etc/hostsscp /etc/hosts root10.88.106.189:/etc/hostsscp /etc/hosts root10.88.106.190:/etc/hostsscp /etc/hosts root10.88.106.191:/etc/hosts节点分别检查 cat /etc/hostsh) 规划系统目录完整路径说明/usr/local/hadoophadoop的主目录/home/hadoop/tmp临时目录/

10、home/hadoop/hdfs/namenamenode上存储hdfs名字空间元数据 /home/hadoop/hdfs/datadatanode上数据块的物理存储位置/home/hadoop/mapred/localtasktracker上执行mapreduce程序时的本地目录/home/hadoop/mapred/system这个是hdfs中的目录,存储执行mr程序时的共享文件至于这里为什么在/usr/local下建立,解释如下/usr 文件系统 /usr 文件系统经常很大,因为所有程序安装在这里. /usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他

11、东西在/usr/local 下.这样可能在升级新版系统或新distribution时无须重新安装全部程序./usr/local 本地安装的软件和其他文件放在这里. 小贴士:创建目录:mkdir(make directories)功能说明:建立目录 语法:mkdir -p-help-version-m 目录名称补充说明:mkdir可建立目录并同时设置目录的权限。参数:-m或mode 建立目录时同时设置目录的权限。-p或parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。例:mkdir test开始建立目录:在NameNode下,root用户rootNameNode # m

12、kdir -p /usr/local/hadoop/tmprootNameNode # mkdir -p /home/hadoop/hdfs/namerootNameNode # mkdir -p /home/hadoop/hdfs/datarootNameNode # mkdir -p /home/hadoop/mapred/localrootNameNode # mkdir -p /home/hadoop/mapred/system验证一下可以直接进入tmp目录,不用先建立上级目录修改目录/usr/local/hadoop的拥有者(因为该目录用于安装hadoop,用户对其必须有rwx权限。

13、)chown -R hadoop:hadoop /usr/local/hadoop修改前修改后创建完毕基础目录后,下一步就是设置SSH无密码验证,以方便hadoop对集群进行管理。2 SSH无密码验证配置 Hadoop需要使用SSH协议,namenode将使用SSH协议启动namenode和datanode进程,datanode向namenode传递心跳信息(三秒一次侦测节点是否活着)可能也是使用SSH协议,这是我认为的,还没有做深入了解,datanode之间可能也需要使用SSH协议。假若是,则需要配置使得所有节点之间可以相互SSH无密码登陆验证。2.1配置所有节点之间SSH无密码验证(0)原

14、理节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B上。当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。客户端A收到加密数之后再用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端A公钥复制到B上。因此如果要实现所有节点之间无密码公钥认证,则需要将所有节点的公钥都复制到所有节点上。(1)所有机器上生成密码对(a)所有节点用hado

15、op用户登陆,并执行以下命令,生成rsa密钥对:ssh-keygen -t rsa 这将在/home/hadoop/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。# su hadoop 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 passph

16、rase 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.这将在/home/hadoop/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。(b)将所有datanode节点的公钥id_rsa.pub传送到namenode上:DataNode1上执行命令:scp /home/hadoop/.ssh/id_rsa.pub hadoopNameNode:/

17、home/hadoop/.ssh/ id_rsa.pub.datanode1.DataNodeN上执行命令:scp /home/hadoop/.ssh/id_rsa.pub hadoopNameNode:/home/hadoop/.ssh/ id_rsa.pub.datanodeNDataNode1DataNode2DataNode3DataNode4检查一下是否都已传输过来各个数据节点的公钥已经传输过来。 (c)namenode节点上综合所有公钥(包括自身)并传送到所有节点上hadoopNameNode .ssh$ cat id_rsa.pub authorized_keys 这是namen

18、ode自己的公钥hadoopNameNode .ssh$ cat id_rsa.pub.datanode1 authorized_keyshadoopNameNode .ssh$ cat id_rsa.pub.datanode2 authorized_keyshadoopNameNode .ssh$ cat id_rsa.pub.datanode3 authorized_keyshadoopNameNode .ssh$ cat id_rsa.pub.datanode4 authorized_keys chmod 644 /.ssh/authorized_keys使用SSH协议将namenode

19、的公钥信息authorized_keys复制到所有DataNode的.ssh目录下。scp authorized_keys data节点ip地址:/home/hadoop/.ssh scp /.ssh/authorized_keys hadoopDataNode1:/home/hadoop/.ssh/authorized_keys scp /.ssh/authorized_keys hadoop DataNode2:/home/hadoop/.ssh/ authorized_keys scp /.ssh/authorized_keys hadoop DataNode3:/home/hadoop

20、/.ssh/ authorized_keys scp /.ssh/authorized_keys hadoop DataNode4:/home/hadoop/.ssh/ authorized_keys 从这里就可以看到,当配置好hosts之后,就可以直接以机器名来访问各个机器,不用再记忆各个机器的具体IP地址,当集群中机器很多且IP不连续时,就发挥出威力来了。从上图可以看到,将authorized_keys分发给各个节点之后,可以直接ssh登录,不再需要密码。 这样配置过后,namenode可以无密码登录所有datanode,可以通过命令“ssh DataNode1(2,3,4)”来验证。 配

21、置完毕,在namenode上执行“ssh NameNode,所有数据节点”命令,因为ssh执行一次之后将不会再询问。在各个DataNode上也进行“ssh NameNode,所有数据节点”命令。至此,所有的节点都能相互访问,下一步开始配置jdk3 JDK安装和Java环境变量配置3.1 安装 JDK 1.61.下载JDK。 选定linux环境版本,下载到的文件是:jdk-6u41-linux-x64.bin 2Namenode节点以root用户创建JDK安装目录。 在Linux系统硬盘系统文件夹usr/local下创建一个文件夹Java。 命令:mkdir P /usr/local/java

22、3复制JDK安装包到系统指定文件夹。 把下载的安装文件(jdk-6u41-linux-x64.bin )拷到linux路径/usr/local/java下。 4给安装文件赋予权限。 a).进入目录,命令:cd /usr/local/javab).赋予权限,命令:chmod +x jdk-6u41-linux-x64.bin (如果因权限问题执行失败,则加上su, 即su chmod u+x jdk-6u41-linux-x64.bin ) 5安装JDK。 开始安装,在控制台执行命令: ./ jdk-6u41-linux-x64.bin (如果因权限问题执行失败,则加上su , 即sud./jd

23、k-6u41-linux-x64.bin ) 文件会被安装到当前目录 /usr/local/java/jdk1.6.0_41删除安装文件rm jdk-6u41-linux-x64.bin安装完成后,修改/usr/local/java目录拥有着为hadoop用户,chown -R hadoop:hadoop /usr/local/java然后将 /usr/local/java目录需要复制到所有数据节点上。scp-r/usr/local/javarootdatanode1:/usr/local/ 3.2 Java环境变量配置 root用户登陆,命令行中执行命令”vim /etc/profile”,

24、并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。# set java environment#set java environment JAVA_HOME=/usr/local/java/jdk1.6.0_41PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME CLASSPATH PATH保存并退出,执行以下命令使配置生效chmod +x /etc/profilesource /etc

25、/profile 配置完毕,在命令行中使用命令“java -version”可以判断是否成功。在hadoop用户下测试java version,一样成功。a).输入命令打印三个环境变量的值: echo $JAVA_HOME echo $CLASSPATH echo $PATH b).正确的结果如下: rootNameNode # echo $JAVA_HOME/usr/local/java/jdk1.6.0_41rootNameNode # echo $CLASSPATH .:/usr/local/java/jdk1.6.0_41/lib/dt.jar:/usr/local/java/jdk1

26、.6.0_41/lib/tools.jarrootNameNode # echo $PATH /usr/local/java/jdk1.6.0_41/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binrootNameNode # 将Namenode上的/etc/profile复制到所有数据节点上。操作步骤如下: root用户登录namenode;执行命令:scp /etc/profile root(datanode1):/etc/profilescp /

27、etc/profile root(datanoden):/etc/profile并在各个节点执行source /etc/profile使其生效4 Hadoop集群配置 在namenode上执行: Hadoop用户登录。下载hadoop-0.20.2,将其解压到/usr/local/hadoop目录下,解压后目录形式是/usr/local/hadoop/ hadoop-0.20.2。使用如下命令: tar zxvf hadoop-0.20.2.tar.gz (1)配置Hadoop的配置文件 (a)root下用户配置hadoop-env.sh $ vim /usr/local/hadoop/had

28、oop-0.20.2/conf/hadoop-env.sh# set java environmentexport JAVA_HOME=/usr/local/java/jdk1.6.0_41/export HADOOP_HOME_WARN_SUPPRESS=1export HADOOP_CLASSPATH=/usr/local/hadoop/hadoop-0.20.2:/usr/local/hadoop/hadoop-0.20.2/lib(b)root用户配置/etc/profile#set java enviromentexport HADOOP_HOME=/usr/local/hadoop

29、/hadoop-0.20.2export HADOOP_HOME_WARN_SUPPRESS=1JAVA_HOME=/usr/local/java/jdk1.6.0_41JRE_HOME=/usr/local/java/jdk1.6.0_41/jrePATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOME CLASSPATH PATH修改完,各个节点重启/etc/profilerootName

30、Node # source /etc/profile(c)配置/usr/local/hadoop/hadoop-0.20.2 /conf/hadoop-site.xmlHadoop-0.20.2之后的版本请分别配置core-site.xml,hdfs-site.xml和mapred-site.xml三个配置文件。配置文件名(xml)字段名字段值说明core-sitefs.default.namehdfs:/NameNode:9000hadoop.tmp.dir/-home/hadoop/tmp临时目录hdfs-sitedfs.name.dir/ home /hadoop/hdfs/namenamenode上存储hdfs名字空间元数据 dfs.data.dirhome /hadoop/hdfs/datadatanode上数据块的物理存储位置dfs.replication3副本个数,不配置默认是3,应小于datanode机器数量mapred-site

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1