在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 磁盘挂载
在Docker中启动Cloudera的更多相关文章
- docker中启动2个mysql实列
一.mac环境安装docker容器 在docker官网中下载docker容器,地址:https://www.docker.com/products/docker-desktop 具体安装教程及设置网络 ...
- docker中启动容器提示端口被占用
docker中启动容器提示端口被占用,但是 docker ps -a 查不到信息 1.查询端口被占用的id netstat -ntpl |grep 3306 2.杀掉该id kill -9 如果kil ...
- devilbox(三):在docker中启动带密码的redis数据库
背景概述: 之前是使用docker搭建了一套集成的开发环境devilbox,也说了这个环境可以自定义.其实搭建这个环境一是为了练习docker使用,二是搭建我们测试环境,主要用到各种数据库,然而安装教 ...
- docker中启动mysql报错
[root@5416ec39653b init.d]# /etc/init.d/mysqld start /etc/init.d/mysqld: line 23: /etc/sysconfig/net ...
- docker中的命令参数(小白常用)
1 docker run run是最常用的命令,他是docker creat和docker start命令的组合,创建容器并启动它.run的参数比较难理解的是-i 和-t 以及-d,分别说说这三个. ...
- springcloud 连接docker中运行的RabbitMQ消息中间件。
参考:https://blog.51cto.com/zero01/2173288 主要是记录几个坑: 第一个坑:开始订单服务中配置文件是: #配置rabbitmq 2019.5.17 added by ...
- docker安装启动、配置MySql
1.安装mysql镜像 docker pull mysql/mysql-server 2.docker中启动Mysql容器 docker run --name mysql01 -d -p 3306:3 ...
- docker中怎样设置开机启动--随容器的启动而启动服务?
docker可以说给我们的部署带来极大的方便和可逢凶化吉性!(懂的同学自然懂) 在初步了解之后,我们就能简单使用docker了. 刚开始玩docker时,可以基于系统级别的镜像做定制,比如基于 ce ...
- 让docker中的mysql启动时自动执行sql文件
本文提要 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过Docker ...
随机推荐
- PythonI/O进阶学习笔记_3.1面向对象编程_python的多态和鸭子类型
前言: 与第一篇的面向对象内容不同的是,第一篇中的面向对象更多的是与类.对象结合起来的概念粗浅理解,就是在编程历史中诞生的一种思想方法. 这篇的面向对象编程,更多落实到在语言设计实现中,是如何体现面向 ...
- Liunx学习总结(六)--进程
进程概述 简单来讲程序是一个包含可以执行代码的静态的文件.进程是一个开始执行但是还没有结束的程序的实例.当程序被系统调用到内存以后,系统会给程序分配一定的资源(内存,设备等等)然后进行一系列的复杂操作 ...
- eShopOnContainers部署在docker的坑
把eShopOnContainers(.net core 的版本是2.1)下载之后,部署到docker上,查看容器eShopOnContainers的项目都部署上去了. 用http://localho ...
- emlog博客的安装教程
简介 emlog 是一款基于PHP和MySQL的功能强大的博客及CMS建站系统.致力于为您提供快速.稳定,且在使用上又极其简单.舒适的内容创作及站点搭建服务. 安装步骤 1.将src文件夹下的所有文件 ...
- API 资源隔离系统设计与实现
(马蜂窝技术原创内容,公众号 ID:mfwtech) Part 1 背景 大交通业务需要对接机票.火车票.租车.接送机等业务的外部供应链,供应商的数据接口大部分通过 HTTP.HTTPS 等协议进行通 ...
- Python实现 下载IJCAI会议所有论文
import requests import threading def get_file_content(num): savepath = '%04d.pdf' % (num) suburl = ' ...
- 【Offer】[53-1] 【数字在排序数组中出现的次数】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 统计一个数字在排序数组中出现的次数.例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出 ...
- java课堂测试样卷-----简易学籍管理系统
程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计 ...
- 深度剖析Vue中父给子、子给父、兄弟之间传值!
本片文章将为您详细讲解在Vue中,父给子传值.子给父传值以及兄弟之间传值方式! 父传子:父组件 // template里面 <aa :info="name"/> // ...
- Java基础语法(总结篇)
关键字&标识符 关键字的概念与特征 概念:Java关键字是事先定义好的对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名和 ...