Hadoop

Elasticsearch整理笔记(一)

别来无恙 提交于 2020-09-28 00:11:46
Elasticsearch定义 elastic(弹性、灵活)+search(搜索) Elasticsearch 是一个支持分布式、高扩展、高实时的高效搜索与数据分析引擎。 支持分布式实时文件存储。 支持将字段值都编入索引,使其可以被搜索。 实时分析的分布式搜索引擎。 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。 Elasticsearch 的实现原理主要分为以下几个步骤 用户将数据提交到Elasticsearch 数据库中。 es通过分词控制器去将对应的语句分词。(这里如需更高级的策略优化,后期可以替换分词器)。 将其权重和分词结果一并存入数据库。 当用户搜索数据时候,根据权重将结果排名,打分(相关度)。 将返回结果呈现给用户。 有关概念 cluster:代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。 shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。 replicas:代表索引副本

10个微服务架构设计的最佳实践

半城伤御伤魂 提交于 2020-09-26 12:27:36
10个微服务架构设计的最佳实践 微服务极大的改变了服务端引擎的架构方式。微服务不是一个单一的巨型的用来托管应用程序所有业务逻辑的代码库,而是反映了分布式系统模型,在该模型中,一组应用程序组件协同工作来满足业务需求。通过遵循十项基本的微服务最佳实践,你可以实现一个高效的微服务生态系统,从而避免不必要的架构复杂性。 微服务架构的收益 当从单体应用正确的迁移到微服务架构的时候,可以获得以下收益: 你可以根据自己的意愿选择一门语言开发微服务,按照自己的节奏独立发布它,并独立扩展。 组织中的不同团队可以独立的拥有自己特定的微服务,并且随着并行开发以及重用的增加,产品发布的时间会更快 。 可以更好的隔离故障,因为发生在特定微服务中的错误会在对应的服务中被处理掉,因此不会影响到生态系统中的其他服务。 但是,如果在构建微服务时未遵循正确的原则,则最终可能会陷入像纠缠在一起的意大利面一样的状态。 这让维护变得非常困难,因为这需要不同的团队一起协作来做变动,发布或者实现容错。 充分利用微服务是一门科学并且需要一些刻意练习。以下微服务最佳实践和设计原则将帮助你构建松散耦合,分布式和优化的微服务,以实现最佳价值。 10个微服务最佳实践 1.单一责任原则 就像代码中的类一样,它仅仅在单个原因情况下改变,微服务也是采用类似的方式建模。构建可能会改变一个以上的业务这种臃肿的服务是一个坏的实践。 2

基于JindoFS+OSS构建高效数据湖

拥有回忆 提交于 2020-09-24 09:00:29
简介: Jindo 是阿里云基于 Apache Spark / Apache Hadoop 在云上定制的分布式计算和存储引擎 为什么要构建数据湖 大数据时代早期,Apache HDFS 是构建具有海量存储能力数据仓库的首选方案。随着云计算、大数据、AI 等技术的发展,所有云厂商都在不断完善自家的对象存储,来更好地适配 Apache Hadoop/Spark 大数据以及各种 AI 生态。由于对象存储有海量、安全、低成本、高可靠、易集成等优势,各种 IoT 设备、网站数据都把各种形式的原始文件存储在对象存储上,利用对象存储增强和拓展大数据 AI 也成为了业界共识,Apache Hadoop 社区也推出了原生的对象存储“Ozone”。从 HDFS 到对象存储,从数据仓库到数据湖,把所有的数据都放在一个统一的存储中,也可以更加高效地进行分析和处理。 对于云上的客户来说,如何构建自己的数据湖,早期的技术选型非常重要,随着数据量的不断增加,后续进行架构升级和数据迁移的成本也会增加。在云上使用 HDFS 构建大规模存储系统,已经暴露出来不少问题。HDFS 是 Hadoop 原生的存储系统,经过 10 年来的发展,HDFS 已经成为大数据生态的存储标准,但我们也看到 HDFS 虽然不断优化,但是 NameNode 单点瓶颈,JVM 瓶颈仍然影响着集群的扩展,从 1 PB到 100+ PB

Apache Spark RDD编程指南

夙愿已清 提交于 2020-09-24 01:09:01
RDD 是Apache Spark编程非常重要的一个特性。Spark使用Scala语言编写并支持Java和Python。 目录 总览 与Spark链接 Scala语言 Java语言 Python语言 初始化Spark Scala语言 Java语言 Python语言 使用Shell Scala语言 Python语言 弹性分布式数据集(RDD) 并行集合 Scala语言 Java语言 Python语言 外部数据集 Scala语言 Java语言 Python语言 RDD操作 基本 Scala语言 Java语言 Python语言 将函数传递给Spark Scala语言 Java语言 Python语言 了解闭包 Scala语言 Java语言 Python语言 本地与集群模式 RDD的打印元素 使用键值对 Scala语言 Java语言 Python语言 转变 动作 随机操作 背景 绩效影响 RDD持久性 选择哪个存储级别? 删除资料 共享变量 广播变量 Scala语言 Java语言 Python语言 蓄能器 Scala语言 Java语言 Python语言 部署到集群 从Java / Scala启动Spark作业 单元测试 从这可去 总览 在较高级别上,每个Spark应用程序都包含一个 驱动程序 ,该 程序 运行用户的 main 功能并在集群上执行各种 并行操作 。Spark提供的主要抽象是

Hbase集群搭建 附安装包(基于Hadoop,zookeeper,hz见前文)

点点圈 提交于 2020-09-23 15:54:07
Hbase集群搭建 1. 解压: hbase压缩包位置 链接:https://pan.baidu.com/s/1HYQGn9-DqWxlCmV6QAOKqA 提取码:vtu5 [root@master /]# cd /soft #进入Hbase压缩包位置 [root@master soft]# tar -xzvf hbase-1.2.0-bin.tar.gz #解压 2. 创建软链接 [root@master soft]# ln -s hbase-1.2.0 /soft/hbase 3. 添加环境变量 [root@master soft]# vi /etc/profile #添加如下内容 export HBASE_HOME=/soft/hbase export PATH=$HBASE_HOME/bin:$PATH [root@master soft]# source /etc/profile #生效 4. 编辑hbase-env.sh文件 (在$HBASE_HOME/conf下) [root@master hbase]# cd $HBASE_HOME/conf [root@master conf]# vi hbase-env.sh 添加如下配置 export JAVA_HOME=/soft/jdk #添加Java环境变量export HBASE_MANAGES_ZK=false