docker搭建hadoop,hbase,hive集群(指定IP与物理机同网段)并实现 kettle8跨节点数据抽取,软件包可直接下载运行 超详细

一.所需资源:

	1. 三台机器centos7物理机:192.168.50.12,192.168.50.13,192.168.50.14 .
	2. 要求跨物理节点搭建docker hadoop集群,实现与物理机同网段虚拟化平台,便于以后集群动态扩展
	3. 实现kettle8 etl工具访问
	4. 所需资源(`建议版本和我一致`)
  1. 大数据资源
    hadoop-2.7.7 下载链接:  
    hbase-1.2.6 下载链接:
    hive-2.3.6(包含数据库驱动) 下载链接:
    
  2. 辅助资源
    pipwork-master(配置docker容器和宿主机在同一网段)下载链接:
    keychain(做集群互信)下载链接:
    phoenix(hbase客户端连接,或代码链接)下载链接:
    (hbase客户端连接)下载链接:
    kettle8(etl工具)下载链接:
    

二.docker 环境搭建

1.Docker 是一个开源的应用容器引擎,可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
轻量级虚拟机(操作系统层虚拟化),这个解释到位:https://www.cnblogs.com/kex1n/p/6933039.html
我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上, RHEL/Centos 的内核修补过, centos6.5的版本就可以——这个可以试试)

2.内核查看uname -a
3,把yum包更新到最新(新环境或测试环境可随意操作,生产环境酌情慎重更新
yum update -y
4. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5,设置yum源(选择其中一个)

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

6.查看所有仓库中所有docker版本,并选择特定版本安装yum list docker-ce --showduplicates | sort -r

7.安装Docker,我选的是docker-ce-18.03.1.ce
yum install docker-ce-18.03.1.ce
8.启动Docker 加入开机启动

systemctl start docker
systemctl enable  docker

9.更改Docker存储路径
停止docker服务: systemctl stop docker && systemctl status docker
创建更改路径: mkdir /data/service/docker -p
迁移原来数据:mv /var/lib/docker/* /data/service/docker/
修改docker.service配置文件:

vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /data/service/docker

重新加载配置文件systemctl daemon-reload
启动docker服务

 systemctl start docker
 systemctl enable docker
 systemctl status docker

查看修改是否成功

[yukw@yfb ~]$ docker info | grep Dir
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release.
WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
        Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
Docker Root Dir: /data/service/docker                ## 查看修改成功

三. 创建docker镜像

1.拉取基础cenos7镜像docker pull centos:7
2.build Dockfile 生成ssh功能的基础镜像 vim Dockfile 写入以下内容

# SSH_Dockerfile的作用是为干净的contos镜像添加 vim,ifconfig,ssh基本的功能,

#From centos的作用在于告诉docker对那个镜像进行配置
From centos:7

#WORKDIR 为进入容器时的路径。我们在这里设置时root的家目录
WORKDIR /root
#安装vim编辑工具,RUN是dockerfile的一个关键字,运行linux的指令
RUN yum install -y vim
RUN yum install -y git
RUN yum install -y wget
#安装ifconfig工具,这里是centos8,ifconfig存在于net-tools-2.0-0.51.20160912git.el8.x86_64中,那么我们就安装这个组件
RUN yum install -y net-tools.x86_64

#以下两个安装的是ssh
RUN yum install -y openssh-server
RUN yum install -y openssh-clients

#这里手动创建/root/.ssh目录,这里存放id_rsa , id_rsa.pub , authorized_keys, 以及known_hosts文件,这一步 是为了下一步的生成公密钥对提供存放地点
RUN mkdir .ssh

#echo root | chpasswd的作用在于 非交互式创建容器的密码,这是为了方便在dockerfile中就能完成root密码的设置,因为SSH登录时需要使用有密码的root用户(一般来说,很多功能都需要带有密码的root)
RUN ssh-keygen -t rsa -f /root/.ssh/id_rsa -N "" && echo "root:root" | chpasswd

#anthorized_keys 是两台机器SSH免密登录,登录方需要存放被登录方公钥的地方。为了让镜像拥有更多的功能,我们这里直接把本机的公钥复制一份给authorized_keys,以便启动多个容器时,直接免密登录。(这里不明白的小伙伴可以参看一下SSH免密登录的知识)
RUN cp .ssh/id_rsa.pub .ssh/authorized_keys


RUN mkdir /var/run/sshd
# 使镜像直接开启22端口。这个是SSH连接的端口
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

# SSH_Dockerfile的作用是为干净的contos镜像添加 vim,ifconfig,ssh基本的功能,

#From centos的作用在于告诉docker对那个镜像进行配置
From centos:7

#WORKDIR 为进入容器时的路径。我们在这里设置时root的家目录
WORKDIR /root
#安装vim编辑工具,RUN是dockerfile的一个关键字,运行linux的指令
RUN yum install -y vim

#安装ifconfig工具,这里是centos8,ifconfig存在于net-tools-2.0-0.51.20160912git.el8.x86_64中,那么我们就安装这个组件
RUN yum install -y net-tools.x86_64

#以下两个安装的是ssh
RUN yum install -y openssh-server
RUN yum install -y openssh-clients

#这里手动创建/root/.ssh目录,这里存放id_rsa , id_rsa.pub , authorized_keys, 以及known_hosts文件,这一步 是为了下一步的生成公密钥对提供存放地点
RUN mkdir .ssh

#echo root | chpasswd的作用在于 非交互式创建容器的密码,这是为了方便在dockerfile中就能完成root密码的设置,因为SSH登录时需要使用有密码的root用户(一般来说,很多功能都需要带有密码的root)
RUN ssh-keygen -t rsa -f /root/.ssh/id_rsa -N "" && echo "root:root" | chpasswd

#anthorized_keys 是两台机器SSH免密登录,登录方需要存放被登录方公钥的地方。为了让镜像拥有更多的功能,我们这里直接把本机的公钥复制一份给authorized_keys,以便启动多个容器时,直接免密登录。(这里不明白的小伙伴可以参看一下SSH免密登录的知识)
RUN cp .ssh/id_rsa.pub .ssh/authorized_keys

RUN mkdir /var/run/sshd
# 使镜像直接开启22端口。这个是SSH连接的端口
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

3.上述的意思为:以centos为基础镜像,安装服务并启动,构建docker: docker build -t="centos-ssh" .
4.生成名为centos-ssh的镜像,可通过docker images查看
5.生成images后,建立docker容器

四.docker服务与物理机器同网段

1.使用pipwork建立独立网桥(注意,以下阶段不可远程,必须在机房完成!!!,重启网络会断网)
2.建立pipwork的软连接,ln -s /app/local/xx/pipwork-master/pipwork /usr/bin/pipwork(改为自己的路径)
3.删除以前网桥,docker0为你启动时自动建立

ip link set dev docker0 down
yum install bridge-utils
brctl delbr docker0

4.接下来比较关键,修改物理机所有网卡cd /etc/sysconfig/network-scripts
1)单网卡

vim ifcfg-eth33
 TOOTPROTO='none'
 BRIDGE=br0   #桥接网卡

2)多网卡

五.机器互信

下载地址

wget https://github.com/funtoo/keychain

下载后解压缩,将keychain拷贝到bin目录

cp keychain /usr/bin/

修改用户配置文件

#vim ~/.bash_profile

keychain ~/.ssh/id_rsa
. ~/.keychain/$HOSTNAME-sh

# source ~/.bash_profile

六.搭建分布式hadoop平台

待开发。。

七.搭建hbase平台及客户端连接服务(phoenix)

待开发。。

八.搭建hive平台

待开发。。

九.kettle连接大数据服务

sudo systemctl --force --force reboot
待开发。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starry-sky(jing)

一起共勉,一起加油!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值