阿里云安全组怎么设置(阿里云服务器过户办法)

本系列文章将从以下几个方面详细介绍 EMR ClickHouse 的操作指南:

ClickHouse 概述

快速入门(本文)

ClickHouse 运维

数据导入

常见问题

EMR ClickHouse 操作指南 — 快速入门

阿里云安全组怎么设置(阿里云服务器过户办法)

一、创建集群:

创建 ClickHouse 集群的详细操作步骤和相关配置。

前提条件

已在目标地域创建一个专有网络和交换机,详情请参见使用专有网络和使用交换机。

使用专有网络:

https://help.aliyun.com/document_detail/65398.htm

使用交换机:https://help.aliyun.com/document_detail/65387.htm

背景信息

机型、内存和磁盘的设置,请参见 Usage Recommendations:https://clickhouse.tech/docs/en/operations/tips

操作步骤

1、进入创建集群页面。

a、登录 阿里云E-MapReduce控制台。

EMR 控制台:https://emr.console.aliyun.com

b、在顶部菜单栏处,根据实际情况选择地域和资源组。

地域:创建的集群将会在对应的地域内,一旦创建不能修改。

资源组:默认显示账号全部资源。

c、单击创建集群,进行创建。

2、配置集群信息。

创建集群时,您需要对集群进行软件配置、硬件配置和基础配置。

#注意#

集群创建完成后,除了集群名称以外,其他配置均无法修改,所以在创建时请仔细确认各项配置。

软件配置

配置项说明集群类型选择 ClickHouse。产品版本默认最新的软件版本。必选服务默认的服务组件,后期可以在管理页面中启停服务。可选服务根据您的实际需求选择其他的一些组件,被选中的组件会默认启动相关的服务进程。

说明:组件越多,对机器的配置要求也越高,所以在下面的步骤中您需要根据实际的组件数量进行机器选型,否则可能没有足够的资源运行这些服务。

高级设置

软件自定义配置:可指定 JSON 文件对集群中的基础软件(例如Hadoop、Spark 和 Hive 等)进行配置,详细使用方法请参见软件配置,默认不开启:https://help.aliyun.com/document_detail/28106.htm。

硬件配置

区域配置项说明付费类型付费类型默认包年包月。当前支持的付费类型如下:

按量付费:一种后付费模式,即先使用再付费。按量付费是根据实际使用的小时数来支付费用,每小时计费一次,适合短期的测试任务或是灵活的动态任务。

包年包月:一种预付费模式,即先付费再使用。

说明:建议测试场景下使用按量付费,测试正常后再新建一个包年包月的生产集群正式使用。

网络配置可用区可用区为在同一地域下的不同物理区域,可用区之间内网互通。通常使用默认的可用区即可。网络类型默认专有网络。VPC选择在该地域的VPC。如果没有可用的VPC,单击创建VPC/子网(交换机)前往新建。交换机选择在对应 VPC 下可用区的交换机,如果在这个可用区没有可用的交换机,则需要新创建一个。安全组名称

注意:禁止使用 ECS 上创建的企业安全组。

您可以直接输入安全组名称来新建一个安全组。如果已有在使用的安全组,则可以直接选择使用。

安全组详情请参见安全组概述:https://help.aliyun.com/document_detail/25387.htm

实例选型配置

您可以根据需要选择实例规格,详情请参见实例规格族:https://help.aliyun.com/document_detail/25378.htm

系统盘配置:根据需要选择 ESSD 云盘、SSD 云盘或者高效云盘。

系统盘大小:根据需要调整磁盘容量,推荐至少120 GB。取值范围为50 ~ 2048 GB。

数据盘配置:根据需要选择 ESSD 云盘、SSD 云盘或者高效云盘。

数据盘大小:根据需要调整磁盘容量,推荐至少80 GB。取值范围为40 ~ 32768 GB。

ClickHouse 数量:默认4台。

基础信息

在基础信息区域,配置如下参数。

注意:暂不支持高级配置区域的参数,因此请勿设置

配置项说明集群名称集群的名字,长度限制为1~64个字符,仅可使用中文、字母、数字、中划线(-)和下划线(_)。Shard数量分片的数量。不支持修改。

说明:创建集群时,Shard 数量会被自动计算, Shard数量 = ClickHouse数量 ÷ Replica数量。请保证 ClickHouse 数量可以被 Replica 数量整除,否则无法创建集群。

Replica数量

副本的数量。默认为2。

说明:如果需要保证 ClickHouse 集群的高可用,Replica数量至少为2。

挂载公网

说明:不开启挂载公网,将无法使用EMR控制台访问链接与端口功能查看开源组件的 Web UI。

密钥对

关于密钥对的使用详情请参见SSH密钥对:https://help.aliyun.com/document_detail/51792.htm

登录密码

设置 Master 节点的登录密码,密码规则:8~30个字符,且必须同时包含大写字母、小写字母、数字和特殊字符。特殊字符包括:感叹号(!)、at(@)、井号(#)、美元符号($)、百分号(%)、乘方(^)、and(&)和星号(*)。

说明:页面右边会显示您所创建集群的配置清单以及集群费用。根据不同的付费类型,展示不同的价格信息。

选中 E-MapReduce 服务条款复选框。

单击创建。创建集群后可以通过刷新页面来查看进度,当集群状态显示为空闲时,集群创建成功

二、快速使用 ClickHouse

快速将数据随机写入 ClickHouse 集群各个节点的本地表

前提条件

已创建 ClickHouse 集群,详情参见上文。

操作步骤

使用 SSH 方式登录 ClickHouse 集群,详情请参见登录集群:https://help.aliyun.com/document_detail/169150.htm

执行以下命令,下载官方样例数据集。

curl https://datasets.clickhouse.tech/hits/tsv/hits_v1.tsv.xz | unxz –threads=`nproc` > hits_v1.tsv

执行如下命令,启动 ClickHouse 客户端。

clickhouse-client您也可以使用默认的 default 用户启动 ClickHouse 客户端。clickhouse-client -u default –password

说明:因为默认密码为空,所以直接按回车键,即可启动ClickHouse客户端。执行如下命令,创建数据库。可以使用on ClUSTER参数在集群的所有节点创建数据库, 默认集群标识为cluster_emr。CREATE DATABASE IF NOT EXISTS demo on CLUSTER cluster_emr返回信息如下所示。

在集群上的所有节点创建一张复制表(Replicated表)。

复制表(Replicated表)会根据副本的个数,实现数据的多副本,并实现数据的最终一致性。

CREATE TABLE demo.hits_local ON CLUSTER cluster_emr( `WatchID` UInt64, `JavaEnable` UInt8, `Title` String, `GoodEvent` Int16, `EventTime` DateTime, `EventDate` Date, `CounterID` UInt32, `ClientIP` UInt32, `ClientIP6` FixedString(16), `RegionID` UInt32, `UserID` UInt64, `CounterClass` Int8, `OS` UInt8, `UserAgent` UInt8, `URL` String, `Referer` String, `URLDomain` String, `RefererDomain` String, `Refresh` UInt8, `IsRobot` UInt8, `RefererCategories` Array(UInt16), `URLCategories` Array(UInt16), `URLRegions` Array(UInt32), `RefererRegions` Array(UInt32), `ResolutionWidth` UInt16, `ResolutionHeight` UInt16, `ResolutionDepth` UInt8, `FlashMajor` UInt8, `FlashMinor` UInt8, `FlashMinor2` String, `NetMajor` UInt8, `NetMinor` UInt8, `UserAgentMajor` UInt16, `UserAgentMinor` FixedString(2), `CookieEnable` UInt8, `JavascriptEnable` UInt8, `IsMobile` UInt8, `MobilePhone` UInt8, `MobilePhoneModel` String, `Params` String, `IPNetworkID` UInt32, `TraficSourceID` Int8, `SearchEngineID` UInt16, `SearchPhrase` String, `AdvEngineID` UInt8, `IsArtifical` UInt8, `WindowClientWidth` UInt16, `WindowClientHeight` UInt16, `ClientTimeZone` Int16, `ClientEventTime` DateTime, `SilverlightVersion1` UInt8, `SilverlightVersion2` UInt8, `SilverlightVersion3` UInt32, `SilverlightVersion4` UInt16, `PageCharset` String, `CodeVersion` UInt32, `IsLink` UInt8, `IsDownload` UInt8, `IsNotBounce` UInt8, `FUniqID` UInt64, `HID` UInt32, `IsOldCounter` UInt8, `IsEvent` UInt8, `IsParameter` UInt8, `DontCountHits` UInt8, `WithHash` UInt8, `HitColor` FixedString(1), `UTCEventTime` DateTime, `Age` UInt8, `Sex` UInt8, `Income` UInt8, `Interests` UInt16, `Robotness` UInt8, `GeneralInterests` Array(UInt16), `RemoteIP` UInt32, `RemoteIP6` FixedString(16), `WindowName` Int32, `OpenerName` Int32, `HistoryLength` Int16, `BrowserLanguage` FixedString(2), `BrowserCountry` FixedString(2), `SocialNetwork` String, `SocialAction` String, `HTTPError` UInt16, `SendTiming` Int32, `DNSTiming` Int32, `ConnectTiming` Int32, `ResponseStartTiming` Int32, `ResponseEndTiming` Int32, `FetchTiming` Int32, `RedirectTiming` Int32, `DOMInteractiveTiming` Int32, `DOMContentLoadedTiming` Int32, `DOMCompleteTiming` Int32, `LoadEventStartTiming` Int32, `LoadEventEndTiming` Int32, `NSToDOMContentLoadedTiming` Int32, `FirstPaintTiming` Int32, `RedirectCount` Int8, `SocialSourceNetworkID` UInt8, `SocialSourcePage` String, `ParamPrice` Int64, `ParamOrderID` String, `ParamCurrency` FixedString(3), `ParamCurrencyID` UInt16, `GoalsReached` Array(UInt32), `OpenstatServiceName` String, `OpenstatCampaignID` String, `OpenstatAdID` String, `OpenstatSourceID` String, `UTMSource` String, `UTMMedium` String, `UTMCampaign` String, `UTMContent` String, `UTMTerm` String, `FromTag` String, `HasGCLID` UInt8, `RefererHash` UInt64, `URLHash` UInt64, `CLID` UInt32, `YCLID` UInt64, `ShareService` String, `ShareURL` String, `ShareTitle` String, `ParsedParams` Nested(Key1 String,Key2 String,Key3 String,Key4 String,Key5 String,ValueDouble Float64), `IslandID` FixedString(16), `RequestNum` UInt32, `RequestTry` UInt8)ENGINE = ReplicatedMergeTree(‘/clickhouse/tables/{shard}/{database}/hits_local’, ‘{replica}’)PARTITION BY toYYYYMM(EventDate)ORDER BY (CounterID, EventDate, intHash32(UserID))SAMPLE BY intHash32(UserID)说明:{shard}和{replica}是阿里云EMR为ClickHouse集群自动生成的宏定义,可以直接使用。返回信息如下图所示。

执行以下命令,创建分布式(Distributed)表。

分布式表不存储数据,仅仅是底层表的一个View,但可以在多个服务器上进行分布式查询。本例中使用随机函数rand(),表示数据会随机写入各个节点的本地表。

CREATE TABLE demo.hits_all on CLUSTER cluster_emr AS demo.hits_local ENGINE = Distributed(cluster_emr, demo, hits_local, rand())

退出ClickHouse客户端,在样例数据的目录下执行以下命令,导入数据。

clickhouse-client –query “INSERT INTO demo.hits_all FORMAT TSV” –max_insert_block_size=100000 < hits_v1.tsv

重新启动ClickHouse客户端,查看数据。

因为数据是随机写入的,各节点数据量可能不同。

查看emr-header-1节点demo.hits_all的数据量。

select count(*) from demo.hits_all

返回信息如下。

查看 emr-header-1 节点 demo.hits_local 的数据量。

select count(*) from demo.hits_local返回信息如下。

查看 emr-worker-1 节点 demo.hits_local 的数据量。

说明:其余节点,您也可以按照以下步骤来查看demo.hits_local的数据量。

a、执行以下命令,在Master节点切换到hadoop账号

su hadoop

b、执行以下命令,切换到emr-worker-1节点

ssh emr-worker-1

c、执行以下命令,查看demo.hits_local的数据量

select count(*) from demo.hits_local返回信息如下。

三、访问模式

——访问 E-MapReduce(简称EMR)上的 ClickHouse 集群支持通过原生 JDBC 访问和通过负载均衡 SLB 访问两种方式

背景信息

通过原生 JDBC 访问 ClickHouse 集群的架构图如下:

通过负载均衡器 SLB 访问 ClickHouse 集群的架构图如下:

前提条件

已创建 E-MapReduce 的 ClickHouse 集群,详情请参见前文。

已创建 SLB 服务,详情请参见创建实例:

https://help.aliyun.com/document_detail/85941.htm

注意: 如果是想通过负载均衡器SLB访问ClickHouse集群,则需要创建SLB服务。并且在创建SLB服务时,如果实例类型选择的是私网,则在选择专有网络时,必须选择与EMR ClickHouse集群相同的VPC。

通过原生 JDBC 访问 ClickHouse 集群

登录 阿里云E-MapReduce控制台:

https://emr.console.aliyun.com

在顶部菜单栏处,根据实际情况选择地域和资源组。

单击上方的集群管理页签。

在集群管理页面,单击相应集群所在行的详情。

配置JDBC以访问ClickHouse集群,详情请参见ClickHouse JDBC driver:https://github.com/ClickHouse/clickhouse-jdbc

通过负载均衡器 SLB 访问 ClickHouse 集群配置 SLB 服务,详情请参见配置实例:https://help.aliyun.com/document_detail/86451.htm通常情况下,ClickHouse 使用 SLB 服务仅需要配置 HTTP 及 TCP 两种协议的监听,如果您有需要,也可以配置HTTPS的监听。配置监听详情,请参见添加TCP监听、添加HTTP监听和添加HTTPS监听 。

添加 TCP 监听:https://help.aliyun.com/document_detail/85995.htm

添加 HTTP 监听:https://help.aliyun.com/document_detail/85949.htm

添加 HTTPS 监听:https://help.aliyun.com/document_detail/86438.htm

#注意#

TCP监听所使用的虚拟服务器组,其端口应为ClickHouse通过TCP连接到服务器的端口,默认为9000。您可以在EMR控制台ClickHouse服务的配置页面,在搜索区域搜索tcp_port参数,参数值即为TCP端口。

HTTP监听所使用的虚拟服务器组,其端口应为ClickHouse通过HTTP连接到服务器的端口,默认为8123。您可以在EMR控制台ClickHouse服务的配置页面,在搜索区域搜索http_port参数,参数值即为HTTP端口。

配置 JDBC 以访问 ClickHouse 集群,详情请参见ClickHouse JDBC driver:

https://github.com/ClickHouse/clickhouse-jdbc

后续

概述

ClickHouse 运维

数据导入

常见问题

获取更详细的 EMR ClickHouse 相关信息,可至产品文档页查看:

https://help.aliyun.com/document_detail/212195.html

扫描下方二维码加入阿里云 EMR 相关产品钉钉交流群一起参与讨论吧!

发表评论

登录后才能评论