Clouder 官方文档:
https://www.cloudera.com/documentation/enterprise/5-6-x/topics/quickstart_docker_container.html
英文文档,英语基础好的同学直接照着步骤做就好了。
docker pull cloudera/quickstart:latest
官方文档提供的命令是:
docker run --hostname=quickstart.cloudera --privileged=true -t -i [OPTIONS] [IMAGE] /usr/bin/docker-quickstart
#经测试有点问题,后面会给出改进命令
参数 | 描述 |
---|---|
--hostname=quickstart.cloudera | 必要参数:主机地址为 quickstart.cloudera |
--privileged=true | 必要参数:HBase, MySQL-backed Hive metastore, Hue, Oozie, Sentry, 和 Cloudera Manager 的权限开关 |
-it | 开启交互式容器 |
-p 8888 | 推荐:映射8888端口为hue端口 |
-p [PORT] | 参数 :7180:clouder manager 端口 80端口要开启(防火墙,安全组) |
-d | 后台运行 |
经测试发现,光开启这些端口是不够用的,比如我的需求是kafka ,hbase,zk所以还需要开放一些端口。
docker run --hostname=quickstart.cloudera --name cdh2 --privileged=true -t -i -p 2181:2181 -p 60010:60010 -p 60000:60000 -p 9092:9092 -p 8888:8888 -p 7180:7180
CONTAINDER_NAME/ID
/usr/bin/docker-quickstart
默认是没有开启CM服务的,所以要手动开启。 CM目录:/home/cloudera/cloudera-manager
sudo docker exec -it CONTAINER_ID /bin/bash
sudo /home/cloudera/cloudera-manager --force --enterprise
等待启动完成后浏览器输入 ip:7180
Username: cloudera
Password: cloudera
#先进入容器后运行命令查看服务状态
service --status-all
#开启ntp服务
service ntpd start
kafka相关包准备 csd包:http://archive.cloudera.com/csds/kafka/
parcel包: http://archive.cloudera.com/kafka/parcels/latest/ ( 根据自己的集群的系统版本下载 )
关闭集群,关闭cm服务( 假如不关闭cm服务,会出现在添加kafka服务时找不到相关的服务描述 )
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
whitelist must be specified when using new consumer in mirror maker
点击cm集群管理页面--kafka--instances--kafka mirrormaker--然后搜索Whitelist,然后提示mirrormaker default group,我就把刚才分配的时候设置的添加了进去。你在分配kafka生产环境是怎么分配的,你这里就怎么填。我的是quickstart.cloudera:9092 然后重启kafka。
kafka的java内存过低导致broker启动失败。
错误信息:
在CM 界面中查看 broker的异常日志后,发现:OutofMemeryException
这是因为 Java Heap size of Broker这个选项默认配置是 50M ,需要将其修改成 256M 或者 更多,这里修改成 1G ,保存配置后,在启动kafka集群即可.
# 查找kafka目录,并进入kafka/bin 目录
find / -name 'kafka' -type d
# 创建test TOPIC
./kafka-topics.sh --create --topic test --zookeeper quickstart.cloudera:2181 --partitions 3 --replication-factor 1
# 查看创建的topic 列表
./kafka-topics.sh --list --zookeeper quickstart.cloudera:2181
# 生产者生产消息
./kafka-console-producer.sh --broker-list quickstart.cloudera:9092 --topic test
# 客户端接收消息
./kafka-console-consumer.sh --zookeeper quickstart.cloudera:2181 --topic test --from-beginning
首先开放防火墙端口,安全组端口,
如遇到docker内网kafka正常可以访问,代码无法访问时: 1,修改本地hosts 文件 windows:在这个目录
/windows/system32/drivers/etc/hosts
新增:
[服务器外网ip] quickstart.cloudera
2,修改服务器宿主机hosts文件
vi /etc/hosts
新增:
[内网ip] quickstart.cloudera quickstart
[外网ip] quickstart.cloudera quickstart
设置后可恢复正常。