Docker容器部署CDH

ゝ一世哀愁。 2023-01-22 03:52 130阅读 0赞

Docker容器部署CDH

文章目录

  • Docker容器部署CDH
  • 一、 概述
    • 1.1目的
    • 1.2 linux服务
    • 1.3 容器服务
    • 1.4 端口相关
  • 二、 具体操作流程
    • 2.1 安装docker[绿色安装]
      • 2.1.1解压docker压缩包
      • 2.1.2复制docker 部署文件夹
      • 2.1.3启动docker服务
        • 2.1.3.1 方式一:直接启动docker服务
        • 2.1.3.2 方式二:自定义docker服务
      • 2.1.4测试安装是否成功
        • 2.1.4.1方式一 docker -v
        • 2.1.4.2方式二 docker info
        • 2.1.4.3 方式三(自定义服务才生效)
    • 2.2 安装docker-compose[绿色安装]
      • 2.2.1复制docker-compose文件
      • 2.2.2 docker-compose文件授权
      • 2.2.3 测试安装是否成功
        • 2.2.3.1 方式一 docker-compose —version
        • 2.2.3.1 方式二 docker-compose -h
    • 2.3 拉取/加载CDH镜像
        • 2.3.1 方式一:从网上拉取镜像
        • 2.3.2 方式二:装载镜像
    • 2.4启动容器
      • 2.4.1 运行容器
        • 2.4.1.1 方式一(网上镜像)
        • 2.4.1.1 方式一(自定义镜像)
      • 2.4.2 查看容器运行状态
      • 2.4.3 启动容器异常报错
        • 2.4.3.1错误如下
        • 2.4.3.2解决方案
        • 2.4.3.3原理解析
    • 2.5 启动容器内的服务以及修改配置文件
      • 2.5.1 进入cdh容器
      • 2.5.2 启动CM服务
      • 2.5.3 解决时钟偏差,开启NTP服务
      • 2.5.4修改hosts文件(不一定要改)
      • 2.5.5 修改容器里面的时区
        • 2.5.5.1方式一:`ln -sf 建立软连接方式`
        • 2.5.5.2方式二:`cp 方式`
        • 2.5.5.3方式三:`启动容器增加 -e 参数`
    • 2.6服务器配置host(两个服务器和测试机)
        • 2.6.1 服务器上配置(最好是追加的方式,不要替换)
    • 2.7访问测试
      • 2.7.1 linux上测试
      • 2.7.2 window上测试
    • 2.8 地址相关
    • 2.9 在容器内手动管理服务
  • 三、常见问题
    • 3.1docker相关
      • 3.1.1 docker学习
      • 3.1.2 docker 服务使用的进程
      • 3.1.3 docker-compose与docker的关系
      • 3.1.4 docker-compose常用命令参考
      • 3.1.5 docker 网络相关
    • 3.2 其他相关
      • 3.3.1 行方可能没有unzip 命令,最好在外面解压好拷贝进虚拟机
      • 3.3.2 没有`ifconfig`、`netstat`命令
      • 3.3.3 防火墙相关
  • 四、Impala相关
    • 4.1 容器里面执行命令
    • 4.2 常用命令备注
      • 4.2.1 进入impala:` impala-shell;`
      • 4.2.2显示数据库`show databases;`
      • 4.2.3 数据表`show tables;`
      • 4.2.4查看表结构定义`desc my_first;`
  • 五、hbase相关
    • 5.1 容器里面执行命令
    • 5.2 常用命令备注
      • a.查看表的结构
      • b.创建表
      • c.插入测试数据
      • d.查询数据
      • e.高级查询
  • 六、开发相关
    • 6.1 impala开发相关:
      • 6.1.1 代码实现的技术点
    • 6.1hbase开发相关:
      • 6.1.1 认证方式
      • 6.1.2 配置方式

一、 概述

1.1目的

利用Docker搭建单机的Cloudera CDH ;

1.2 linux服务































服务名称 版本 用途
docker 18.09.9 容器化部署服务
docker-compose 1.24.1 暂未用到

1.3 容器服务
























































服务名称 版本 用途
Hadoop 2.6.0+cdh5.7.0_93
Zookeeper
Hbase 1.2.0+cdh5.7.0+129
Hive 1.1.0+cdh5.7.0+522
Spark
Kafka
Redis
CDH
HUE 3.9.0+cdh5.7.0+1759

1.4 端口相关

  • Hadoop:

    • 50070:HDFS WEB UI端口
    • 8020 : 高可用的HDFS RPC端口
    • 9000 : 非高可用的HDFS RPC端口
    • 8088 : Yarn 的WEB UI 接口
    • 8485 : JournalNode 的RPC端口
    • 8019 : ZKFC端口
    • 9888:jobhistory WEB UI端口
  • Zookeeper:

    • 2181 : 客户端连接zookeeper的端口
    • 2888 : zookeeper集群内通讯使用,Leader监听此端口
    • 3888 : zookeeper端口 用于选举leader
  • Hbase:

    • 60010:Hbase的master的WEB UI端口 (旧的) 新的是16010
    • 60000:Hmaster
    • 60020:HBase RegionServer 绑定的端口
    • 60030:Hbase的regionServer的WEB UI 管理端口
  • Hive:

    • 9083 : metastore服务默认监听端口
    • 10000:Hive 的JDBC端口
  • Spark:

    • 7077 : spark 的master与worker进行通讯的端口 standalone集群提交Application的端口
    • 8080 : master的WEB UI端口 资源调度
    • 8081 : worker的WEB UI 端口 资源调度
    • 4040 : Driver的WEB UI 端口 任务调度
    • 18080:Spark History Server的WEB UI 端口
  • Kafka:

    • 9092: Kafka集群节点之间通信的RPC端口
  • Redis:

    • 6379: Redis服务端口
  • CDH:

    • 7180: Cloudera Manager WebUI端口
    • 7182: Cloudera Manager Server 与 Agent 通讯端口
  • HUE:

    • 8888: Hue WebUI 端口

二、 具体操作流程

2.1 安装docker[绿色安装]

2.1.1解压docker压缩包

  1. [root@localhost poc]# tar -xvf docker-18.06.1-ce.tar
  2. docker/
  3. docker/runc
  4. docker/dockerd
  5. docker/docker
  6. docker/containerd-shim
  7. docker/docker-init
  8. docker/docker-proxy
  9. docker/containerd
  10. docker/ctr
  11. [root@localhost kerlala]#

2.1.2复制docker 部署文件夹

  1. [root@localhost poc]# cp docker/* /usr/bin/

2.1.3启动docker服务

2.1.3.1 方式一:直接启动docker服务

  1. [root@localhost poc]# dockerd &
  2. [1] 12587
  3. [root@localhost poc]# WARN[2021-03-04T13:57:04.051315316+08:00] could not change group /var/run/docker.sock to docker: group docker not found
  4. INFO[2021-03-04T13:57:04.065324259+08:00] libcontainerd: started new containerd process pid=12600
  5. INFO[2021-03-04T13:57:04.065801248+08:00] parsed scheme: "unix" module=grpc

2.1.3.2 方式二:自定义docker服务

  1. [root@localhost poc]# vi /etc/systemd/system/docker.service

拷贝内容如下:

  1. [Unit]
  2. Description=Docker Application Container Engine
  3. Documentation=https://docs.docker.com
  4. After=network-online.target firewalld.service
  5. Wants=network-online.target
  6. [Service]
  7. Type=notify
  8. # the default is not to use systemd for cgroups because the delegate issues still
  9. # exists and systemd currently does not support the cgroup feature set required
  10. # for containers run by docker
  11. ExecStart=/usr/bin/dockerd
  12. ExecReload=/bin/kill -s HUP $MAINPID
  13. # Having non-zero Limit*s causes performance problems due to accounting overhead
  14. # in the kernel. We recommend using cgroups to do container-local accounting.
  15. LimitNOFILE=infinity
  16. LimitNPROC=infinity
  17. LimitCORE=infinity
  18. # Uncomment TasksMax if your systemd version supports it.
  19. # Only systemd 226 and above support this version.
  20. #TasksMax=infinity
  21. TimeoutStartSec=0
  22. # set delegate yes so that systemd does not reset the cgroups of docker containers
  23. Delegate=yes
  24. # kill only the docker process, not all processes in the cgroup
  25. KillMode=process
  26. # restart the docker process if it exits prematurely
  27. Restart=on-failure
  28. StartLimitBurst=3
  29. StartLimitInterval=60s
  30. [Install]
  31. WantedBy=multi-user.target

启动服务:

  1. chmod +x /etc/systemd/system/docker.service #添加文件权限并启动docker
  2. systemctl daemon-reload #重新加载配置文件
  3. systemctl start docker #启动Docker
  4. systemctl enable docker.service #设置开机自启

2.1.4测试安装是否成功

2.1.4.1方式一 docker -v

  1. root@localhost kerlala]# docker -v
  2. Docker version 18.09.9, build 039a7df9ba
  3. [root@localhost kerlala]# docker images -a
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. [root@localhost kerlala]# docker ps -a
  6. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  7. [root@localhost kerlala]#

2.1.4.2方式二 docker info

  1. [root@localhost kerlala]# docker info
  2. Containers: 0
  3. Running: 0
  4. Paused: 0
  5. Stopped: 0
  6. Images: 4
  7. Server Version: 18.09.9
  8. Storage Driver: overlay2
  9. Backing Filesystem: xfs
  10. Supports d_type: true
  11. Native Overlay Diff: true
  12. Logging Driver: json-file
  13. Cgroup Driver: cgroupfs
  14. Plugins:
  15. Volume: local
  16. Network: bridge host macvlan null overlay
  17. Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
  18. Swarm: inactive
  19. Runtimes: runc
  20. Default Runtime: runc
  21. Init Binary: docker-init
  22. containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
  23. runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
  24. init version: fec3683
  25. Security Options:
  26. seccomp
  27. Profile: default
  28. Kernel Version: 3.10.0-957.el7.x86_64
  29. Operating System: CentOS Linux 7 (Core)
  30. OSType: linux
  31. Architecture: x86_64
  32. CPUs: 8
  33. Total Memory: 15.5GiB
  34. Name: localhost.localdomain
  35. ID: 7QRC:AJX3:NPOI:SUPM:CILE:YI7X:675U:WTMB:KVIQ:FAKP:4ODB:Y2XS
  36. Docker Root Dir: /var/lib/docker
  37. Debug Mode (client): false
  38. Debug Mode (server): false
  39. Registry: https://index.docker.io/v1/
  40. Labels:
  41. Experimental: false
  42. Insecure Registries:
  43. 127.0.0.0/8
  44. Live Restore Enabled: false
  45. Product License: Community Engine

2.1.4.3 方式三(自定义服务才生效)

  1. systemctl status docker #查看Docker状态

2.2 安装docker-compose[绿色安装]

2.2.1复制docker-compose文件

  1. [root@localhost poc]# cp docker-compose /usr/bin/

2.2.2 docker-compose文件授权

  1. [root@localhost poc]# chmod +x /usr/bin/docker-compose

2.2.3 测试安装是否成功

2.2.3.1 方式一 docker-compose —version

  1. [root@localhost poc]# docker-compose --version
  2. docker-compose version 1.24.1, build 4667896b

2.2.3.1 方式二 docker-compose -h

  1. [root@localhost poc]# docker-compose -h
  2. Define and run multi-container applications with Docker.
  3. Usage:
  4. docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  5. docker-compose -h|--help
  6. Options:
  7. -f, --file FILE Specify an alternate compose file
  8. (default: docker-compose.yml)
  9. -p, --project-name NAME Specify an alternate project name
  10. (default: directory name)
  11. --verbose Show more output
  12. --log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  13. --no-ansi Do not print ANSI control characters
  14. -v, --version Print version and exit
  15. -H, --host HOST Daemon socket to connect to
  16. --tls Use TLS; implied by --tlsverify
  17. --tlscacert CA_PATH Trust certs signed only by this CA
  18. --tlscert CLIENT_CERT_PATH Path to TLS certificate file
  19. --tlskey TLS_KEY_PATH Path to TLS key file
  20. --tlsverify Use TLS and verify the remote
  21. --skip-hostname-check Don't check the daemon's hostname against the
  22. name specified in the client certificate
  23. --project-directory PATH Specify an alternate working directory
  24. (default: the path of the Compose file)
  25. --compatibility If set, Compose will attempt to convert keys
  26. in v3 files to their non-Swarm equivalent
  27. Commands:
  28. build Build or rebuild services
  29. bundle Generate a Docker bundle from the Compose file
  30. config Validate and view the Compose file
  31. create Create services
  32. down Stop and remove containers, networks, images, and volumes
  33. events Receive real time events from containers
  34. exec Execute a command in a running container
  35. help Get help on a command
  36. images List images
  37. kill Kill containers
  38. logs View output from containers
  39. pause Pause services
  40. port Print the public port for a port binding
  41. ps List containers
  42. pull Pull service images
  43. push Push service images
  44. restart Restart services
  45. rm Remove stopped containers
  46. run Run a one-off command
  47. scale Set number of containers for a service
  48. start Start services
  49. stop Stop services
  50. top Display the running processes
  51. unpause Unpause services
  52. up Create and start containers
  53. version Show the Docker-Compose version information

2.3 拉取/加载CDH镜像

2.3.1 方式一:从网上拉取镜像

  1. [root@localhost poc]# docker pull cloudera/quickstart:latest

2.3.2 方式二:装载镜像

  1. [root@localhost poc]# docker load -i cdh-poc.tar

2.4启动容器

2.4.1 运行容器

2.4.1.1 方式一(网上镜像)

  1. [root@localhost poc]# docker run --name cdh -e TZ="Asia/Shanghai" -d --hostname=quickstart.cloudera --privileged=true -t -i -p 8888:8888 -p 8020:8020 -p 8022:8022 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -p 8890:8890 -p 60010:60010 -p 10002:10002 -p 25010:25010 -p 25020:25020 -p 18088:18088 -p 8088:8088 -p 19888:19888 -p 7187:7187 -p 11000:11000 -p 2181:2181 cloudera/quickstart /usr/bin/docker-quickstart

2.4.1.1 方式一(自定义镜像)

  1. [root@localhost poc]# docker run --name cdh -d --hostname=quickstart.cloudera --privileged=true -t -i -p 8888:8888 -p 8020:8020 -p 8022:8022 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -p 8890:8890 -p 60010:60010 -p 10002:10002 -p 25010:25010 -p 25020:25020 -p 18088:18088 -p 8088:8088 -p 19888:19888 -p 7187:7187 -p 11000:11000 -p 2181:2181 cdh-poc /usr/bin/docker-quickstart

2.4.2 查看容器运行状态

  1. [root@localhost poc]# docker ps -a

2.4.3 启动容器异常报错

2.4.3.1错误如下

  1. write /proc/self/attr/keycreate: permission denied 表示文件没有写入权限,被拒绝访问了

2.4.3.2解决方案

  • 原因“/proc/self/attr/keycreate” 这里没有写入权限,把“/etc/selinux/config”里面的SELINUX值修改为disabled
  • SELINUX=disabled
  • 重启服务器(reboot命令)

2.4.3.3原理解析

  1. selinuxlinux为了系统安全性做的控制,会控制用户可以访问、读取、修改哪些文件,比如,前面的write /proc/self/attr/keycreate文件没有权限,就是被selinux控制了。
  2. selinux有三种模式:enforcing 强制 permissive 宽容的 diabled 禁止的,顾名思义,权限限制,从高到低。

2.5 启动容器内的服务以及修改配置文件

2.5.1 进入cdh容器

  1. [root@localhost poc]# docker exec -it cdh bash

2.5.2 启动CM服务

  1. [root@localhost ~]# docker exec -it cdh bash
  2. [root@quickstart /]# /home/cloudera/cloudera-manager --express --force

2.5.3 解决时钟偏差,开启NTP服务

  1. [root@localhost ~]# docker exec -it cdh bash
  2. [root@quickstart /]# service ntpd start

2.5.4修改hosts文件(不一定要改)

  1. [root@localhost ~]# docker exec -it cdh bash
  2. [root@quickstart /]# vi /etc/hosts

备注:添加IP quickstart.cloudera:此ip为容器内部的ip

2.5.5 修改容器里面的时区

2.5.5.1方式一:ln -sf 建立软连接方式

  1. [root@localhost ~]# docker exec -it cdh bash
  2. [root@quickstart /]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.5.5.2方式二:cp 方式

  1. [root@localhost ~]# docker exec -it cdh bash
  2. [root@quickstart /]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.5.5.3方式三:启动容器增加 -e 参数

备注:创建并运行容器,通过 -e TZ=“Asia/Shanghai” 设置时区` docker run -e TZ=“Asia/Shanghai”

2.6服务器配置host(两个服务器和测试机)

2.6.1 服务器上配置(最好是追加的方式,不要替换)

  1. [root@localhost ~]# vi /etc/hosts

追加内容如下

  1. 172.19.80.27 quickstart.cloudera

2.7访问测试

2.7.1 linux上测试

  • cdh管理后台(监控)地址curl http://quickstart.cloudera:7180/cmf/login

2.7.2 window上测试

  • 第一步:

HOSTS文件路径为:C:\Windows\System32\drivers\etc,增加

  1. 172.19.80.27 quickstart.cloudera quickstart
  • 第二步:打开window电脑上的浏览器,出来页面表示访问正常

    • 浏览器地址为:http://quickstart.cloudera:7180/cmf/login
    • 输入账号密码、登录进行CDH监控和管理
    • 账号/密码: cloudera/cloudera

2.8 地址相关































类型 地址 账号/密码
cdh管理后台(监控) http://quickstart.cloudera:7180/cmf/home cloudera/cloudera
YARN的Web页面 http://quickstart.cloudera:8088/cluster
hdfs的web页面 http://quickstart.cloudera:50070

2.9 在容器内手动管理服务































类型 地址 备注
hive进程经常失败 hive —service metastore &
hive —service hiveserver &
再运行
service impala-server restart
service impala-state-store restart
service impala-catalog restart
在各个节点上运行
cdh启动顺序 cm server,zookeeper
hdfs
hbase,solr
key-value store indexer,yarn
spark
hive
impala,oozie
hue

三、常见问题

3.1docker相关

3.1.1 docker学习

docker入门->参考网站:https://blog.csdn.net/lazycheerup/article/details/84871005

docker命令->参考网站:https://www.runoob.com/docker/docker-command-manual.html

3.1.2 docker 服务使用的进程

  1. [root@localhost ~]# ps -ef | grep docker
  2. root 10729 10697 6 14:43 pts/1 00:00:08 dockerd
  3. root 10742 10729 3 14:43 ? 00:00:04 containerd --config /var/run/docker/containerd/containerd.toml --log-level info
  4. root 10976 10697 0 14:45 pts/1 00:00:00 grep --color=auto docker

3.1.3 文件拷贝参考

从容器拷贝文件到宿主机

  • docker cp mycontainer:/opt/testnew/file.txt /opt/test/

从宿主机拷贝文件到容器

  • docker cp /opt/test/file.txt mycontainer:/opt/testnew/

3.1.3 docker-compose与docker的关系

  • docker是一个容器,但是你如果要是安装服务也是要单独一个一个的安装。
  • 如果你使用了docker-compose的话 就可以使用一个docker-compose.yml脚本一键安装

3.1.4 docker-compose常用命令参考

  1. docker-compose up -d nginx 构建建启动nignx容器
  2. docker-compose exec nginx bash 登录到nginx容器中
  3. docker-compose down 删除所有nginx容器,镜像
  4. docker-compose ps 显示所有容器
  5. docker-compose restart nginx 重新启动nginx容器
  6. docker-compose run --no-deps --rm php-fpm php -v php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
  7. docker-compose build nginx 构建镜像
  8. docker-compose build --no-cache nginx 不带缓存的构建。
  9. docker-compose logs nginx 查看nginx的日志
  10. docker-compose logs -f nginx 查看nginx的实时日志
  11. docker-compose config -q 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
  12. docker-compose events --json nginx json的形式输出nginxdocker日志
  13. docker-compose pause nginx 暂停nignx容器
  14. docker-compose unpause nginx 恢复ningx容器
  15. docker-compose rm nginx 删除容器(删除前必须关闭容器)
  16. docker-compose stop nginx 停止nignx容器
  17. docker-compose start nginx 启动nignx容器

3.1.5 docker 网络相关

  • docker的网络模式有四种,bridge host container none

    • bridge模式(默认):直接用宿主机的网卡,自己不再创建网卡

      • 当docker启动时会在主机创建一个docker0的虚拟网桥,此主机启动的容器会连接到这个虚拟网桥上。
      • 这样容器之间就能通信了。从docker0子网中分配一个IP给容器使用,并设置docker0的IP为容器的默认网关。
      • 在主机上创建一对虚拟网卡,veth pair设备 docker将veth pair 的一端放到新创建的容器中,并命名为eth0(容器的网卡)另一端放在主机中,以vethxxx命名,并将这个网络设备加到docker0网桥中。
    • host模式: 直接用宿主机的网卡,自己不再创建网卡

      • 当使用这种模式时,容器不再是一个独立的network ,而是和宿主机使用一个 ip:port 除了网络之外的是隔离的
    • container模式

      • 这个模式指定新创建的容器和已经存在的容器共享一个network 新容器不会创建自己的网卡,配置自己的ip而是跟指定的容器共享一个ip端口
    • none模式:只有127.0.0.1,不可与外界连通

      • 不对docker容器进行网络配置

3.2 其他相关

3.3.1 行方可能没有unzip 命令,最好在外面解压好拷贝进虚拟机

  1. [root@localhost kerlala]# unzip poc.zip
  2. -bash: unzip: 未找到命令
  3. [root@localhost kerlala]# yum install unzip -y

使用unzip命令解压.zip文件,可能没有安装unzip软件

命令: yum list | grep zip/unzip #获取安装列表 获取不到说明没有安装

安装命令: yum install zip #提示输入时,请输入y;

安装命令:yum install unzip #提示输入时,请输入y;

3.3.2 没有ifconfignetstat命令

  • 下载net-tools.x86_64
  • 执行yum install net-tools

3.3.3 防火墙相关

  • 查看防火墙状态

    • 命令:firewall-cmd —state
  • 停止firewall

    • 命令:systemctl stop firewalld.service
  • 禁止firewall开机启动

    • 命令:systemctl disable firewalld.service

四、Impala相关

4.1 容器里面执行命令

  1. [root@localhost ~]# docker exec -it cdh bash
  2. [root@quickstart /]# impala-shell
  3. Starting Impala Shell without Kerberos authentication
  4. Connected to quickstart.cloudera:21000
  5. Server version: impalad version 2.5.0-cdh5.7.0 RELEASE (build ad3f5adabedf56fe6bd9eea39147c067cc552703)
  6. ***********************************************************************************
  7. Welcome to the Impala shell. Copyright (c) 2015 Cloudera, Inc. All rights reserved.
  8. (Impala Shell v2.5.0-cdh5.7.0 (ad3f5ad) built on Wed Mar 23 11:33:33 PDT 2016)
  9. You can change the Impala daemon that you're connected to by using the CONNECT
  10. command.To see how Impala will plan to run your query without actually executing
  11. it, use the EXPLAIN command. You can change the level of detail in the EXPLAIN
  12. output by setting the EXPLAIN_LEVEL query option.
  13. ***********************************************************************************
  14. [quickstart.cloudera:21000] > show databases;
  15. Query: show databases
  16. +------------------+----------------------------------------------+
  17. | name | comment |
  18. +------------------+----------------------------------------------+
  19. | _impala_builtins | System database for Impala builtin functions |
  20. | default | Default Hive database |
  21. | rclp_data | |
  22. +------------------+----------------------------------------------+
  23. Fetched 3 row(s) in 0.55s
  24. [quickstart.cloudera:21000] > use rclp_data;
  25. Query: use rclp_data
  26. [quickstart.cloudera:21000] >

4.2 常用命令备注

4.2.1 进入impala:impala-shell;

4.2.2显示数据库show databases;

4.2.3 数据表show tables;

4.2.4查看表结构定义desc my_first;

五、hbase相关

5.1 容器里面执行命令

  1. [root@localhost ~]# docker exec -it cdh bash
  2. [root@quickstart /]# hbase shell
  3. 21/05/17 13:24:31 INFO Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
  4. HBase Shell; enter 'help<RETURN>' for list of supported commands.
  5. Type "exit<RETURN>" to leave the HBase Shell
  6. Version 1.2.0-cdh5.7.0, rUnknown, Wed Mar 23 11:39:14 PDT 2016
  7. hbase(main):001:0>

5.2 常用命令备注

a.查看表的结构

describe 'rclp:cst_mnl_label_info'

  1. COLUMN FAMILIES DESCRIPTION
  2. { NAME => 'col', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => ' FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
  3. 1 row(s) in 0.2110 seconds

b.创建表

create 'rclp:cst_mnl_label_info',{NAME => 'col', VERSIONS => 1}

c.插入测试数据

put 'rclp:cst_mnl_label_info','8950261608-M00164','col:cust_no','8950261608'

d.查询数据

scan "rclp:cst_mnl_label_info"

e.高级查询

语法:get <table>,<rowkey>,[<family:column>,....]

get "rclp:cst_mnl_label_info", "8950261608-M00164"

六、开发相关

6.1 impala开发相关:

6.1.1 代码实现的技术点

  • 核心技术点:

    • 动态数据源设置

      • 动态数据源配置
      • 动态选择数据源
      • 动态数据源使用
    • AOP选择数据源

      • 定义数据源注解
      • 定义数据源切面
      • 使用AOP进行数据源切换
  • 代码包路径为:com.mtb.im.services.customerprofile.datasource

6.1.2 网上参考

  • 网上的参考链接为:https://www.cnblogs.com/xichji/p/12208141.html

6.1hbase开发相关:

6.1.1 认证方式

6.1.2 配置方式

修改配置文件:hbase-site.xml

  1. <property>
  2. <name>hbase.zookeeper.quorum</name>
  3. <!--<value>quickstart</value>-->
  4. <!-- <value>quickstart.cloudera</value>-->
  5. <value>quickstart.cloudera</value>
  6. <!-- <value>hadoop01</value>-->
  7. <!-- <value>hadoop01,hadoop03,hadoop02</value>-->
  8. </property>
  9. <property>
  10. <name>hbase.zookeeper.property.clientPort</name>
  11. <value>2181</value>
  12. </property>

发表评论

表情:
评论列表 (有 0 条评论,130人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker多机容器部署

    对于一个项目来说,通常包含多个容器实例,而且这多个容器实例通常不会在同一台机器上。因此,如何在多个主机上通过容器来部署项目,需要解决的就是不同主机上容器的通信问题。 ----