分布式部署

Hadoop单机、伪分布式、分布式集群搭建

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-26 20:11:24
JDK安装 设置hostname [root@bigdata111 ~]# vi /etc/hostname 设置机器hosts [root@bigdata111 ~]# vi /etc/hosts 192.168.1.111 bigdata111 192.168.1.112 bigdata112 192.168.1.113 bigdata113 创建jdk目录 [root@bigdata111 /]# cd /opt [root@bigdata111 opt]# ll 总用量 0 drwxr-xr-x. 2 root root 6 3月 26 2015 rh [root@bigdata111 opt]# mkdir module [root@bigdata111 opt]# mkdir soft [root@bigdata111 opt]# ls module rh soft 上传jdk包 打开winSCP工具,通过winscp工具上传java jdk到linux 的/opt/soft文件夹下 [root@bigdata111 opt]# cd soft [root@bigdata111 soft]# ls jdk-8u144-linux-x64.tar.gz 解压jdk 将jdk文件解压到module文件夹下,命令如下: [root@bigdata111 opt]# cd

分布式锁

故事扮演 提交于 2019-11-26 16:43:17
一、为什么要有分布式锁 #效率: 使用分布式锁可以避免不同节点重复相同的工作,这些工作会浪费资源。比如用户付了钱之后有可能不同节点会发出多封短信。 #正确性: 加分布式锁同样可以避免破坏正确性的发生,如果两个节点在同一条数据上面操作,比如多个节点机器对同一个订单操作不同的流程有可能会导致该笔订单最后状态出现错误,造成损失。 二、分布式锁需求分析 在分析分布式锁的三种实现方式之前,先了解一下分布式锁应该具备哪些条件: #1、在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行; #2、高可用的获取锁与释放锁; #3、高性能的获取锁与释放锁; #4、具备可重入特性; #5、具备锁失效机制,防止死锁; #6、具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。 三、分布式锁的三种实现方式 1、基于数据库实现分布式锁 #基于数据库的实现方式的核心思想是: 在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引,想要执行某个方法,就使用这个方法名向表中插入数据,成功插入则获取锁,执行完成后删除对应的行数据释放锁。 (1)创建一个表: DROP TABLE IF EXISTS `method_lock`; CREATE TABLE `method_lock` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT

分布式文件系统-HDFS

寵の児 提交于 2019-11-26 11:36:14
HDFS Hadoop的核心就是HDFS与MapReduce。那么HDFS又是基于GFS的设计理念搞出来的。 HDFS全称是Hadoop Distributed System。HDFS是为以流的方式存取大文件而设计的。适用于几百MB,GB以及TB,并写一次读多次的场合。而对于低延时数据访问、大量小文件、同时写和任意的文件修改,则并不是十分适合。 优点: 1)适合存储非常大的文件 2)适合流式数据读取,即适合“只写一次,读多次”的数据处理模式 3)适合部署在廉价的机器上 缺点: 1)不适合存储大量的小文件,因为受Namenode内存大小限制 2)不适合实时数据读取,高吞吐量和实时性是相悖的,HDFS选择前者 3)不适合需要经常修改数据的场景 数据块: 每个磁盘都有默认的数据块大小,一般就是521字节。这是磁盘进行数据读写的最小单位。HDFS同样也有块(block)的概念,但是大得多,有64MB。与单一磁盘上的文件系统一样,HDFS上的文件也被划分为块大小的多个分块。但是还是有所不同,比如HDFS中小于一个块大小的文件不会占据整个块的空间。 对分布式文件系统中的快进行抽象的好处: 1)一个文件的大小可能会大于网络中任意一个磁盘的容量,文件的所有块并不需要存储在同一个磁盘上,因此可以利用集群上的任意一个磁盘进行存储,但是对于HDFS来说,它是存储了一个文件。 (这不就正是我们要的效果吗)

分布式文件系统-HDFS

不打扰是莪最后的温柔 提交于 2019-11-26 11:36:03
HDFS Hadoop的核心就是HDFS与MapReduce。那么HDFS又是基于GFS的设计理念搞出来的。 HDFS全称是Hadoop Distributed System。HDFS是为以流的方式存取大文件而设计的。适用于几百MB,GB以及TB,并写一次读多次的场合。而对于低延时数据访问、大量小文件、同时写和任意的文件修改,则并不是十分适合。 优点: 1)适合存储非常大的文件 2)适合流式数据读取,即适合“只写一次,读多次”的数据处理模式 3)适合部署在廉价的机器上 缺点: 1)不适合存储大量的小文件,因为受Namenode内存大小限制 2)不适合实时数据读取,高吞吐量和实时性是相悖的,HDFS选择前者 3)不适合需要经常修改数据的场景 数据块: 每个磁盘都有默认的数据块大小,一般就是521字节。这是磁盘进行数据读写的最小单位。HDFS同样也有块(block)的概念,但是大得多,有64MB。与单一磁盘上的文件系统一样,HDFS上的文件也被划分为块大小的多个分块。但是还是有所不同,比如HDFS中小于一个块大小的文件不会占据整个块的空间。 对分布式文件系统中的快进行抽象的好处: 1)一个文件的大小可能会大于网络中任意一个磁盘的容量,文件的所有块并不需要存储在同一个磁盘上,因此可以利用集群上的任意一个磁盘进行存储,但是对于HDFS来说,它是存储了一个文件。 (这不就正是我们要的效果吗)

TIDB 架构及分布式协议Paxos和Raft对比

自古美人都是妖i 提交于 2019-11-26 05:22:12
近来newsql大热,尤以TIDB最火,pingcap不断打磨TiDB,现如今版本已经迭代到3.0,产品已经基本趋于成熟。 对于TiDB,整体架构图如下图所示 是由四个模块组成,TiDB Server,PD Server,TiKV Server,TiSpark。 TiDB Server 负责接受SQL请求,处理SQL的相关逻辑,并通过PD找到存储计算所需数据的TiKV地址,与TiKV交互获取数据,最终返回结果。TiDB Server是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVD,HAPROXY,F5等)对外提供统一的接入地址。推荐部署俩个实例,前端通过负载均衡组件对外提供服务,当单个实例失效时,会影响正在这个实例上进行的session,从应用的角度看,会出现单次请求失败的情况,重新连接后即可继续获得服务。 Placement Driver (简称 PD),是整个集群的管理模块,其主要的工作有三个,一是存储集群的元信息,(某个Key存储在哪个TiKV节点上);二是对TiKV集群进行调度和负载均衡(如数据的迁移,Raft group leader的迁移等),三是分配全局唯一且递增的事务ID。PD 通过 Raft 协议保证数据的安全性。Raft 的 leader server 负责处理所有操作,其余的 PD server 仅用于保证高可用

docker快速搭建分布式爬虫pyspider

天大地大妈咪最大 提交于 2019-11-26 04:32:12
简介 pyspider是Python中强大Web爬虫框架,并且支持分布式架构。 为什么使用docker搭建pyspider 在安装pyspider时爬过一些坑,比如使用pip install pyspider时,python的版本要求在3.6及以下,因为async等已经是python3.7的关键字; 使用git clone代码安装pyspider, python3 setup.py intall ,使用过程会遇到ssl证书的问题,总而言之,可能会遇到版本兼容问题。 使用docker部署pyspider docker的安装不做说明; 直接进入正题。 docker network create --driver bridge pyspider mkdir -p /volume1/docker/Pyspider/mysql/{conf,logs,data}/ /volume1/docker/Pyspider/redis/ docker run --network=pyspider --name redis -d -v /volume1/docker/Pyspider/redis:/data -p 6379:6379 redis docker run --network pyspider -p 33060:3306 --name pymysql -v /volume1/docker

部署zookeeper分布式节点

拜拜、爱过 提交于 2019-11-26 02:09:31
用2台服务器,低资源,部署3个zookeeper分布式节点: 1.准备环境 系统已经配置好了JAVA环境; 下载某个版本的zookeeper压缩包, 下载链接: http://apache.claz.org/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3-beta.tar.gz 2、规划 服务器A,部署1个实例 服务器B,部署2个实例 3、我们配置3个服务,分布式集群至少需要三个实例服务,配置信息如下: 针对每一个服务的日志,新建一个数据目录 服务器A: /opt/local/zookeeper/zk,新建data、logs,在data里新建myid,里面写入3; 服务器B: /opt/local/zookeeper/zk1,新建data、logs,在data里新建myid,里面写入2; /opt/local/zookeeper/zk2,新建data、logs,在data里新建myid,里面写入1; 4、配置文件目录/opt/local/zookeeper-3.4.10/conf, 新建3个配置文件,为 服务器A: zoo.cfg 服务器B: zoo1.cfg、zoo2.cfg 端口分别为 2181 2182 2183 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/local

什么是分布式微服务?如何处理微服务的session?如何理解水平扩展和垂直扩展?

随声附和 提交于 2019-11-26 00:08:08
一、什么是分布式微服务? 区别: 分布式微服务(一个 大 系统 拆 成多个 子 系统分别部署到不同的服务器上面) 集群(部署 多个端一模一样 的大或子系统叫集群) 二、如何处理微服务的session? 用于分布式系统中的登入、登出,实现方式是 将用户登录信息保存到redis里面 。这样要访问那台机器直接来获取认证就ok了。 三、如何理解水平扩展和垂直扩展? 水平扩展:copy 垂直扩展:拆分 来源: CSDN 作者: 不努力,谁会可怜你? 链接: https://blog.csdn.net/qq_32603969/article/details/103235872

大数据分布式平台Hadoop2.7.7 + Spark2.2.2搭建

不羁的心 提交于 2019-11-25 23:06:17
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。 Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室

开源分布式任务工作流调度系统Easy Scheduler Release 1.0.2

邮差的信 提交于 2019-11-25 22:44:54
Easy Scheduler Release 1.0.2 Easy Scheduler 1.0.2是1.x系列中的第三个版本。此版本增加了调度开放接口、worker分组(指定任务运行的机器组)、任务流程及服务监控以及对oracle、clickhouse等支持,具体如下: 新特性: [ EasyScheduler-79 ] 调度通过token方式对外开放接口,可以通过api进行操作 [ EasyScheduler-138 ] 可以指定任务运行的机器(组) [ EasyScheduler-139 ] 任务流程监控及Master、Worker、Zookeeper运行状态监控 [ EasyScheduler-140 ] 工作流定义—增加流程超时报警 [ EasyScheduler-134 ] 任务类型支持Oracle、CLICKHOUSE、SQLSERVER、IMPALA [ EasyScheduler-136 ] Sql任务节点可以独立选取抄送邮件用户 [ EasyScheduler-141 ] 用户管理—用户可以绑定队列,用户队列级别高于租户队列级别,如果用户队列为空,则寻找租户队列 增强: [ EasyScheduler-154 ] 租户编码允许纯数字或者下划线这种的编码 修复: [ EasyScheduler-135 ] Python任务可以指定python版本 [