那些年我遇到的kylin问题
程序员文章站
2022-04-11 07:58:18
...
1、配置好kylin后,执行kylin.sh start,发现kylin的pid文件已经创建,但是不能从web访问,提示页面找不到!
原因:kylin的默认端口号7070(netstat -nap|grep 7070)被占用了,修改kylin的默认端口号,或者杀掉占用7070端口的进程,然后重启kylin即可。
2、编译kylin时提示路径不对,错误信息如下:
java.io.IOException: BulkLoad encountered an unrecoverable problem
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.bulkLoadPhase(LoadIncrementalHFiles.java:534)
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.doBulkLoad(LoadIncrementalHFiles.java:465)
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.doBulkLoad(LoadIncrementalHFiles.java:343)
at org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:1069)
at org.apache.kylin.engine.mr.MRUtil.runMRJob(MRUtil.java:97)
at org.apache.kylin.storage.hbase.steps.BulkLoadJob.run(BulkLoadJob.java:78)
at org.apache.kylin.engine.mr.MRUtil.runMRJob(MRUtil.java:97)
at org.apache.kylin.engine.mr.common.HadoopShellExecutable.doWork(HadoopShellExecutable.java:63)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
at org.apache.kylin.job.execution.DefaultChainedExecutable.doWork(DefaultChainedExecutable.java:67)
at org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:162)
at org.apache.kylin.job.impl.threadpool.DefaultScheduler$JobRunner.run(DefaultScheduler.java:300)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=35, exceptions:
Tue Aug 21 10:22:52 GMT+08:00 2018, RpcRetryingCaller{globalStartTime=1534818172934, pause=100, retries=35}, java.io.IOException: java.io.IOException: Wrong FS: hdfs://soapahdfs/kylin/kylin_metadata/kylin-11b487dd-6c0c-4b55-b5b6-008a8a5b9976/data_cube1/hfile/F1/f8bd23206df0414b8bd61315ed891707, expected: hdfs://soapahdfs:8020
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2239)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Wrong FS: hdfs://soapahdfs/kylin/kylin_metadata/kylin-11b487dd-6c0c-4b55-b5b6-008a8a5b9976/data_cube1/hfile/F1/f8bd23206df0414b8bd61315ed891707, expected: hdfs://soapahdfs:8020
at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:643)
at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:184)
at org.apache.hadoop.hdfs.DistributedFileSystem.access$000(DistributedFileSystem.java:101)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1068)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1064)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1064)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:397)
at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1398)
at org.apache.hadoop.hbase.regionserver.HRegionFileSystem.commitStoreFile(HRegionFileSystem.java:387)
at org.apache.hadoop.hbase.regionserver.HRegionFileSystem.bulkLoadStoreFile(HRegionFileSystem.java:466)
at org.apache.hadoop.hbase.regionserver.HStore.bulkLoadHFile(HStore.java:780)
at org.apache.hadoop.hbase.regionserver.HRegion.bulkLoadHFiles(HRegion.java:5404)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.bulkLoadHFile(RSRpcServices.java:1970)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33650)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2188)
... 4 more
Tue Aug 21 10:22:53 GMT+08:00 2018, RpcRetryingCaller{globalStartTime=1534818172934, pause=100, retries=35}, java.io.IOException: java.io.IOException: Wrong FS: hdfs://soapahdfs/kylin/kylin_metadata/kylin-11b487dd-6c0c-4b55-b5b6-008a8a5b9976/data_cube1/hfile/F1/f8bd23206df0414b8bd61315ed891707, expected: hdfs://soapahdfs:8020
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2239)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Wrong FS: hdfs://soapahdfs/kylin/kylin_metadata/kylin-11b487dd-6c0c-4b55-b5b6-008a8a5b9976/data_cube1/hfile/F1/f8bd23206df0414b8bd61315ed891707, expected: hdfs://soapahdfs:8020
at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:643)
at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:184)
at org.apache.hadoop.hdfs.DistributedFileSystem.access$000(DistributedFileSystem.java:101)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1068)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1064)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1064)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:397)
at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1398)
at org.apache.hadoop.hbase.regionserver.HRegionFileSystem.commitStoreFile(HRegionFileSystem.java:387)
at org.apache.hadoop.hbase.regionserver.HRegionFileSystem.bulkLoadStoreFile(HRegionFileSystem.java:466)
at org.apache.hadoop.hbase.regionserver.HStore.bulkLoadHFile(HStore.java:780)
at org.apache.hadoop.hbase.regionserver.HRegion.bulkLoadHFiles(HRegion.java:5404)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.bulkLoadHFile(RSRpcServices.java:1970)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33650)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2188)
... 4 more
Tue Aug 21 10:22:53 GMT+08:00 2018, RpcRetryingCaller{globalStartTime=1534818172934, pause=100, retries=35}, java.io.IOException: java.io.IOException: Wrong FS: hdfs://soapahdfs/kylin/kylin_metadata/kylin-11b487dd-6c0c-4b55-b5b6-008a8a5b9976/data_cube1/hfile/F1/f8bd23206df0414b8bd61315ed891707, expected: hdfs://soapahdfs:8020
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2239)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
原因:kylin中配置的文件路径和hbase配置的不一致,更加直白的说就是kylin.properties中的kylin.storage.hbase.cluster-fs属性要和hbase的配置文件hbse-site.xml中hbase.rootdir属性值保持一致,不然就会出现数据路径错误
3、编译Cube过程中出现Segment Overlap错误导致编译失败
原因:Cube构建过程中元数据损坏(metadata),导致损坏原因有多个,比如hadoop集群重启,数据量过大,编译Cube时hive数据表有改变,之前编译了Cube后改变hive表结构或者重新创建了hive表等,并且出现这个问题之后再重新编译也一直报这个问题,在这里提供一个临时性解决办法,反正软件界bug万能解决思路:重启和重装。
解决办法:
选中出问题的project,然后点击Monitor进入如下界面
点击构建错误的Action,点击Discard,然后回到Model界面,重新build这个Cube
4、创建完hive表从文件中加载数据,然后构建cube也成功了,发现所有的数据都在一列,其他列都为空怎么办?
原因:创建hive表时没有指定分隔符
解决办法:为了避免删除hive表重建的麻烦可以使用alter指令直接修改,命令如下:
alter table table_name set SERDEPROPERTIES('field.delim'='\t');
把表名称(table_name )和分隔符(”\t”)换成你的即可,然后重新构建cube
推荐阅读
-
我今天开始正式学习.net遇到的问题
-
我的那些年(13)~主推微服务架构
-
QT攻略——我在QT中遇到的那些坑
-
聊一聊,这些年我用Python爬虫挣钱的那些事
-
我在安装TensorFlow遇到的问题和对应的解决办法
-
那些年未说的,我喜欢你
-
在做关于NIO TCP编程小案例时遇到无法监听write的问题,没想到只是我的if语句的位置放错了位置,哎,看了半天没看出来
-
解决了一个困扰我近一年的vim显示中文乱码的问题
-
POI导出,开发中经常会遇到数据导出这样的问题,下面是我在开发中采用的解决方法,大家可以参考,具体的实现害的结合你自身的业务逻辑
-
那些年,我们见过的 Java 服务端“问题” 框架jsongooglesoa工作