찾다
데이터 베이스MySQL 튜토리얼[译]Cassandra 架构简述

本文翻译主要来自Datastax的cassandra1.2文档。。此外还有一些来自于相关官方博客。 该翻译作为实验室大数据组的学习材料的一部分,适合对Cassandra已经有一定了解的读者。 未经本人许可,请勿转载。 。(下文有时候又将Cassandra简称C) Cassandra被设计来

本文翻译主要来自Datastax的cassandra1.2文档。。此外还有一些来自于相关官方博客。

该翻译作为实验室大数据组的学习材料的一部分,适合对Cassandra已经有一定了解的读者。

未经本人许可,请勿转载。

。(下文有时候又将Cassandra简称C)

Cassandra被设计来通过没有单点故障的多节点模式去处理海量数据工作负载。他的架构是基于 理解系统和硬件故障可以而且会发生 的基础上的。C通过所有节点都相同并且数据分布在所有节点上的p2p分布式系统来解决故障问题。集群中的每个节点每秒都在交换信息。每个节点上的commit log 捕获写行为来确保数据的持久化。数据也会被写到一个内存结构中,叫做memtable,然后当内存结构满了的时候就写数据到磁盘文件中,叫做SSTable。所有的写入都是自动分区和复制的。

cassandra是一种面向行的数据库。C的架构允许任何授权的用户连接任意数据中心的任意的节点,并使用cql访问数据。为了简化使用,cql使用和sql类似的语法。从cql的视角出发,database是由tables组成的。典型地,一个集群中 每个应用拥有一个keyspace。开发者可以通过cqlsh调用cql,也可以使用其他驱动。

客户端的读写请求可以到达集群的任意节点。当一个客户连接到一个节点做了一个请求时,那个节点服务器就作为这个特定的客户操作的一个了。协调器扮演了客户应用和拥有用户请求的数据的节点之间的代理(proxy)的角色。协调器决定了集群环中的哪些节点应该响应请求。(更多信息,请查阅关于用户请求)

配置C的关键组件列表:

  • Gossip:一个p2p的交流协议来发现和共享其他节点的位置和状态信息。
    gossip信息也被每个节点保存在本地,这样当一个节点重启时,它能够立刻使用这些信息。你可能会想清空某个节点上的gossip历史,比如节点ip地址改变了等原因。(译者注:大概就是system.local表)
  • Partitioner:一个分区器决定了如何分布数据到各个节点。选择一个分区器决定了哪个节点存储数据的第一个备份。
    你必须设置分区器的类型,并且指派给每个节点一个num_tokens值。如果没有使用虚拟节点的话,美国空间,使用initial_token来代替。(译者注:虚拟节点是1.2中新增的)
  • 副本存放策略:C存储数据的备份到多个节点上去来确保可用性和故障容忍。一个备份策略决定了哪些节点存放备份。it is not unique in any sense.it is not unique in any sense. 当你创建了一个keyspace的时候,你必须指定副本存放策略和你想备份的数量。
  • Snitch:一个snitch定义了拓扑信息,这些信息是副本备份侧罗和请求路由时经常使用的。当你创建一个集群的时候需要配置一个snitch。snitch is responsible for 知道在你的网络拓扑中节点的位置 以及通过聚合机器成为数据中心或者rack时的分配副本。
  • cassandra.yaml:C的配置文件。在这个文件中,你要设置集群的初始化信息,表的缓存参数,资源的使用参数,超时设置,客户端连接,备份以及安全策略。
  • C将属性都存到系统keyspace中。你需要对每一个keyspace或者columnfamily进行存储配置(比如使用cql)。
    默认的,美国空间,一个节点被设置为存储他管理的数据到/var/lib/cassandra目录。在一个生产环境中,你需要修改commitlog目录到一个其他硬盘上去(别和data file 在一个硬盘上)。
  • (该翻译作为实验室大数据组的学习材料的一部分,适合对Cassandra已经有一定了解的读者。未经本人许可,请勿转载。)

    cassandra使用称为gossip的协议来发现加入C集群中的其他节点的位置和状态信息。这是一个p2p的交流协议,每个节点定期的交换他们自己的和他们所知道的其他人的状态信息。gossip进程每秒都在进行,并与至多三个节点交换状态信息。节点交换他们自己和所知道的信息,于是所有的节点很快就能学习到整个集群中的其他节点的信息。gossip信息有一个相关的版本号,于是在一次gossip信息交换中,旧的信息会被新的信息覆盖重写。

    要阻止分区进行gossip交流,那么在集群中的所有节点中使用相同的seed list(译者注:指的是cassandra。yaml中的seeds)。默认的,在重新启动时,一个节点记得他曾经gossip过得其他节点。

    注意:种子节点的指定除了启动起gossip进程外,没有其他的目的。种子节点不是一个单点故障,他们在集群操作中也没有其他的特殊目的,除了引导节点以外..

    设置Gossip设置

    任务:

    当一个节点第一次启动的时候,他去yaml中读取配置,得到集群的名字,并得到从哪些seeds中获取其他节点的信息,还有其他的一些参数,服务器空间,比如端口,范围等等。。

    属性 描述

    cluster_name  

    listen_address 与其他节点连接的ip

    seed_provider  

    storage_port 内部节点交流端口(默认7000),每个节点之间必须相同

    initial_token 在1.1以及之前,决定节点的数据的管理范围

    num_tokens 在1.2以及之后,决定节点的数据的管理范围

     

    清理gossip状态:

    -Dcassandra.load_ring_state= false 关于故障检测和修复C使用信息来避免路由用户的请求到坏了的节点(C还能避免路由到可用但是性能很差的节点,通过动态snitch技术)Rather than have a fixed threshold for marking failing nodes, Cassandra uses an accrual detection mechanism to calculate a per-node threshold that takes into account network performance, workload, or other conditions. During gossip exchanges, every node maintains a sliding window of inter-arrival times of gossip messages from other nodes in the cluster. In Cassandra, configuring the property adjusts the sensitivity of the failure detector. Use default value for most situations, but increase it to 12 for Amazon EC2 (due to the frequently experienced network congestion).(译者注:这是04年的一篇论文的失效检测算法

    1.Hayashibara, N., Defago, X., Yared, R. & Katayama, T. The phi; accrual failure detector. in Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems, 2004 66–78 (2004). doi:10.1109/RELDIS.2004.1353004)一个节点的当机往往不代表这个节点永远的离开了,因此并不会自动的从环中删除。其他的节点会定期的尝试与失效节点联系看看他们恢复了没。要永久的改变一个节点的关系,administrators must explicitly add or remove nodes from a Cassandra cluster using the .当一个节点返回的时候,他可能错过了他需要维护的副本数据的写入命令。一旦失效检测标记一个节点当机了,错过的写入就会被存储到其他的副本中一段时间,叫做 hinted handoff。 当一个节点当机超过max_hint_windows_in_ms(默认3小时),hints就不在存储了。这时候你应该等节点启动后运行修复程序了。此外,你应该日常地运行nodetool repair 在所有的节点上,以保证他们的数据的一致性。For more explanation about recovery, see Modern hinted handoff. (该翻译作为实验室大数据组的学习材料的一部分,适合对Cassandra已经有一定了解的读者。未经本人许可,请勿转载。)

    数据分配和备份

    성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    MySQL의 역할 : 웹 응용 프로그램의 데이터베이스MySQL의 역할 : 웹 응용 프로그램의 데이터베이스Apr 17, 2025 am 12:23 AM

    웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

    MySQL : 첫 번째 데이터베이스 구축MySQL : 첫 번째 데이터베이스 구축Apr 17, 2025 am 12:22 AM

    MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

    MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식Apr 17, 2025 am 12:21 AM

    MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.

    MySQL 초보자가 친숙합니까? 학습 곡선 평가MySQL 초보자가 친숙합니까? 학습 곡선 평가Apr 17, 2025 am 12:19 AM

    MySQL은 다음과 같은 초보자에게 적합합니다. 1) 설치 및 구성이 쉽고, 2) 풍부한 학습 리소스, 3) 직관적 인 SQL 구문, 4) 강력한 도구 지원. 그럼에도 불구하고 초보자는 데이터베이스 디자인, 쿼리 최적화, 보안 관리 및 데이터 백업과 같은 과제를 극복해야합니다.

    SQL은 프로그래밍 언어입니까? 용어를 명확하게합니다SQL은 프로그래밍 언어입니까? 용어를 명확하게합니다Apr 17, 2025 am 12:17 AM

    예, sqlisaprogramminglanguages-pecializedfordatamanagement.1) 그것은 초점을 맞추고, 초점을 맞추고, 초점을 맞추고, sqlisessentialforquerying, 삽입, 업데이트 및 adletingdataindataindationaldatabase.3) weburer infriendly, itrequires-quirestoamtoavase

    산성 특성 (원자력, 일관성, 분리, 내구성)을 설명하십시오.산성 특성 (원자력, 일관성, 분리, 내구성)을 설명하십시오.Apr 16, 2025 am 12:20 AM

    산성 속성에는 원자력, 일관성, 분리 및 내구성이 포함되며 데이터베이스 설계의 초석입니다. 1. 원자력은 거래가 완전히 성공적이거나 완전히 실패하도록합니다. 2. 일관성은 거래 전후에 데이터베이스가 일관성을 유지하도록합니다. 3. 격리는 거래가 서로를 방해하지 않도록합니다. 4. 지속성은 거래 제출 후 데이터가 영구적으로 저장되도록합니다.

    MySQL : 데이터베이스 관리 시스템 대 프로그래밍 언어MySQL : 데이터베이스 관리 시스템 대 프로그래밍 언어Apr 16, 2025 am 12:19 AM

    MySQL은 데이터베이스 관리 시스템 (DBMS) 일뿐 만 아니라 프로그래밍 언어와 밀접한 관련이 있습니다. 1) DBMS로서 MySQL은 데이터를 저장, 구성 및 검색하는 데 사용되며 인덱스 최적화는 쿼리 성능을 향상시킬 수 있습니다. 2) SQL과 같은 ORM 도구를 사용하여 Python에 내장 된 SQL과 프로그래밍 언어를 결합하면 작업을 단순화 할 수 있습니다. 3) 성능 최적화에는 인덱싱, 쿼리, 캐싱, 라이브러리 및 테이블 부서 및 거래 관리가 포함됩니다.

    MySQL : SQL 명령으로 데이터 관리MySQL : SQL 명령으로 데이터 관리Apr 16, 2025 am 12:19 AM

    MySQL은 SQL 명령을 사용하여 데이터를 관리합니다. 1. 기본 명령에는 선택, 삽입, 업데이트 및 삭제가 포함됩니다. 2. 고급 사용에는 조인, 하위 쿼리 및 집계 함수가 포함됩니다. 3. 일반적인 오류에는 구문, 논리 및 성능 문제가 포함됩니다. 4. 최적화 팁에는 인덱스 사용, 선택*을 피하고 한계 사용이 포함됩니다.

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    인기 기사

    R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
    1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 최고의 그래픽 설정
    1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
    1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 채팅 명령 및 사용 방법
    1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

    뜨거운 도구

    SecList

    SecList

    SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

    PhpStorm 맥 버전

    PhpStorm 맥 버전

    최신(2018.2.1) 전문 PHP 통합 개발 도구

    DVWA

    DVWA

    DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

    Dreamweaver Mac版

    Dreamweaver Mac版

    시각적 웹 개발 도구

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구