设为首页 收藏本站
查看: 3798|回复: 0

[经验分享] hadoop2.7完全分布式集群搭建以及任务测试

[复制链接]

尚未签到

发表于 2018-10-30 08:02:55 | 显示全部楼层 |阅读模式
  要想深入的学习hadoop数据分析技术,首要的任务是必须要将hadoop集群环境搭建起来,本文主要讲述如何搭建一套hadoop完全分布式集群环境。
  环境配置:2台64位的redhat6.5 +  1台64位centos6.9 + Hadoop + java7
  一、先配置服务器的主机名
  Namenode节点对应的主机名为master
  Datanode节点对应的主机名分别为node1、node2
  1、 在每一台服务器上执行vim /etc/hosts, 先删除hosts里面的内容,然后追加以下内容:
  192.168.15.135 master 172.30.25.165 node1 172.30.25.166 node2
  2、 在每一台服务器上执行vim  /etc/sysconfig/network,修改红色部分的内容,对应上面所说的hostname,对于master节点那么hostname就为master
  NETWORKING=yes HOSTNAME= master NETWORKING_IPV6=yes IPV6_AUTOCONF=no
  类似的,在node1服务器节点上应该为:
  NETWORKING=yes HOSTNAME= node1 NETWORKING_IPV6=yes IPV6_AUTOCONF=no
  类似的,在node2服务器节点上应该为:
  NETWORKING=yes HOSTNAME= node2 NETWORKING_IPV6=yes IPV6_AUTOCONF=no
  这两步的作用很关键,如果配置不成功,进行分布式计算的时候有可能找不到主机名
  二、安装SSH,并让master免验证登陆自身服务器、节点服务器
  1、 执行下面命令,让master节点能够免验证登陆自身服务器
  ssh-keygen -t dsa -P'' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys exportHADOOP\_PREFIX=/usr/local/hadoop
  HADOOP_PREFIX表示自己安装的hadoop路径
  2、 让主结点(master)能通过SSH免密码登录两个子结点(slave)
  为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:
  在node1上执行
  scp root@master:~/.ssh/id_dsa.pub ~/.ssh/master_dsa.pub cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys
  在node2上执行
  scp root@master:~/.ssh/id_dsa.pub ~/.ssh/master_dsa.pub cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys
  如上过程显示了node1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,这一过程需要密码验证。接着,将master结点的公
  钥文件追加至authorized_keys文件中,通过这步操作,如果不出问题,master结点就可以通过ssh远程免密码连接node1结点了。在master结点中操作如:

  当然值得注意的是:首次登陆是需要确认的,node1结点首次连接时需要,“YES”确认连接,这意味着master结点连接node1结点时需要人工询问,无法自动连接,输入yes后成功接入,紧接着注销退出至master结点。要实现ssh免密码连接至其它结点,还差一步,只需要再执行一遍ssh node1,如果没有要求你输入”yes”,就算成功了。
  三、下载并解压hadoop安装包,配置hadoop
  1、 关于安装包的下载就不多说了,不过可以提一下目前我使用的版本为hadoop-2.7.1
  2、 配置namenode,修改site文件
  下面开始修改hadoop的配置文件了,即各种site文件,文件存放在etc/Hadoop/下,主要配置core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml这三个文件。
  这里我只把我的实例贴出来,经供参考,更多详细配置请参照官方文档
  core-site.xml:
    fs.defaultFS hdfs://master:9000  
  hdfs-site.xml:
    dfs.replication 1   dfs.namenode.secondary.http-address master:9001  
  mapred-site.xml:
    mapreduce.framework.name yarn   mapreduce.jobhistory.address master:10020   mapreduce.jobhistory.webapp.address master:19888  
  yarn-site.xml:
    yarn.nodemanager.aux-services mapreduce_shuffle   yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler   yarn.resourcemanager.address master:8032   yarn.resourcemanager.scheduler.address master:8030   yarn.resourcemanager.resource-tracker.address master:8031   yarn.resourcemanager.admin.address master:8033   yarn.resourcemanager.webapp.address master:8088  
  3、 配置namenode,修改env环境变量文件
  配置之前要说的话:你必须确保你已经安装了java6或者java7,并且java的环境变量已经配置好,由于本文的重点不在此,故不详细说明,我系统java的环境变量为/usr/java/jdk1.7.0_71
  所以讲hadoop-env.sh、mapred-env.sh、yarn-env.sh这几个文件中的JAVA_HOME改为/usr/java/jdk1.7.0_71,如下图所示:

  文件中的其他一些配置项,请参考官方文档
  4、 slaves文件配置,增加如下两行内容:
  node1 node2
  四、向节点服务器node1、node2复制我们刚刚在master服务器上配置好的hadoop
  scp–r hadoop root@node1:/usr/local/hadoop scp–r hadoop root@node2:/usr/local/hadoop
  五、格式化namenode,在master节点上执行如下命令:
  bin/hdfs namenode-format

  只要出现“successfully formatted”就表示成功了。
  六、启动hadoop
  这一步也在主结点master上进行操作:

  七、用jps检验各后台进程是否成功启动
  master

  node1

  node2

  八、向hadoop集群系统提交第一个mapreduce任务
  到这里为止我们已经完成了一个真正意义上的hadoop完全分布式环境搭建,下面我们要像这个集群系统提交第一个mapreduce任务
  1、  bin/hdfs dfs -mkdir /tmp 在虚拟分布式文件系统上创建一个测试目录tmp
  2、  bin/hdfs dfs -copyFromLocal ./ LICENSE.txt /tmp 将当前目录下的LICENSE文件复制到虚拟分布式文件系统中
  3、bin/hdfs dfs-ls /tmp查看文件系统中是否存在我们所复制的文件
  下面这张图显示了一系列的操作过程

  3、  运行如下命令向hadoop提交单词统计任务
  bin/hadoop jar./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount/tmp/LICENSE.txt /tmp-output
  最后会显示一个运算结果:

  到这里为止,你已经完成了第一个任务的分布式计算
  注意:在你重新格式化分布式文件系统之前,需要将文件系统中的数据先清除,否则,datanode将创建不成功,这一点很重要
  关于一些常见的端口
  master:8088能显示你的集群状态
  master: 50070能进行一些节点的管理
  除此之外,还有很多有用的端口,当然这也是和你的配置文件相关的,最后,贴上两张图片:




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-628204-1-1.html 上篇帖子: 超详细解说Hadoop伪分布式搭建 下篇帖子: HADOOP(2.4)+HBASE(0.98.1)高可用集群详细部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表