要想深入的学习hadoop数据分析技术,首要的任务是必需要将hadoop集群环境搭建起来,本文主要讲述怎样搭建一套hadoop全然分布式集群环境。

环境配置:2台64位的redhat6.5 +  1台64位centos6.9 + Hadoop + java7

一、先配置server的主机名

Namenode节点相应的主机名为master

Datanode节点相应的主机名分别为node1、node2

1、 在每一台server上运行vim /etc/hosts, 先删除hosts里面的内容。然后追加下面内容:

  1. 192.168.15.135 master
  2. 172.30.25.165 node1
  3. 172.30.25.166 node2

2、 在每一台server上运行vim  /etc/sysconfig/network。改动红色部分的内容。相应上面所说的hostname,对于master节点那么hostname就为master

  1. NETWORKING=yes
  2. HOSTNAME= master
  3. NETWORKING_IPV6=yes
  4. IPV6_AUTOCONF=no

类似的。在node1server节点上应该为:

  1. NETWORKING=yes
  2. HOSTNAME= node1
  3. NETWORKING_IPV6=yes
  4. IPV6_AUTOCONF=no

类似的,在node2server节点上应该为:

  1. NETWORKING=yes
  2. HOSTNAME= node2
  3. NETWORKING_IPV6=yes
  4. IPV6_AUTOCONF=no

这两步的作用非常关键。假设配置不成功,进行分布式计算的时候有可能找不到主机名

二、安装SSH,并让master免验证登陆自身server、节点server

1、 运行以下命令,让master节点可以免验证登陆自身server

  1. ssh-keygen -t dsa -P'' -f ~/.ssh/id_dsa
  2. cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys
  3. exportHADOOP\_PREFIX=/usr/local/hadoop

HADOOP_PREFIX表示自己安装的hadoop路径

2、 让主结点(master)能通过SSH免password登录两个子结点(slave)

为了实现这个功能。两个slave结点的公钥文件里必需要包括主结点的公钥信息,这样当master就能够顺利安全地訪问这两个slave结点了。操作步骤例如以下:

在node1上运行

  1. scp root@master:~/.ssh/id_dsa.pub ~/.ssh/master_dsa.pub
  2. cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys

在node2上运行

  1. scp root@master:~/.ssh/id_dsa.pub ~/.ssh/master_dsa.pub
  2. cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys

如上过程显示了node1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的文件夹下,这一过程须要password验证。接着。将master结点的公

钥文件追加至authorized_keys文件里,通过这步操作,假设不出问题,master结点就能够通过ssh远程免password连接node1结点了。在master结点中操作如:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

当然值得注意的是:首次登陆是须要确认的。node1结点首次连接时须要,“YES”确认连接,这意味着master结点连接node1结点时须要人工询问,无法自己主动连接。输入yes后成功接入,紧接着注销退出至master结点。要实现ssh免password连接至其他结点,还差一步,仅仅须要再运行一遍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:

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://master:9000</value>
  5. </property>
  6. </configuration>

hdfs-site.xml:

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.secondary.http-address</name>
  8. <value>master:9001</value>
  9. </property>
  10. </configuration>

mapred-site.xml:

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>master:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>master:19888</value>
  13. </property>
  14. </configuration>

yarn-site.xml:

  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  8. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  9. </property>
  10. <property>
  11. <name>yarn.resourcemanager.address</name>
  12. <value>master:8032</value>
  13. </property>
  14. <property>
  15. <name>yarn.resourcemanager.scheduler.address</name>
  16. <value>master:8030</value>
  17. </property>
  18. <property>
  19. <name>yarn.resourcemanager.resource-tracker.address</name>
  20. <value>master:8031</value>
  21. </property>
  22. <property>
  23. <name>yarn.resourcemanager.admin.address</name>
  24. <value>master:8033</value>
  25. </property>
  26. <property>
  27. <name>yarn.resourcemanager.webapp.address</name>
  28. <value>master:8088</value>
  29. </property>
  30. </configuration>

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,例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

文件里的其它一些配置项。请參考官方文档

4、 slaves文件配置,添加例如以下两行内容:

  1. node1
  2. node2

四、向节点servernode1、node2复制我们刚刚在masterserver上配置好的hadoop

  1. scpr hadoop root@node1:/usr/local/hadoop
  2. scpr hadoop root@node2:/usr/local/hadoop

五、格式化namenode,在master节点上运行例如以下命令:

  1. bin/hdfs namenode-format

仅仅要出现“successfully formatted”就表示成功了。

六、启动hadoop

这一步也在主结点master上进行操作:

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

master

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

node1

node2

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

八、向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查看文件系统中是否存在我们所复制的文件

以下这张图显示了一系列的操作过程

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

3、  执行例如以下命令向hadoop提交单词统计任务

bin/hadoop jar./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount/tmp/LICENSE.txt /tmp-output

最后会显示一个运算结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

到这里为止,你已经完毕了第一个任务的分布式计算

注意:在你又一次格式化分布式文件系统之前,须要将文件系统中的数据先清除。否则,datanode将创建不成功。这一点非常重要

关于一些常见的port

master:8088能显示你的集群状态

master: 50070能进行一些节点的管理

除此之外,还有非常多实用的port。当然这也是和你的配置文件相关的。最后,贴上两张图片:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

hadoop2.7全然分布式集群搭建以及任务測试的更多相关文章

  1. hadoop-2.7.2 分布式集群搭建

    1.机器信息 五台centos 64位机器 2.集群规划 Server Name Hadoop Cluster Zookeeper   Ensemble HBase Cluster Hadoop01 ...

  2. Hadoop1.2.1 全然分布式集群搭建实操笔记

    前期准备工作: 1.改动Linux主机名:/etc/hostname                         ubuntu系统:vi /etc/hostname                 ...

  3. hadoop2.2.0的ha分布式集群搭建

    hadoop2.2.0 ha集群搭建 使用的文件如下:    jdk-6u45-linux-x64.bin    hadoop-2.2.0.x86_64.tar    zookeeper-3.4.5. ...

  4. Hadoop上路-01_Hadoop2.3.0的分布式集群搭建

    一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...

  5. hadoop伪分布式集群搭建与安装(ubuntu系统)

    1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...

  6. Hadoop分布式集群搭建

    layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...

  7. 分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建

    一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行 ...

  8. 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  9. 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

随机推荐

  1. Manning.EJB.3.in.Action.2nd.Edition

    Manning.EJB.3.in.Action.2nd.Edition http://files.cnblogs.com/files/rojas/EJB_3_in_Action_2nd_Edition ...

  2. 数组-reduce方法

    转自: https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/139 实现 convert 方法,把原始 list ...

  3. 淺談Unity 5.4新功能:Light Probe Proxy Volume

    作者:CHRISTOPHER POPE 原文連結 Unity 5.4進入到Beta的階段.当中一個特別的功能是光照探頭代理Light Probe Proxy Volume(LPPV).本篇會向大家介紹 ...

  4. java8新增特性(二)----函数式接口(Functional)

    上一篇博客介绍了java8新增的Lambda表达式,这一节介绍一下java8的函数式编程,两者之间有什么联系呢?请往下看~~~ Lambda表达式怎样在java类型中表示的呢? 语言设计者投入了大量的 ...

  5. Android网络框架OkHttp之get请求(源码初识)

    概括 OkHttp现在很火呀.于是上个星期就一直在学习OkHttp框架,虽然说起来已经有点晚上手了,貌似是2013年就推出了.但是现在它版本更加稳定了呀.这不,说着说着,OkHttp3.3版本在这几天 ...

  6. Spring MVC基础了解

    参考网址:https://www.yiibai.com/spring_mvc/springmvc_overview.html Spring框架相关 Spring Security 一个灵活强大的身份验 ...

  7. the steps that may be taken to solve a feature selection problem:特征选择的步骤

    參考:JMLR的paper<an introduction to variable and feature selection> we summarize the steps that m ...

  8. 自己写的Android图表库XCL-Charts一些旧的样例

    话说有了灵感就要抓住,来了兴趣就要去研究它. 所以尽管近期非常忙.但我还是没有丢下Android图表实现的研究.最终如今我的图表库基类 基本上已经有点模样了.不在是小打小闹,而是能依传入參数非常灵活的 ...

  9. regexp模式匹配+location页面跳转+cookie/localstorage本地存储

    学习js的过程中,根据知识点编写一些code进行测试,以便检验. 这段程序使用了以下知识点: 1.regexp,对数据进行模式匹配 2.使用location对象进行页面跳转. 3.cookie/loc ...

  10. __INLINE