По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Apache Cassandra — это программное обеспечение распределенной базы данных с открытым исходным кодом для работы с базами данных NoSQL. Это программное обеспечение использует язык запросов Cassandra - CQL в качестве основы для связи. CQL хранит данные в таблицах, организованных в виде набора строк со столбцами, содержащими пары ключ-значение. Таблицы CQL сгруппированы в контейнеры данных, которые в Cassandra называются пространствами ключей (keyspace). Данные, хранящиеся в одном пространстве ключей, не связаны с другими данными в кластере. Таким образом, вы можете иметь таблицы для разных целей в отдельных пространствах ключей в кластере, и данные не будут совпадать. В этом руководстве вы узнаете, как создать таблицу Cassandra для различных целей, а также как изменять, удалять или очищать таблицы с помощью оболочки Cassandra. Выбор пространства ключей для таблицы Cassandra Прежде чем вы начнете добавлять таблицу, вам нужно определить пространство ключей, в котором вы хотите создать свою таблицу. Есть два варианта сделать это. Вариант 1: команда USE Запустите команду USE, чтобы выбрать пространство клавиш, к которому будут применяться все ваши команды. Для этого в оболочке cqlsh введите: USE keyspace_name; Затем вы можете начать добавлять таблицы. Вариант 2. Укажите имя пространства ключей в запросе Второй вариант — указать имя пространства ключей в запросе на создание таблицы. Первая часть команды перед именами столбцов и параметрами выглядит так: CREATE TABLE keyspace_name.table_name Таким образом, вы сразу же создаете таблицу в заданном пространстве ключей. Базовый синтаксис для создания таблиц Cassandra Создание таблиц с помощью CQL похоже на SQL-запросы. В этом разделе мы покажем вам основной синтаксис для создания таблиц в Cassandra. Основной синтаксис для создания таблицы выглядит следующим образом: CREATE TABLE tableName ( columnName1 dataType, columnName2 dataType, columnName2 datatype PRIMARY KEY (columnName) ); При желании вы можете определить дополнительные свойства и значения таблицы, используя WITH: WITH propertyName=propertyValue; Например, используйте его, чтобы определить, как хранить данные на диске или использовать ли сжатие. Типы первичных ключей Cassandra Каждая таблица в Cassandra должна иметь первичный ключ, что делает строку уникальной. С первичными ключами вы определяете, какой узел хранит данные и как он их разделяет. Существует несколько типов первичных ключей: Простой первичный ключ. Содержит только одно имя столбца в качестве ключа секции, чтобы определить, какие узлы будут хранить данные. Составной первичный ключ. Использует один ключ разделения и несколько столбцов кластеризации, чтобы определить, где хранить данные и как их сортировать в разделе. Составной ключ раздела. В этом случае есть несколько столбцов, которые определяют, где хранить данные. Таким образом, вы можете разбить данные на более мелкие части, чтобы распределить их по нескольким разделам, чтобы избежать горячих точек. Как создать таблицу Cassandra В следующих разделах объясняется, как создавать таблицы с различными типами первичных ключей. Сначала выберите пространство ключей, в котором вы хотите создать таблицу. В нашем случае: USE businesinfo; Каждая таблица содержит столбцы и тип данных Cassandra для каждой записи. Создать таблицу с простым первичным ключом Первый пример — это базовая таблица с поставщиками. Идентификатор уникален для каждого поставщика и будет служить первичным ключом. CQL-запрос выглядит следующим образом: CREATE TABLE suppliers ( supp_id int PRIMARY KEY, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int ); Этот запрос создал таблицу с именем supplier с supp_id в качестве первичного ключа для таблицы. Когда вы используете простой первичный ключ с именем столбца в качестве ключа раздела, вы можете поместить его либо в начало запроса (рядом со столбцом, который будет служить первичным ключом), либо в конец, а затем указать имя столбца: CREATE TABLE suppliers ( supp_id int, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int PRIMARY KEY(supp_id) ); Чтобы увидеть, находится ли таблица в пространстве ключей, введите: DESCRIBE TABLES; В выводе перечислены все таблицы в этом пространстве ключей, а также та, которую вы создали. Чтобы отобразить содержимое таблиц, введите: SELECT * FROM suppliers; Вывод показывает все столбцы, определенные при создании таблицы. Другой способ просмотреть сведения о таблице — использовать DESCRIBE и указать имя таблицы: DESCRIBE suppliers; В выходных данных отображаются столбцы и настройки по умолчанию для таблицы. Создать таблицу с составным первичным ключом Чтобы запросить и получить результаты, отсортированные в определенном порядке, создайте таблицу с составным первичным ключом. Например, создайте таблицу для поставщиков и всех продуктов, которые они предлагают. Поскольку продукты могут не быть уникальными для каждого поставщика, необходимо добавить один или несколько столбцов кластеризации в первичный ключ, чтобы сделать его уникальным. Схема таблицы выглядит так: CREATE TABLE suppliers_by_product ( supp_product text, supp_id int, supp_product_quantity text, PRIMARY KEY(supp_product, supp_id) ); В этом случае мы использовали supp_product и supp_id для создания уникального составного ключа. Здесь первая запись в скобках supp_product — это ключ раздела. Он определяет, где хранить данные, то есть как система разделяет данные. Следующая запись — столбец кластеризации, определяющий, как Cassandra сортирует данные, в нашем случае — по supp_id. Изображение выше показывает, что таблица была успешно создана. Чтобы проверить детали таблицы, запустите запрос DESCRIBE TABLE для новой таблицы: DESCRIBE TABLE suppliers_by_product; Настройки по умолчанию для порядка кластеризации — по возрастанию (ASC). Вы можете перейти на нисходящий (DESC), добавив следующий оператор после первичного ключа: WITH CLUSTERING ORDER BY (supp_id DESC); Мы указали один столбец кластеризации после ключа раздела. Если вам нужно отсортировать данные с использованием двух столбцов, добавьте еще один столбец в скобки первичного ключа. Создание таблиц с использованием составного ключа раздела Создание таблицы с составным ключом раздела полезно, когда на одном узле хранится большой объем данных, и вы хотите разделить нагрузку на несколько узлов. В этом случае определите первичный ключ с ключом секции, состоящим из нескольких столбцов. Вам нужно использовать двойные скобки. Затем добавьте столбцы кластеризации, как мы делали ранее, чтобы создать уникальный первичный ключ. CREATE TABLE suppliers_by_product_type ( supp_product_consume text, supp_product_stock text, supp_id int, supp_name text, PRIMARY KEY((supp_product_consume, supp_product_stock), supp_id) ); В приведенном выше примере мы разделили данные на две категории: расходные материалы поставщика и продукты, запасаемые на складе, и распределили данные с помощью составного ключа раздела. Примечание. При таком разделении каждая категория продуктов хранится на отдельном узле, а не в одном разделе. Если вместо этого вы используете составной первичный ключ с простым ключом раздела и несколькими столбцами кластеризации, то один узел будет обрабатывать все данные, отсортированные по нескольким столбцам. Удалить таблицу в Cassandra Чтобы удалить таблицу в Cassandra, используйте оператор DROP TABLE. Чтобы выбрать таблицу, которую вы хотите удалить, введите: DESCRIBE TABLES; Найдите таблицу, которую хотите удалить. Используйте имя таблицы, чтобы удалить ее: DROP TABLE suppliers_by_product_type; Запустите запрос DESCRIBE TABLES еще раз, чтобы убедиться, что вы успешно удалили таблицу. Изменить таблицу в Cassandra Cassandra CQL позволяет добавлять или удалять столбцы из таблицы. Используйте команду ALTER TABLE, чтобы внести изменения в таблицу. Добавить столбец в таблицу Перед добавлением столбца в таблицу рекомендуется просмотреть содержимое таблицы, чтобы убедиться, что имя столбца еще не существует. После проверки используйте запрос ALTER TABLE в этом формате, чтобы добавить столбец: ALTER TABLE suppliers_by_product ADD supp_name text; Снова используйте DESCRIBE TABLE, чтобы убедиться, что столбец появился в списке. Удалить столбец из таблицы Подобно добавлению столбца, вы можете удалить столбец из таблицы. Найдите столбец, который вы хотите удалить, с помощью запроса DESCRIBE TABLES. Затем введите: ALTER TABLE suppliers_by_product DROP supp_product_quantity; Примечание. Не указывайте тип данных для столбца, если вы хотите удалить его из таблицы. Вы получите ошибку “SyntaxException: line 1:48 mismatched input ‘text’ expecting EOF (ALTER TABLE suppliers_by_product DROP supp_name [text]…)” Очистить таблицу в Cassandra Если вы не хотите удалять всю таблицу, но вам нужно удалить все строки, используйте команду TRUNCATE. Например, чтобы удалить все строки из таблицы поставщиков, введите: TRUNCATE suppliers; Чтобы убедиться, что в вашей таблице больше нет строк, используйте оператор SELECT. После очистки таблицы изменения становятся постоянными, поэтому будьте осторожны при использовании этого запроса. Итоги В этом руководстве показано, как создавать таблицы в Cassandra для различных целей с использованием простых и составных первичных ключей. Примеры также включали использование составного ключа раздела для распределения данных по узлам. Мы также рассмотрели, как вы можете удалять, изменять и очищать таблицы в Cassandra. Убедитесь, что вы удаляете или вносите изменения в правильные таблицы, чтобы избежать потенциальных проблем.
img
В этой статье мы рассмотрим процесс установки и настройки режима Docker Swarm на сервере Ubuntu 16.04. Docker Swarm является стандартным инструментом кластеризации для Docker, преобразующий набор хостов Docker в один последовательный кластер, называемый Swarm. Docker Swarm обеспечивает доступность и высокую производительность работы, равномерно распределяя ее по хостингам Docker внутри кластера. Установка Docker Swarm: Перед началом обновите Ваш системный репозиторий до последней версии с помощью следующей команды: sudo apt-get update -y && sudo apt-get upgrade -y После обновления следует выполнить перезагрузку системы. Необходимо еще установить среду Docker. По умолчанию Docker не доступен в репозитории Ubuntu 16.04, поэтому сначала необходимо создать хранилище Docker и начать установку с помощью следующей команды: sudo apt-get install apt-transport-https software-properties-common ca-certificates -y: Добавляем GPG ключ для Docker: wget https://download.docker.com/linux/ubuntu/gpg && sudo apt-key add gpg Добавляем репозиторий Docker и обновляем с помощью команды: sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" >> /etc/apt/sources.list sudo apt-get update -y Установка среды Docker с помощью следующей команды: sudo apt-get install docker-ce -y После установки запустите службу Docker во время загрузки с помощью следующей команды: sudo systemctl start docker && sudo systemctl enable docker Для запуска Docker необходимы root права, а для других юзеров доступ получается только с помощью sudo. При необходимости запустить docker без использования sudo, есть возможность создать Unix и включить в него необходимых пользователей за счет выполнения следующих строк кода: sudo groupadd docker && sudo usermod -aG docker dockeruser Затем выйдя из системы, делаем вход через dockeruser. sudo ufw allow 2376/tcp && sudo ufw allow 7946/udp && sudo ufw allow 7946/tcp && sudo ufw allow 80/tcp && sudo ufw allow 2377/tcp && sudo ufw allow 4789/udp Затем перезагрузите брандмауэр, включив его при загрузке sudo ufw reload && sudo ufw enable Выполните перезагрузку “Докера”: sudo systemctl restart docker Создавая Docker Swarm кластер, необходимо определиться с IP-адресом, за счет которого ваш узел будет действовать в качестве диспетчера: docker swarm init --advertise-addr 192.168.0.103 Вы должны увидеть следующий вывод: Swarm initialized: current node (iwjtf6u951g7rpx6ugkty3ksa) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-5p5f6p6tv1cmjzq9ntx3zmck9kpgt355qq0uaqoj2ple629dl4-5880qso8jio78djpx5mzbqcfu 192.168.0.103:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. Проверяем его состояние: docker node ls Если все работает правильно, вы должны увидеть следующий вывод: ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader Проверка статуса Docker Swarm Cluster осуществляется следующим образом: code> docker info Вывод должен быть следующим: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 17.09.0-ce Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Swarm: active NodeID: iwjtf6u951g7rpx6ugkty3ksa Is Manager: true ClusterID: fo24c1dvp7ent771rhrjhplnu Managers: 1 Nodes: 1 Orchestration: Task History Retention Limit: 5 Raft: Snapshot Interval: 10000 Number of Old Snapshots to Retain: 0 Heartbeat Tick: 1 Election Tick: 3 Dispatcher: Heartbeat Period: 5 seconds CA Configuration: Expiry Duration: 3 months Force Rotate: 0 Autolock Managers: false Root Rotation In Progress: false Node Address: 192.168.0.103 Manager Addresses: 192.168.0.103:2377 Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0 runc version: 3f2f8b84a77f73d38244dd690525642a72156c64 init version: 949e6fa Security Options: apparmor seccomp Profile: default Kernel Version: 4.4.0-45-generic Operating System: Ubuntu 16.04.1 LTS OSType: linux Architecture: x86_64 CPUs: 1 Total Memory: 992.5MiB Name: Manager-Node ID: R5H4:JL3F:OXVI:NLNY:76MV:5FJU:XMVM:SCJG:VIL5:ISG4:YSDZ:KUV4 Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false Узел теперь настроен правильно, пришло время добавить его в Swarm Cluster. Сначала скопируйте вывод команды «swarm init» из вывода результата выше, а затем вставьте этот вывод в рабочий узел для присоединения к Swarm Cluster: docker swarm join --token SWMTKN-1-5p5f6p6tv1cmjzq9ntx3zmck9kpgt355qq0uaqoj2ple629dl4-5880qso8jio78djpx5mzbqcfu 192.168.0.103:2377 Вы должны увидеть следующий вывод: This node joined a swarm as a worker. Теперь выполните следующую команду для вывода списка рабочего узла: docker node ls Вы должны увидеть информацию следующего вида: ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader snrfyhi8pcleagnbs08g6nnmp Worker-Node Ready Active Docker Swarm Cluster запущен и работает, теперь можно запустить веб-сервис в Docker Swarm Mode. За счет следующей строки кода выполнится развертывание службы веб-сервера: docker service create --name webserver -p 80:80 httpd Приведенная выше строка создаст контейнер веб-сервера Apache и сопоставит его с 80 портом, позволив иметь полный доступ к необходимому веб-серверу Apache из удаленной системы. Теперь запускаем проверку работающего сервиса с помощью команды: docker service ls Вы должны увидеть следующий вывод: ID NAME MODE REPLICAS IMAGE PORTS nnt7i1lipo0h webserver replicated 0/1 apache:latest *:80->80/tcp Запустите службу масштабирования веб-сервера с помощью строки: docker service scale webserver = 2 А также проверьте состояние с помощью команды: docker service ps webserver Вы должны увидеть следующий вывод: ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 7roily9zpjvq webserver.1 httpd:latest Worker-Node Running Preparing about a minute ago r7nzo325cu73 webserver.2 httpd:latest Manager-Node Running Preparing 58 seconds ago Веб-сервер Apache работает. Теперь вы можете получить доступ к веб-серверу: Служба веб-сервера Apache теперь распределена по двум узлам. Docker Swarm обеспечивает доступность вашего сервиса. Если веб-сервер отключается на рабочем узле, то новый контейнер будет запущен на узле менеджера. Для проверки доступности следует остановить службу Docker на рабочем узле: sudo systemctl stop docker Запустите службу веб-сервера с помощью команды: docker service ps webserver Вы должны увидеть следующую информацию: ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS ia2qc8a5f5n4 webserver.1 httpd:latest Manager-Node Ready Ready 1 second ago 7roily9zpjvq \_ webserver.1 httpd:latest Worker-Node Shutdown Running 15 seconds ago r7nzo325cu73 webserver.2 httpd:latest Manager-Node Running Running 23 minutes ago С помощью данной статьи, вы смогли установить и настроить кластер Docker Swarm для ОС Ubuntu 16.04. Теперь вы можете легко масштабировать свое приложение в кластере до тысячи узлов и пятидесяти тысяч контейнеров без существенной потери производительности.
img
Целью статьи является рассмотреть вопросы разбития жестких дисков и создание на разделах различных файловых систем в Linux. Будет рассмотрено управление дисками MBR и GPT. Использование утилиты mkfs. Основные утилиты для работы с разделами жестких дисков и создания файловых систем: fdisk, gdisk, parted, gparted, mkfs, mkswap. Для работы с жесткими дисками, такими операциями как изменение размеров логических разделов, разбиение жестких дисков, создание файловых таблиц на разделах жестких дисков требуются права суперпользователя. Переключится в данных режим из режима обычного пользователя можно командой sudo –s и введя пароль. Утилита fdisk , позволяет нам проводить различные манипуляции с разделами жесткого диска. Команда fdisk –l, мы можем посмотреть какие разделы у нас есть на жестком диске. И так вводим команду fdisk –l и видим у на 3 физических жестких диска /dev/sda, /dev/sdb, /dev/sdc соответствующих размеров. Нас интересует раздел /dev/sdc/ на 10 GB с которым мы будем производить манипуляции. Далее сделаем разбивку и создадим логические разделы. fdisk /dev/sdc Сразу получаем предупреждение, что раздел не содержит ни одного опознанного раздела. Создадим новые разделы. Поделим на 2 части. У нас получится следующее. Как мы можем увидеть создались 2 раздела и имеют ID 83, т.е. Linux раздел по умолчанию. Теперь давайте поменяем тип раздела. Это сделать можно просто в меню выбираем t – смена раздела. Выбираем номер, например, 2 и нажимаем L, чтобы посмотреть hex коды, соответствующие разным типам. Изменим тип раздела Linux на swap раздел подкачки. И теперь мы можем увидеть введя команду p. У нас изменился тип раздела на раздел подкачки. Обычно данные раздел используется, когда не хватает оперативной памяти у машины. Теперь необходимо записать производимые изменения командой w. После ввода данной команды диски синхронизируются и таблица разделов изменена. После этого введя команду fdisk –l мы можем убедиться, что действительно появились разделы. Для того, чтобы этот раздел действительно стал работать, как раздел подкачки, его необходимо отформатировать, как раздел подкачки. Для этого есть команда специальная mkswap /dev/sdc2. Указываем команду и раздел, который должен быть размечен. После команды mkswap раздел размечается и теперь его необходимо включить swapon /dev/sdc2. Для того, чтобы посмотреть какие разделы подкачки используются используем команду swapon –s. Для выключения раздела подкачки можно использовать обратную команду swapoff /dev/sdc2. На самом деле, как мы убедились разделы подкачки создавать достаточно просто. Если не хватает оперативки, то пере разбили, отформатировали и включили. Теперь поработает с первым разделом. Будем использовать команду mkfs. man mkfs В описании утилиты сказано, что данная утилита, строит Linux файловую систему. У данной утилиты, очень большое количество ключей. Использую данную утилиты мы можем отформатировать логический раздел в старую файловую систему ext2, с помощью команды mkfs –t ext2 /dev/sdc1. А затем переформатировать в более новую ext3. Файловые системы различаются тем, что более новая файловая система журналируемая. Т.е. ведется журнал изменений происходящего на данной файловой системе и в случае чего-нибудь мы можем восстановить или откатить изменения. Еще более новая файловая система ext4. Отличия данной файловой системы от предыдущей в том, что она может работать с большими размерами жестких дисков, может в себе хранить большие размеры файлов, намного меньше фрагментация. В случае если мы хотим использовать, какие-то более экзотические файловые системы, то нам необходимо скачать соответствующую утилиту. Например, если мы хотим использовать файловую систему xfs. Если мы попробуем отформатировать mkfs –t xfs /dev/sdc1 то мы получим ошибку. Попробуем поискать в кэше необходимый пакет apt-cache search xfs. Находим необходимый пакет. Как мы можем видеть это утилита для управления XFS файловой системой. Следовательно, необходимо установить данный пакет, и мы сможем отформатировать в xfs файловую систему. Устанавливаем apt-get install xfsprogs. После установки пробуем отформатировать в xfs. Учитывая то, что мы уже форматировали в файловую систему ext4, нам необходимо команду на форматирование запускать с ключом –f. Получаем в следующем виде: mkfs –t xfs –f /dev/sdc1 Теперь думаю интересно будет посмотреть, как сделать данный раздел рабочим под Windows операционную систему. Возвращаемся обратно в редактирование логических разделов fdisk /dev/sdc и говорим , что мы ходим поменять тип первого нашего раздела с помощью команды t. Далее выбираем метку, которую понимает операционная система Windows, это FAT/FAT16/FAT32/NTFS. Например, NTFS id 86. Изменили. В этом можно убедится выведя таблицу с помощью команды p. После изменения типа логического раздела, не забываем записать изменения с помощью команды w. Далее необходимо логический раздел отформатировать mkfs -t ntfs /dev/sdc1. Следовательно, как мы видим утилита mkfs прекрасно форматирует логические разделы в разные файловые системы, а если необходима специфическая файловая система всегда можно доставить недостающие компоненты и все будет работать. Если посмотреть мануал по fdisk, то мы увидим, что он не умеет работать с дисками GPT и не может работать с большими разделами, только с MBR. Как известно в современных ПК уже используется UEFI, которая работает с GPT. А как следствие мы можем сделать вывод, что fdisk не сможет работать с дисками размер которых более 2 ТБ. Для работы с большими дисками можно использовать другую программу gdisk. man gdisk Как можно прочитать в описании gdisk – это интерактивный манипулятор для работы с gpt. Он работает практически также как и fdisk, только для начала необходимо переразбить жесткий диск из MBR в GPT. gdisk /dev/sdc Нажав на знак вопроса получим небольшую подсказку. И нажимаем команду o для создания нового пустого GPT. Получаем вот такое предупреждение. Которое говорит о том, что будет создан новый GPT и создаст маленький новый защищенный MBR для совместимости со старыми системами, иначе старые системы будут затирать GPT. С помощью команды p можно посмотреть список логических разделов, а с помощью команды w записать изменения. Разделы в данной программе создаются аналогично fdisk. Посмотрим еще одну утилиту parted. man parted Интересная программа имеющая больший функционал, чем fdisk и gdisk. Умеет работать с дисками более 2 ТБ, умеет изменять разделы на горячую, может создавать разделы сразу с файловой системой, искать и восстанавливать разделы на жестком диске. Команда parted –l покажет информацию по подключенным жестким дискам, типам разделов и логическим разделам. Заходим в редактирование жесткого диска parted /dev/sdc и набираем слово help. Получаем достаточно справку с опциями. У данной утилиты есть графический интерфейс, если вы работаете с GUI. Можно установить через apt-get install gparted.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59