有多种方式来获取hadoop集群,包括从其他人获取或是自行搭建专属集群,抑或是从Cloudera Manager 或apach ambari等管理工具来构建hadoop集群等,但是由自己搭建则可以了解大量的常规构建和维护过程,可以从操作的角度来理解hadoop的工作机制,当然对于大部分用户和操作者应考虑使用hadoop集群管理工具。

  集群规模:

    根据场景和数据量不同而不同,一般在初期可以搭建合适的集群,后期再逐步持续扩充。另外集群规模不同,运行master守护进程的配置也不同,包括namenode、second namenode(辅助namenode),资源管理器以及历史服务器。对于小集群,master所在机器也可以同时运行namenode和资源管理器,不过规模的增大时应分离出去,避免运行master进程的集群毁坏时无法持续或恢复执行工作。分开的机器上,当master异常故障时,辅助namenode还可以接替,不会对服务造成太大的干扰。此外namenode和辅助namenode在内存中保存几乎所有的元数据和块数据等,规模增大时一台机器几乎无法同时运行它们。所以配置高可用的hadoop也是很重要的。

  网络拓扑:

    一般典型的采取二级网络架构,由多个服务器构建组成一个网络群(或称为机架)(由一个交换机或路由器相互通信),形成多个网络群,并将所有构建的网络群共享同一个更高级别的核心交换机或路由器来实现通信,从而实现二级网络架构。此外网络架构也会对hadoop性能产生影响,所以一般根据网络架构来配置hadoop以使得获取性能和弹性的合理平衡。也即是尽量倾向于在机架内进行数据传输而不是跨机架。

  集群构建和安装:

    1. 安装java,查看hadoop的wiki上的hadoopjavaversions(https://wiki.apache.org/hadoop/HadoopJavaVersions),根据自身需要安装指定可运行的组合(操作系统+java+hadoop),并配置JAVA_HOME和PATH路径即可,如:

      export JAVA_HOME=/opt/jdk1.7.0_67
      export PATH=$PATH:$JAVA_HOME/bin。

    2. 创建用户账号,一般在unix/linux上安装,且最好以账号区分不同的hadoop进程和服务,如HDFS、MapReduce、YARN作为独立用户运行,且同属于一个hadoop组

    3. 安装hadoop,可从apache hadoop官网获取发布包,一般tar.gz包解压到你想指定的目录并配置hadoop 的HADOOP_HOME和PATH环境变量即可。

     如:

      export HADOOP_HOME=/opt/hadoop-2.7.6
      export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    4. SSH配置,ssh-keygen -t rsa 以及 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    5. 配置hadoop的系列配置文件,主要是一些hadoop-env.sh,mapred-env.sh,yarn-env.sh环境变量配置,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml文件的守护进程等配置及slaves文件以运行datanode和节点管理器的配置

    6. 格式化HDFS文件系统,hdfs namenode -format

    7. 启动和停止守护进程。start-dfs.sh、start-yarn.sh分别启动HDFS守护进程和YARN守护进程。此外stop-yarn.sh和stop-dfs.sh停止相应的守护进程

    8. 创建用户目录,hadoop fs -mkdir /usr/username,hadoop fs -chown username:username /user/username

    

    

大数据开发学习之构建Hadoop集群-(0)的更多相关文章

  1. 大数据系列(5)——Hadoop集群MYSQL的安装

    前言 有一段时间没写文章了,最近事情挺多的,现在咱们回归正题,经过前面四篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,相关的两款软件VSFTP和SecureCRT也已经正常安装了. ...

  2. 大数据系列(4)——Hadoop集群VSFTP和SecureCRT安装配置

    前言 经过前三篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,当然,我相信安装的过程肯定遇到或多或少的问题,这些都需要自己解决,解决的过程就是学习的过程,本篇的来介绍几个Hadoop环 ...

  3. 大数据系列(3)——Hadoop集群完全分布式坏境搭建

    前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...

  4. 大数据系列(2)——Hadoop集群坏境CentOS安装

    前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...

  5. 大数据系列(1)——Hadoop集群坏境搭建配置

    前言 关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方 ...

  6. CentOS6安装各种大数据软件 第十章:Spark集群安装和部署

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  7. 构建hadoop集群时遇到的问题

    在构建hadoop集群时,出现过主节点中的namenode或datanode启动不成功的问题.在日志文件中往往会显示namenode和datanode中clusterID不相同的问题,这个问题往往都是 ...

  8. FusionInsight大数据开发学习总结(1)

    FusionInsight大数据开发 FusionInsight HD是一个大数据全栈商用平台,支持各种通用大数据应用场景. 技能需求 扎实的编程基础 Java/Scala/python/SQL/sh ...

  9. 吴裕雄--天生自然HADOOP学习笔记:hadoop集群实现PageRank算法实验报告

    实验课程名称:大数据处理技术 实验项目名称:hadoop集群实现PageRank算法 实验类型:综合性 实验日期:2018年 6 月4日-6月14日 学生姓名 吴裕雄 学号 15210120331 班 ...

随机推荐

  1. SPOJ:Another Version of Inversion(二维数组的逆序对)

    DCE Coders admins are way much geekier than they actually seem! Kartik has been following that tradi ...

  2. jsch文件下载功能

    转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2561332.html 上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch ...

  3. HBase之七:事务和并发控制机制原理

    作为一款优秀的非内存数据库,HBase和传统数据库一样提供了事务的概念,只是HBase的事务是行级事务,可以保证行级数据的原子性.一致性.隔离性以及持久性,即通常所说的ACID特性.为了实现事务特性, ...

  4. Bootstrap-CSS:辅助类

    ylbtech-Bootstrap-CSS:辅助类 1.返回顶部 1. Bootstrap 辅助类 本章将讨论 Bootstrap 中的一些可能会派上用场的辅助类. 文本 以下不同的类展示了不同的文本 ...

  5. CodeForces 1103C. Johnny Solving

    题目简述:给定简单(无自环.无重边)连通无向图$G = (V, E), 1 \leq n = |V| \leq 2.5 \times 10^5, 1 \leq m = |E| \leq 5 \time ...

  6. 详解Supervisor进程守护监控

    Supervisor在百度百科上给的定义是超级用户,监管员.Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它.可以运行在各种类unix的机器上,superv ...

  7. 退出ACM?

    我不知道为什么我有这样的想法,纵观CCCC,太弱太弱,再不把自己埋起来,狠起来,就真的非常菜了,去刷难题吧!我不管老郭的数据,只管自己的实力,每天三道难题CF的C题+总结.以及刷水题!!!(刷CF的B ...

  8. 纯JS实现鼠标每隔一段时间才能让页面再次滚动

    这里没有用到浏览器的兼容性写法,只是提供思路(这里使用的是Google浏览器的方法) javascript代码部分: //获取html元素var oHtml =document.documentEle ...

  9. Java自定义方法转换前端提交的json字符串为JsonObject对象

    前端提交json字符串格式数据,Java后端通过自定义方法接收json字符串数据并转换为JsonObject对象,代码如下放到RequestData.Java类中: public static JSO ...

  10. The Django Book学习笔记 04 模板

    如果使用这种方法制作文章肯定不是一个好方法,尽管它便于你理解是怎么工作的. def current_datetime(request): now = datetime.datetime.now() h ...