HDFS作为cloudera quickstart docker

时间:2016-07-22 07:50:56

标签: hadoop docker hdfs cloudera bigdata

我对hadoop和docker都很新。

我一直致力于扩展cloudera / quickstart docker image docker文件,并希望安装目录表单主机并将其映射到hdfs位置,以便提高性能并保持数据持久化。

当我用-v /localdir:/someDir在任何地方安装音量时,一切正常,但这不是我的目标。但当我-v /localdir:/var/lib/hadoop-hdfs时,datanode和namenode都无法启动,我得到:“cd / var / lib / hadoop-hdfs:Permission denied”。当我做-v /localdir:/var/lib/hadoop-hdfs/cache没有权限被拒绝但datanode和namenode,或者其中一个未能启动启动docker镜像,我无法在日志文件中找到有关其原因的任何有用信息。

Mayby有人遇到过这个问题,还是有其他解决办法将hdfs放在docker容器之外?

2 个答案:

答案 0 :(得分:0)

你应该运行

docker exec -it "YOUR CLOUDERA CONTAINER" chown -R hdfs:hadoop /var/lib/hadoop-hdfs/ 

答案 1 :(得分:0)

我遇到了同样的问题,并且已经解决了将整个$url = 'http://www.example.de/dashboard/2/'; $path = parse_url($url, PHP_URL_PATH); // '/dashboard/2/' $parts = explode('/', $path); // ['', 'dashboard', '2', ''] $section = $parts[1]; // 'dashboard' $ending = $parts[2]; // '2' 目录从容器复制到本地目录的情况

从终端启动/var/lib容器,而不启动所有hadoop服务:

cloudera/quickstart

在另一个终端copy the container directory to the local directory中 :

docker run -ti cloudera/quickstart /bin/bash

将所有文件从容器复制到本地目录后,停止容器并将mkdir /local_var_lib docker exec your_container_id tar Ccf $(dirname /var/lib) - $(basename /var/lib) | tar Cxf /local_var_lib - 指向新目标。确保/var/lib目录包含hadoop目录(hbase,hadoop-hdfs,oozie,mysql等)。

启动容器:

/local_var_lib