在Docker中启动Cloudera

写在前面

记录一下,一个简单的cloudera处理平台的构建过程和一些基本组件的使用

前置说明

需要一台安装有Docker的机器

docker常用命令:

docker ps
docker ps -a
docker images
docker rm 容器
docker rmi 镜像
docker stop 容器
docker build -t 镜像名 dockerfile的位置
docker run -d -p 5000:5000 镜像名
docker exec -it 容器名 bash
docker start 容器
docker restart 容器

从docker容器中向主机拷贝文件 docker cp containerID:container_path host_path
从主机复制到容器docker cp host_path containerID:container_path

启动cloudera

docker run --privileged=true -m 4096M --memory-swap -1 --hostname=quickstart.cloudera --name l-cloudera -p 8020:8020 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -t -i -d cloudera/quickstart /usr/bin/docker-quickstart

新增8888 HUE的端口:
docker run --privileged=true -m 4096M --memory-swap -1 --hostname=quickstart.cloudera --name l-cloudera -p 8020:8020 -p 8888:8888 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -t -i -d cloudera/quickstart /usr/bin/docker-quickstart

新增3306 mysql的端口:
docker run --privileged=true -m 4096M --memory-swap -1 --hostname=quickstart.cloudera --name lh -p 8020:8020 -p 3306:3306 -p 8888:8888 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -t -i -d cloudera/quickstart /usr/bin/docker-quickstart

补:出现WARNING: IPv4 forwarding is disabled. Networking will not work.  错误
解决办法:
# vim  /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1

这个时候假如你想登录HUE界面进行操作,可能你不知道账户密码,可以使用下面操作完成:

=======mysql忘记密码??==================

修改密码
    windows修改的文件是my.ini
    linux vim /etc/my.cnf
[mysqld]
skip-grant-tables
重启服务
service mysqld restart
mysql -u root 即可进入
update mysql.user set password=PASSWORD(‘新密码‘)where User=‘root‘;
flush privileges;

注意:修改完毕密码之后,就可以把之前的skip-grant-tables注释掉
而且需要重启mysqld服务

==========mysql中修改hue数据库中的auth_user表======

当你忘记hue的账号的密码的时候,你可以如下操作
登录hue内置的mysql数据库中,忘记mysql的root密码,详见上面操作即可
切换数据库到hue
use hue;
select username,password from auth_user;

方法一:这里你可以自己新建一个自己的用户
insert into auth_user(username,password) values(‘liuge‘,md5(‘123456‘));

方法二:更新已有用户的密码的时候,使用MD5方式即可
update auth_user set password = md5(‘123456‘) where username = ‘cloudera‘;

***假如这个时候,还是不能登录,你可以在navicat中去修改新增liuge用户的权限和状态,直接操作表

接着:介绍一些简单的组件操作方式:

sqoop常用操作:常用于关系型数据库与HDFS/HIVE进行数据交换

输入用户密码进行查询
sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P

sqoop eval --connect jdbc:mysql://127.0.0.1:3306/qizi --username root -P --query "select nickname from member limit 10"  

sqoop import --connect jdbc:mysql://127.0.0.1:3306/qizi --username root -P --table member --target-dir /sqoop-member --num-mappers 1

sqoop import --connect jdbc:mysql://127.0.0.1:3306/qizi --username root
--query "select nickname,mobile,salt from member where 1=1 AND \$CONDITIONS" --hbase-table hbase-member --hbase-create-table
--hbase-row-key nickname --split-by username --column-family cf 

进入到hbase客户端模式
hbase shell
list 查看所有的表
scan ‘某张表‘

hive常用操作:作为hadoop里面的数据仓库,写简单的HQL语句对数据进行分析

==创建表时候指定文件的位置==
drop table member;
create table member(id string,nickname string,mobile string ,sex int,
avataurl string,city string ,province string,salt string ,reg_ip string ,
status int , create_time string ,update_time string)
location ‘/sqoop-member‘;

==创建表指明分隔符===
create table member(id string,nickname string,mobile string ,sex string,
avataurl string,city string ,province string,salt string ,reg_ip string ,
status string , create_time string ,update_time string)
row format delimited fields terminated by ‘,‘ location ‘/sqoop-member‘;

create table member(id string,nickname string,mobile string ,sex string,avataurl string,city string ,province string,salt string ,reg_ip string , status string , create_time string ,update_time string)row format delimited fields terminated by ‘,‘ location ‘/sqoop-member‘;

hbase常用操作:基于列式存储的数据库

./hbase shell 用于启动

status 查看集群的状态

list 查看现有的表

创建表
create ‘FileTable‘,‘fileInfo‘,‘saveInfo‘

查看表的描述信息
desc ‘FileTable‘

在已有的表上新增一个列簇
alter ‘FileTable‘,‘cf‘

在已有的表上删除一个列簇
alter ‘FileTable‘,{NAME=>‘cf‘,METHOD=>‘delete‘}

插入数据
Put +表名称+每一行的唯一标识+列簇:列标识+数据
put ‘FileTable‘,‘rowkey1‘,‘fileInfo:name‘,‘liuge‘
put ‘FileTable‘,‘rowkey1‘,‘fileInfo:age‘,‘21‘
put ‘FileTable‘,‘rowkey1‘,‘fileInfo:address‘,‘重庆文理学院‘
put ‘FileTable‘,‘rowkey1‘,‘saveInfo:name‘,‘我是保存‘
put ‘FileTable‘,‘rowkey2‘,‘fileInfo:name‘,‘lh‘
put ‘FileTable‘,‘rowkey2‘,‘saveInfo:name‘,‘保存在Hbase中‘
put ‘FileTable‘,‘rowkey2‘,‘saveInfo:type‘,‘保存类型‘

查看一共有多少行数据
count ‘FileTable‘

查询某一行ID的数据
get ‘FileTable‘,‘rowke2‘
查询整张表的数据
scan ‘FileTable‘

删除某一列数据
delete ‘FileTable‘,‘rowkey1‘,‘fileInfo:address‘

删除整行数据
deleteall ‘FileTable‘,‘rowkey1‘

删除表
1.禁用表 disable ‘FileTable‘
2.删除表 drop ‘FileTable‘

运行一个gitlab

docker 运行gitlab
docker search gitlab
拉取镜像
docker pull gitlab/gitlab-ce
运行
docker run --name gitlab-server -d -p 20022:22 -p 20080:80 --restart always gitlab/gitlab-ce
--volume /opt/gitlab/config:/etc/gitlab
--volume /opt/gitlab/logs:/var/log/gitlab
--volume /opt/gitlab/data:/var/opt/gitlab/
注释:

  --name="nginx-lb":为容器指定一个名称;

  -d:后台运行容器,并返回容器ID;

  -p:指定映射端口号,本文是将ssh的22端口映射为10022端口,web访问的80端口映射为80端口

  -volume: 用来指定挂载目录,将config配置目录、data数据目录、logs日志目录挂载到宿主机上,以后备份方便
配置gitlab服务器的访问地址及邮箱
当运行gitlab服务器后,会在映射目录/opt/gitlab/config/目录下生成一个配置文件gitlab.rb

修改配置文件之后,需要重新启动
gitlab-ctl reconfigure

访问:http://192.168.1.113:20080
初始化root账户密码:www.csy.com

登录进去
找到导航栏的工具图标

sudo EXTERNAL_URL =“http://gitlab.csylh.cn” yum install -y gitlab-e

运行一个jenkins

docker pull jenkins
启动:
docker run -itd -p 28080:8080 -p 50000:50000 --name ljenkins --privileged=true jenkins

docker pull jenkins/jenkins
启动
docker run -itd -p 28080:8080 -p 50000:50000 --name ljenkins --privileged=true jenkins/jenkins

-v /home/hzq/jenkins:/var/jenkins_home
-p 8080:8080 -p 50000:50000 进行端口映射
--privileged=true 在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权。
-v /home/hzq/jenkins:/var/jenkins_home 磁盘挂载

原文地址:https://www.cnblogs.com/liuge36/p/9882730.html

时间: 2024-08-25 10:35:53

在Docker中启动Cloudera的相关文章

docker中启动2个mysql实列

一.mac环境安装docker容器 在docker官网中下载docker容器,地址:https://www.docker.com/products/docker-desktop 具体安装教程及设置网络许多,自己查看..... 查看docker是否安装成功,在终端输入:docker info 二.在docker中安装mysql 我是需要在mac启2个mysql实列,故需要区分mysql端口号 docker run -p 13306:3306 --name mysql1 -v ~/mysql1:/v

Docker中启动mysql报错: Failed to get D-Bus connection

docker版本: [[email protected] ~]# docker versionClient: Version:         1.10.3 API version:     1.22 Package version: docker-common-1.10.3-46.el7.centos.10.x86_64 Go version:      go1.6.3 Git commit:      d381c64-unsupported Built:           Thu Aug

Docker中启动Nginx镜像,配置aspnetcore 网站代理

1.使用docker 下载nginx 镜像  docker pull nginx 2.启动nginx docker run --name nginx -p 80:80 -d nginx 这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令: docker exec -it nginx bash nginx.conf配置文件在 /etc/nginx/  下面,但是你使用vim nginx.conf 或者vi nginx.conf 会发现vi或者vim命令没

docker中 启动所有的容器命令

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

docker中的命令参数(小白常用)

1 docker run run是最常用的命令,他是docker creat和docker start命令的组合,创建容器并启动它.run的参数比较难理解的是-i 和-t 以及-d,分别说说这三个. -i -i 参数是keep STDIN open even if not attached,意思就是会把交互界面保留着.但是要看容器的PID1,或者说看容器的CMD是什么,有些CMD程序并不会理会任何输入,也就是说它就没有等着你输入命令,这时候你输入什么都是无效的.并且,因为linux对pid1的特

docker安装启动、配置MySql

1.安装mysql镜像 docker pull mysql/mysql-server 2.docker中启动Mysql容器 docker run --name mysql01 -d -p 3306:3306 mysql/mysql-server 启动后执行: docker ps 通过以下命令查看root的password docker logs mysql01 navicat连接mysql服务器测试 原因:mysql处于安全考虑,root用户只能在本地登录. 因此我们需要进入容器创建用户并授权.

docker中怎样设置开机启动--随容器的启动而启动服务?

docker可以说给我们的部署带来极大的方便和可逢凶化吉性!(懂的同学自然懂) 在初步了解之后,我们就能简单使用docker了. 刚开始玩docker时,可以基于系统级别的镜像做定制,比如基于  centos 镜像使用docker: docker pull centos:7 # 把镜像拉下来 docker run -it centos:7 # 创建一个容器即可运行 你可以在拉下来的容器里安装任何需要的应用(必要的):然后,一切都看起来很美好! 但是,这时,我们最担心一个问题,那就是docker挂

Docker Daemon启动

Docker Daemon 是Docker架构中运行在后台的守护进程,可分为Docker Server.Engine和Job三部分. Docker Daemon 是通过Docker Server模块接受Docker Client的请求,并在Engine中处理请求,然后根据请求类型,创建出指定的Job并运行,运行过程的几种可能:向Docker Registry获取镜像,通过graphdriver执行容器镜像的本地化操作,通过networkdriver执行容器网络环境的配置,通过execdriver

Docker中的Redis容器如何连接上进行操作?

Docker中的Redis容器如何连接上进行操作? 1.登录putty有如下信息: 公用虚拟 IP (VIP)地址42.159.156.115内部 IP 地址10.205.178.22IP address for eth0:    10.205.178.22IP address for docker0: 172.17.42.1 2. 下载 http://download.redis.io/redis-stable/redis.conf修改如下字段 # requirepass foobared去掉