zoukankan      html  css  js  c++  java
  • 在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 磁盘挂载
    
  • 相关阅读:
    滤波和减采样的互换
    LwIP情景示例
    [redis] redis 对string类型数据操作
    [ExtJs] ExtJs4.2 数据模型Ext.data.Model学习
    [生活] 90年前后出生的人现状如何?
    【java】java内存模型(2)--volatile内存语义详解
    【java】java内存模型 (1)--基础
    [extjs] ExtJS 4.2 开发环境搭建
    强烈推荐:240多个jQuery插件
    使用CXF为webservice添加拦截器
  • 原文地址:https://www.cnblogs.com/liuge36/p/12614791.html
Copyright © 2011-2022 走看看