CDH安装Kylin2.0及操作

    1. CDH安装Kylin2.0及操作

第一步,安装

1,安装包准备

最新安装包版本为2.0,下载链接如下:http://kylin.apache.org/download/

下载内容为apache-kylin-2.0.0-bin-cdh57.tar.gz,见下图:

CDH安装Kylin2.0及操作_第1张图片

2,安装

通过xftp上传下载的安装包apache-kylin-2.0.0-bin-cdh57.tar.gz到CDH集群的Region Server节点

CDH安装Kylin2.0及操作_第2张图片

默认上传到/opt/kylin目录下,如果目录不存在则执行命令创建目录mkdir -p /opt/kylin

在xshell中跳转到新创建的目录cd /opt/kylin

在目录内执行命令解压安装包,tar -xvf apache-kylin-2.0.0-bin-cdh57.tar.gz

解压后文件目录如下:

CDH安装Kylin2.0及操作_第3张图片

其中bin目录为sh脚本存放目录

conf目录为配置文件存放目录

lib为类库存放目录

tomcat为kylin Web应用(图形化控制台)的存放目录

logs为日志存放目录

 

3,初始化kafka类库

上传kafka-clients-0.10.0-kafka-2.1.0.jar到lib目录下

CDH安装Kylin2.0及操作_第4张图片

 

第二步,配置

1,配置环境变量

在安装kylin的主机上修改环境变量并使之生效

执行命令并添加如下内容vi /etc/profile

#Kylin

export KYLIN_HOME=/opt/Kylin/apache-kylin-2.0.0-bin

#Hadoop

export HBASE_HOME=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hbase

export HADOOP_HOME=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/

export HIVE_HOME=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hive

export HADOOP_CMD=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hadoop/bin/hadoop

export HCAT_HOME=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/hive-hcatalog

见下图,红框内为新增加内容

CDH安装Kylin2.0及操作_第5张图片

执行source /etc/profile使环境变量生效,输入echo $KYLIN_HOME检查变量是否生效

2,配置kylin.properties

1,跳转到kylin的conf目录,修改kylin.properties文件,在文件末尾追加如下内容:

kylin.engine.mr.lib-dir=/opt/cloudera/parcels/CDH-5.10.0-1.cdh5.10.0.p0.41/lib/sentry/lib

 

kylin.rest.servers=n10.worker.com:7070

kylin.job.jar=/opt/kylin/apache-kylin-2.0.0-bin/lib/kylin-job-2.0.0.jar

kylin.coprocessor.local.jar=/opt/kylin/apache-kylin-2.0.0-bin/lib/kylin-coprocessor-2.0.0.jar

 

其中kylin.rest.servers为kylin安装服务器主机名和端口号

2,去掉kylin.env.hadoop-conf-dir配置项前面的#注释

如下所示

# Hadoop conf folder, will export this as "HADOOP_CONF_DIR" to run spark-submit

# This must contain site xmls of core, yarn, hive, and hbase in one folder

kylin.env.hadoop-conf-dir=/etc/hadoop/conf

3,配置spark运行参数

根据当地集群情况,配置使用内存,使用虚拟核心和执行实例数。

kylin.engine.spark-conf.spark.executor.memory=1G #executor的分配内存大小

kylin.engine.spark-conf.spark.executor.cores=2 #executor的核心数

kylin.engine.spark-conf.spark.executor.instances=1 #执行executor的实例数

 

4,配置Mapreduce参数

kylin.engine.mr.reduce-input-mb=500 # reduce容器的内存大小

kylin.engine.mr.max-reducer-number=500 #最大reduce数量

kylin.engine.mr.mapper-input-rows=1000000 #输入数据行数

3,配置hive,hbase配置文件

上一步中kylin.env.hadoop-conf-dir配置的目录为hive,hbase等文件的配置目录,目录中至少包含如下图所示文件:(注,有些文件原先已经存在)

如果hive-site.xml,hbase-site.xml不存在,需要在其他节点拷贝相应文件过来,下面是这两个文件的样板文件

hive-site.xml配置:



 
    hive.metastore.uris
    thrift://n3.worker.com:9083
 

 
    hive.metastore.client.socket.timeout
    300
 

 
    javax.jdo.option.ConnectionURL
    jdbc:postgresql://n3.worker.com:5432/hive
 

 
    javax.jdo.option.ConnectionDriverName
    org.postgresql.Driver
 

 
    javax.jdo.option.ConnectionUserName
    hive
 

 
    javax.jdo.option.ConnectionPassword
    hive
 

 
    hive.metastore.try.direct.sql.ddl
    false
 

 
    hive.metastore.try.direct.sql
    false
 

 
    datanucleus.autoCreateSchema
    false
 

 
    datanucleus.metadata.validate
    false
 

 
    hive.metastore.schema.verification
    false
 

 
    datanucleus.autoStartMechanism
    SchemaTable
 

 
    hive.metastore.warehouse.dir
    /user/hive/warehouse
 

 
    hive.warehouse.subdir.inherit.perms
    true
 

 
    hive.auto.convert.join
    true
 

 
    hive.auto.convert.join.noconditionaltask.size
    20971520
 

 
    hive.optimize.bucketmapjoin.sortedmerge
    false
 

 
    hive.smbjoin.cache.rows
    10000
 

 
    hive.server2.logging.operation.enabled
    true
 

 
    hive.server2.logging.operation.log.location
    /var/log/hive/operation_logs
 

 
    mapred.reduce.tasks
    -1
 

 
    hive.exec.reducers.bytes.per.reducer
    67108864
 

 
    hive.exec.copyfile.maxsize
    33554432
 

 
    hive.exec.reducers.max
    1099
 

 
    hive.vectorized.groupby.checkinterval
    4096
 

 
    hive.vectorized.groupby.flush.percent
    0.1
 

 
    hive.compute.query.using.stats
    false
 

 
    hive.vectorized.execution.enabled
    true
 

 
    hive.vectorized.execution.reduce.enabled
    false
 

 
    hive.merge.mapfiles
    true
 

 
    hive.merge.mapredfiles
    false
 

 
    hive.cbo.enable
    false
 

 
    hive.fetch.task.conversion
    minimal
 

 
    hive.fetch.task.conversion.threshold
    268435456
 

 
    hive.limit.pushdown.memory.usage
    0.1
 

 
    hive.merge.sparkfiles
    true
 

 
    hive.merge.smallfiles.avgsize
    16777216
 

 
    hive.merge.size.per.task
    268435456
 

 
    hive.optimize.reducededuplication
    true
 

 
    hive.optimize.reducededuplication.min.reducer
    4
 

 
    hive.map.aggr
    true
 

 
    hive.map.aggr.hash.percentmemory
    0.5
 

 
    hive.optimize.sort.dynamic.partition
    false
 

 
    hive.execution.engine
    mr
 

 
    spark.executor.memory
    5932423577
 

 
    spark.driver.memory
    3865470566
 

 
    spark.executor.cores
    4
 

 
    spark.yarn.driver.memoryOverhead
    409
 

 
    spark.yarn.executor.memoryOverhead
    998
 

 
    spark.dynamicAllocation.enabled
    true
 

 
    spark.dynamicAllocation.initialExecutors
    1
 

 
    spark.dynamicAllocation.minExecutors
    1
 

 
    spark.dynamicAllocation.maxExecutors
    2147483647
 

 
    hive.metastore.execute.setugi
    true
 

 
    hive.support.concurrency
    true
 

 
    hive.zookeeper.quorum
    archive.cloudera.com,n3.worker.com,n4.worker.com,n7.worker.com,n8.worker.com
 

 
    hive.zookeeper.client.port
    2181
 

 
    hive.zookeeper.namespace
    hive_zookeeper_namespace_hive
 

 
    hbase.zookeeper.quorum
    archive.cloudera.com,n3.worker.com,n4.worker.com,n7.worker.com,n8.worker.com
 

 
    hbase.zookeeper.property.clientPort
    2181
 

 
    hive.metastore.server.min.threads
    200
 

 
    hive.metastore.server.max.threads
    100000
 

 
    hive.cluster.delegation.token.store.class
    org.apache.hadoop.hive.thrift.MemoryTokenStore
 

 
    hive.metastore.event.listeners
   
 

 
    hive.metastore.server.max.message.size
    104857600
 

 
    hive.service.metrics.file.location
    /var/log/hive/metrics-hivemetastore/metrics.log
 

 
    hive.metastore.metrics.enabled
    true
 

 
    hive.service.metrics.file.frequency
    30000
 
 
 
    hive.server2.enable.doAs
    true
 

 
    hive.server2.use.SSL
    false
 

 
    spark.shuffle.service.enabled
    true
 


 

hbase-site.xml配置:



 
    hbase.rootdir
    hdfs://nameservice1/hbase
 

 
    hbase.master.port
    60000
 

 
    hbase.master.ipc.address
    0.0.0.0
 

 
    hbase.cluster.distributed
    true
 

 
    hbase.replication
    true
 

 
    replication.source.ratio
    1.0
 

 
    replication.source.nb.capacity
    1000
 

 
    hbase.master.info.port
    60010
 

 
    hbase.client.write.buffer
    2097152
 

 
    hbase.client.pause
    100
 

 
    hbase.client.retries.number
    35
 

 
    hbase.client.scanner.caching
    100
 

 
    hbase.client.keyvalue.maxsize
    10485760
 

 
    hbase.ipc.client.allowsInterrupt
    true
 

 
    hbase.client.primaryCallTimeout.get
    10
 

 
    hbase.client.primaryCallTimeout.multiget
    10
 

 
    hbase.master.handler.count
    25
 

 
    hbase.master.executor.openregion.threads
    5
 

 
    hbase.master.executor.closeregion.threads
    5
 

 
    hbase.master.executor.serverops.threads
    5
 

 
    hbase.splitlog.manager.timeout
    120000
 

 
    hbase.master.logcleaner.ttl
    60000
 

 
    hbase.regionserver.info.port
    60030
 

 
    hbase.regionserver.handler.count
    30
 

 
    hbase.regionserver.metahandler.count
    10
 

 
    hbase.server.thread.wakefrequency
    10000
 

 
    hbase.coprocessor.abortonerror
    false
 

 
    hbase.superuser
   
 

 
    hbase.rpc.timeout
    60000
 

 
    hbase.snapshot.enabled
    true
 

 
    hbase.snapshot.master.timeoutMillis
    60000
 

 
    hbase.snapshot.region.timeout
    60000
 

 
    hbase.snapshot.master.timeout.millis
    60000
 

 
    hbase.security.authentication
    simple
 

 
    hbase.security.authorization
    false
 

 
    hbase.row.level.authorization
    false
 

 
    hbase.rpc.protection
    authentication
 

 
    zookeeper.session.timeout
    60000
 

 
    zookeeper.znode.parent
    /hbase
 

 
    zookeeper.znode.rootserver
    root-region-server
 

 
    hbase.zookeeper.quorum
    archive.cloudera.com,n3.worker.com,n4.worker.com,n7.worker.com,n8.worker.com
 

 
    hbase.zookeeper.property.clientPort
    2181
 

拷贝过来的文件请检查配置项中针对zookeeper的配置是否正确,如果不正确请予以修正

CDH安装Kylin2.0及操作_第6张图片

 

 

4,配置相关

如果集群中不存在hive组件,请先安装hive服务,安装hive之前需要在内置的postgresql数据库中添加hive数据库,或者安装MySQL,在安装hive服务过程中配置安装的MySQL数据库。

安装完毕hive服务,会在安装hive的节点上找到hive-site.xml文件,拷贝到kylin安装节点上即可。

第三步,kylin使用

1,kylin服务启动与停止

1,kylin启动

跳转到安装目录的bin目录下,执行命令./kylin.sh start启动kylin服务。

在启动过程中会检查hive和hbase的依赖,如果配置丢失或环境变量配置出错,会在启动过程中出现错误信息,请重新执行第二步的配置过程后重试。

CDH安装Kylin2.0及操作_第7张图片

2,kylin服务停止

同样的,使用命令./kylin.sh stop可以停止kylin服务

 

注:在修改kylin.properties或其他相关配置时,需要重启kylin才能使配置生效

2,kylin登录

输入http://{kylin安装主机名}:7070/kylin,在界面中输入用户名ADMIN,密码KYLIN登录kylin。

CDH安装Kylin2.0及操作_第8张图片

登录kylin后,在下图中点击+加号,添加一个Project

CDH安装Kylin2.0及操作_第9张图片

3,kylin日志查看

在xshell中输入tail -f logs/kylin.log命令查看kylin运行日志,logs/kylin.log文件为kylin主程序日志。

另外,logs/kylin.out为tomcat运行日志

第四步,模型及Cube处理

1,kafka流处理table创建

在kylin主界面选择创建的project,如下图中的Test_P

1,在主界面找到下图所示Add Streaming Table按钮,依次点击Data Source标签->Add Streaming Table按钮

CDH安装Kylin2.0及操作_第10张图片

2,使用下面的json字符串创建Table

{"Type":0,"RealCode":"RealCode","ServiceType":0,"DeviceType":0,"PlateNum":"PlateNum","ProtoType":0,"RouteType":0,"GroupAccount":"GroupAccount","Time":1497152123000,"FileType":0,"AuthType":"AuthType","AccessSystemID":1138067013,"RealType":0,"CyberCode":"CyberCode","IMSI":"IMSI","RESOURCETYPE":33,"ManufacturerCode":"723005104","SystemType":"145","DATASOURCEID":1701480372,"InterfaceID":3,"AreaCode":"371082","TerminalMac":"TerminalMac","MachineCode":"72300510494885E24008C","IMEI":"IMEI","InterfaceGroupID":4,"UnitCode":"37108235180040","GuildID":"GuildID","RouteMac":"08:10:78:CA:E2:0F"}

3,如下图所示步骤创建Streaming表,1,粘贴上面的json到窗口左侧,2,点击中间的》按钮,自动出现Table的column列表,3,填入Table Name表名,如T_kafka

CDH安装Kylin2.0及操作_第11张图片

4,修改Column列表中int列类型为bigint(关键),修改SystemType为varchar(256)

CDH安装Kylin2.0及操作_第12张图片

修改后如下:

CDH安装Kylin2.0及操作_第13张图片

5,输入table name表名后点击窗口下方next按钮

在新的界面中录入kafka的Topic,如kylin

在下方维护集群的kafka broker信息,端口号为9092

CDH安装Kylin2.0及操作_第14张图片

点击Kafka Setting下面的save按钮保存kafka配置信息,点击右下角Submit按钮保存Streaming Table

2,模型创建

1,在kylin主界面选择Models标签页,点击+New按钮,出现下拉列表,选择New Model按钮,如下图所示

CDH安装Kylin2.0及操作_第15张图片

2,输入模型名称(如m_kafka)点击Next

CDH安装Kylin2.0及操作_第16张图片

3,在Fact Table的下拉列表中选择刚刚创建的T_kafka Streaming Table,点击Next

CDH安装Kylin2.0及操作_第17张图片

4,在维度Dimensions选择中添加维度列,如下图所示,点击Next

CDH安装Kylin2.0及操作_第18张图片

5,在度量列选择界面选择度量列如下所示,点击Next

 

 

CDH安装Kylin2.0及操作_第19张图片

6,在Setting中选择Partition列为DAY_START,选择日期格式为yyyy-MM-dd,如果选择日期列为小时,分钟等,需要选择日期时间格式,如yyyy-MM-dd HH:MM:SS

CDH安装Kylin2.0及操作_第20张图片

7,点击Submit按钮保存新建的模型

3,Cube创建与构建

1,在kylin主界面选择Models标签页,点击+New按钮,出现下拉列表,选择New Cube按钮,如下图所示

 

CDH安装Kylin2.0及操作_第21张图片

2,在模型名称Model Name下拉列表中选择刚刚创建的模型,如下图

CDH安装Kylin2.0及操作_第22张图片

2,输入Cube Name,如C_kafka,点Next

CDH安装Kylin2.0及操作_第23张图片

3,选择维度,最终选择如下图所示列,点击Next

CDH安装Kylin2.0及操作_第24张图片

CDH安装Kylin2.0及操作_第25张图片

4,创建度量如下图所示,点Next

CDH安装Kylin2.0及操作_第26张图片

其中单个度量选择及配置如下图所示:

CDH安装Kylin2.0及操作_第27张图片

5,刷新日期设置成如下图所示,有0.5小时,8小时,1天,7天,28天,Partition Start Date选择当天时间的零点,点Next

CDH安装Kylin2.0及操作_第28张图片

6,配置高级设置Advanced Setting中的统计组如下图所示,其他使用界面默认值,Kube Engine选择MapReduce,不可选择Spark,目前2.0版本kylin不支持Spark构建kafka流数据。点Next

CDH安装Kylin2.0及操作_第29张图片

CDH安装Kylin2.0及操作_第30张图片

7,Configuration Over writes之间点Next

CDH安装Kylin2.0及操作_第31张图片

8,在Overview界面查看配置信息是否正确,点Submit保存新增的Cube

 

4,Cube构建与SQL查询验证

1,Cube构建

Cube在创建成果后会在Model模型界面列表中显示出来,如下图所示:

CDH安装Kylin2.0及操作_第32张图片

找到刚刚创建的Cube,在Actions列中点开动作列表,选择build,执行build

CDH安装Kylin2.0及操作_第33张图片

 

2,build过程监控

选择窗口最上方的Montor标签,最新build的任务会以列表的形式显示

CDH安装Kylin2.0及操作_第34张图片

查看具体job的步骤详情,可以点击最后一列的》按钮

CDH安装Kylin2.0及操作_第35张图片

3,SQL查询验证

选择窗口最上方的Insight标签,输入SQL语句查询上面步骤创建的Streaming Table,点击Submit执行SQL,如下图

CDH安装Kylin2.0及操作_第36张图片

查询结果如下图所示,如果查询正常,cube验证完成。

CDH安装Kylin2.0及操作_第37张图片

 

 

 

 

你可能感兴趣的:(kylin,kylin)