我正在使用docker容器(大量)中的Impala / HDFS进行一些查询测试。为了比较查询(不同的比例因子),我想删除缓存。通常,这很容易通过
完成$ sync
$ echo 1 > /proc/sys/vm/drop_caches
但是我在主机系统上没有管理员权限。还有另一种方法可以从容器内部删除缓存吗?是否可以选择创建另一个大表并对该表执行查询,以便其数据覆盖缓存?
答案 0 :(得分:0)
您不能从着色器内部执行此操作。容器中的root用户使用的名称空间与实际root的名称空间不同,并且只有后者可以访问/ proc。
答案 1 :(得分:0)
您可以尝试将主机proc文件系统中的卷挂载到容器中。这似乎对我有用:
val data=sc.parallelize(Seq(("maths",52),("english",75),("science",82), ("computer",65),("maths",85))).top(2)
Results:
(science,82)
(maths,85)
...但是这是假设您控制容器的启动方式,这或多或少意味着您是管理员。
答案 2 :(得分:0)
可以通过使用 --privileged
标志以特权模式启动容器来实现。