分布式部署

3.Hadoop_HDFS1.x_全分布式搭建

試著忘記壹切 提交于 2020-02-06 00:23:15
环境 CentOS 6.5 Apache Hadoop 2.6.5 JDK 7 (Hadoop3.0以上需要JDK8) hadoop-2.6.5.tar.gz 准备工作 准备4台虚拟机 node01、node02、node03、node04 检查虚拟机时间是否同步 检查/etc/sysconfig/network 中 HOSTNAME是否与上面一致 检查/etc/hosts 文件是否设置,是否一致 检查 /etc/sysconfig/selinux中 SELINUX=disabled 检查防火墙是否关闭 架构说明 node01: nameNode( NN ) node02: secondaryNameNode( SNN )、dateNode( DN ) node03: dateNode( DN ) node04: dateNode( DN ) 主节点部署 安装jdk7 # 安装 rpm -i jdk-7u67-linux-x64.rpm 设置ssh免密钥登陆,并分发 # 使用ssh本地登录,如果才会有.ssh文件 ssh localhost # 切换到家目录 cd # 查看是否有.ssh 文件 并进入 ll -a cd ~/.ssh/ # 生成id dsa 公钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa #

分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型

蓝咒 提交于 2020-02-05 04:49:59
分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型 分布式缓存特性: 1) 高性能:当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而导致过高的响应延迟.分布式缓存将高速内存作为数据对象的存储介质,数据以key/value 形式存储,理想情况下可以获得DRAM 级的读写性能; 2) 动态扩展性:支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性能与扩展性;同时,最大限度地提高资源利用率; 3) 高可用性:可用性包含数据可用性与服务可用性两方面.基于冗余机制实现高可用性,无单点失效(single point of failure),支持故障的自动发现,透明地实施故障切换,不会因服务器故障而导致缓存服务中断或数据丢失.动态扩展时自动均衡数据分区,同时保障缓存服务持续可用; 4) 易用性:提供单一的数据与管理视图;API 接口简单,且与拓扑结构无关;动态扩展或失效恢复时无需人工配置;自动选取备份节点;多数缓存系统提供了图形化的管理控制台,便于统一维护; 5) 分布式代码执行(distributed code execution):将任务代码转移到各数据节点并行执行,客户端聚合返回结果,从而有效避免了缓存数据的移动与传输.最新的Java 数据网格规范JSR

分布式任务调度系统xxl-job

好久不见. 提交于 2020-02-05 03:36:16
github下载 https://github.com/xuxueli/xxl-job 中文文档:http://www.xuxueli.com/xxl-job/#/ 初始化脚本在上面源码目录的 /doc/db/tables_xxl_job.sql ,将此脚本在MySQL数据库中执行一遍。 执行完毕,会在MySQL数据库中生成如下 16 张表: 5、配置调度中心 调度中心就是源码中的 xxl-job-admin 工程,我们需要将其配置成自己需要的调度中心,通过该工程我们能够以图形化的方式统一管理任务调度平台上调度任务,负责触发调度执行。 ### web server . port = 8080 server . servlet . context - path = / xxl - job - admin ### actuator management . server . servlet . context - path = / actuator management . health . mail . enabled = false ### resources spring . mvc . servlet . load - on - startup = 0 spring . mvc . static - path - pattern = / static /** spring

What is Mapreduce?&&What is hadoop?

情到浓时终转凉″ 提交于 2020-02-04 22:32:04
架构扼要 想读懂此文,读者必须先要明确以下几点,以作为阅读后续内容的基础知识储备: Mapreduce是一种模式。 Hadoop是一种框架。 Hadoop是一个实现了mapreduce模式的开源的分布式并行编程框架。 所以,你现在,知道了什么是mapreduce,什么是hadoop,以及这两者之间最简单的联系,而本文的主旨即是,一句话概括:在hadoop的框架上采取mapreduce的模式处理海量数据。下面,咱们可以依次深入学习和了解mapreduce和hadoop这两个东西了。 Mapreduce模式 前面说了,mapreduce是一种模式,一种什么模式呢?一种云计算的核心计算模式,一种分布式运算技术,也是简化的分布式编程模式,它主要用于解决问题的程序开发模型,也是开发人员拆解问题的方法。 Ok,光说不上图,没用。如下图所示,mapreduce模式的主要思想是将自动分割要执行的问题(例如程序)拆解成map(映射)和reduce(化简)的方式,流程图如下图1所示: 在数据被分割后通过Map 函数的程序将数据映射成不同的区块,分配给计算机机群处理达到分布式运算的效果,在通过Reduce 函数的程序将结果汇整,从而输出开发者需要的结果。 MapReduce 借鉴了函数式程序设计语言的设计思想,其软件实现是指定一个Map 函数,把键值对(key/value)映射成新的键值对(key

实现分布式锁的方式

不想你离开。 提交于 2020-02-03 00:28:04
一、为什么要使用分布式锁 我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug! 注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间! 后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡,大致如下图: 上图可以看到,变量A存在JVM1、JVM2、JVM3三个JVM内存中(这个变量A主要体现是在一个类中的一个成员变量,是一个有状态的对象,例如:UserController控制器中的一个整形类型的成员变量),如果不加任何控制的话,变量A同时都会在JVM分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的!即使不是同时发过来,三个请求分别操作三个不同JVM内存区域的数据,变量A之间不存在共享,也不具有可见性,处理的结果也是不对的! 如果我们业务中确实存在这个场景的话,我们就需要一种方法解决这个问题! 为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。在单机环境中,Java中提供了很多并发处理相关的API

大型互联网系统的特点

一世执手 提交于 2020-01-31 03:41:47
1.高并发和大流量 大型互联网需要面对高并发的访问用户,比如在天猫“双11”的时候,一分钟之内,有超过一千万的独立用户访问整个天猫系统,大规模的并发用户访问会对系统的处理能力造成巨大的冲击,系统必须要有足够强的处理能力才能够满足。同时有这么多用户来访问,产生了巨大的访问流量,对系统的抗压能力形成了考验。 高可用 大型互联网系统必须要 7×24 小时不间断地提供服务,和传统软件系统不同,银行或者是电信甚至零售业,它们都有下班时间,下了班以后可以对系统进行停机维护和升级发布,但是互联网没有下班时间,所以一直要保持高可用,7×24 小时永不间断。为了保证系统的高可用,必须要进行特别的系统架构设计。 海量的数据存储 因为互联网需要满足大量的用户使用,所以这些用户会产生很多的数据,需要对这些数据进行重组和管理。除了用户提交的数据,互联网还会采集很多其它的数据,包括一些用户行为的数据、第三方的数据以及网络爬虫获取的数据,通过大数据技术对这些数据做进一步分析,对用户进行更精准的营销和服务,以发现新的业务增长点。 用户分布广泛,网络情况复杂 互联网是为全球用户提供服务的,用户分布范围广,各地的网络情况千差万别,为了使所有用户能够得到统一的良好的体验,需要对系统架构进行相关的设计。 安全环境恶劣 因为互联网是开放的,所以互联网站很容易就会受到攻击。 需求变化快,发布频繁 和传统的软件版本发布频率比

RAID和分布式存储的对比

僤鯓⒐⒋嵵緔 提交于 2020-01-31 01:32:38
传统的存储 ,一般是指用 商用硬盘构建稳固的存储系统,通常会用到RAID技术 ,这是一种被研究的很透彻的存储技术,有大量的相关软硬件,成本已降低到可接受的程度。 分布式存储 ,一般是指用大量廉价的磁盘,通过软件层实现一定的高级功能,如高数据持久性,不停机扩容,异地分布,多租户架构等,往往也可以通过中间件的形式做扩容。 简要介绍下这两种方式的异同。 RAID技术 RAID,通常是硬件实现,也可以软件实现,RAID存储的时候,会有大量的异或运算,软RAID会降蛮多机器性能,不推荐,而实现硬RAID所需的RAID卡,价格也不高,速度和本地硬盘一致。 总结优点: RAID卡比较便宜,成本低 技术成熟,实施方便 运维方便 本地传输,速度快,不存在小文件的问题 总结缺点: 扩展性差,RAID在系统看来,就是磁盘,并不是以接口提供,没法儿做很好的扩展,比如要坐文件杀毒功能,RAID几乎无法支持 扩容难,空间不够用了,必须停机扩容,而这对有7*24要求的单位,几乎是硬伤 对于分布式存储 优势在于: 扩展方便,可以通过软件层,添加需要的功能 容错性强,对于no-share架构的分布式系统,任何一个节点的crash都不会影响其它节点的工作 扩展方便,对于大部分分布式系统,都可以在线扩容 缺点在于: 速度比本地硬盘慢,特别是存储大量小文件的时候,速度巨慢 实施麻烦,需要专业的计算机工程师协助部署

分布式存储-ceph

只愿长相守 提交于 2020-01-30 07:49:00
1. ceph 简介   Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统()。ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中,通常会采用 ceph 作为openstack 的唯一后端存储来提高数据转发效率。 Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。   官网:https://ceph.com/   官方文档:http://docs.ceph.com/docs/master/# 2. Ceph特点 高性能 :   1) 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。   2) 考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。   3) 能够支持上千个存储节点的规模,支持TB到PB级的数据。 高可用性:   1) 副本数可以灵活控制。   2) 支持故障域分隔,数据强一致性。   3) 多种故障场景自动进行修复自愈。   4) 没有单点故障,自动管理。 高可扩展性:   1) 去中心化。   2) 扩展灵活。   3)

分布式--CAP原则

早过忘川 提交于 2020-01-29 12:59:55
CAP原则 分布式–CAP原则 CAP理论是指分布式系统架构中通常只能够满足CAP三个指标中的两个,而不能同时满足CAP三个指标。 C(Consistency):一致性 一致性指的是All nodes see the same data at the same time,也就是说所有节点在同一时间看到的数据必须是一模一样的 ,比如足球比赛中,当比分发生了改变,客户端A看到的比分是1:0,而客户端B看到的比分还是0:0;又比如在银行系统中,通过微信进行银行卡转账,卡上余额从100变成了0,但是在支付宝中查看银行卡余额还是100,这显然就破坏了数据的一致性。 A(Avalilability):可用性 可用性指的是Reads and writes always succeed,也就是说无论是读操作还是写操作,始终是成功的,也就是服务一直可用,不存在服务失败或者用户操作失败的情况 。比如说用户发起提现操作,过了会显示提现失败;在进行转账的时候提示了需要等2天后才能到账,显然就破坏了可用性,因为用户的一系列操作换来的是提现失败,转账延迟才能到账,而不是立马响应到账。 P( Partition Toleranc):分区容错性 分区容错性指all nodes look like one node,也就是说多个节点的运行看起来就像是一个节点在运行一样,一个节点宕机不可用,其他节点还可以正常运行

ZooKeeper概念

邮差的信 提交于 2020-01-29 12:42:26
这可能是把ZooKeeper概念讲的最清楚的一篇文章 相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢? 作者:SnailClimb来源: 51CTO技术栈 |2018-09-12 09:34 收藏 分享 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西? 想了半天,脑海中只是简单的能浮现出几句话: Zookeeper 可以被用作注册中心。 Zookeeper 是 Hadoop 生态系统的一员。 构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。 可见,我对于 Zookeeper 的理解仅仅是停留在了表面。所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。 如果没有学过 ZooKeeper,那么本文将会是你进入 ZooKeeper 大门的垫脚砖;如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。 最后,本文只涉及 ZooKeeper 的一些概念,并不涉及 ZooKeeper 的使用以及