从 0 开始使用 Docker 快速搭建 Hadoop 集群环境

  categories:资料  author:

Linux

  • Info:
    • Ubuntu 16.10 x64

Docker 本身就是基于 Linux 的,所以首先以我的一台服务器做实验。虽然最后跑 wordcount 已经由于内存不足而崩掉,但是之前的过程还是可以参考的。

连接服务器

  • 使用 ssh 命令连接远程服务器。
ssh root@[Your IP Address]

ssh root@127.0.0.1

更新软件列表

apt-get update

apt-get update
  • 更新完成。

更新完成

安装 Docker

sudo apt-get install docker.io

sudo apt-get install docker.io
  • 当遇到输入是否继续时,输入「Y/y」继续。

使用docker搭建hadoop分布式集群

  categories:资料  author:

使用docker搭建部署hadoop分布式集群

在网上找了很长时间都没有找到使用docker搭建hadoop分布式集群的文档,没办法,只能自己写一个了。
一:环境准备:
1:首先要有一个Centos7操作系统,可以在虚拟机中安装。
2:在centos7中安装docker,docker的版本为1.8.2
安装步骤如下:
<1>安装制定版本的dockeryum install -y docker-1.8.2-10.el7.centos
<2>安装的时候可能会报错,需要删除这个依赖

这里写图片描述

rpm -e lvm2-7:2.02.105-14.el7.x86_64

启动docker

service docker start

验证安装结果:
这里写图片描述
<3>启动之后执行docker info会看到下面有两行警告信息
这里写图片描述

需要关闭防火墙并重启系统

systemctl stop firewalld
systemctl disable firewalld
注意:执行完上面的命令之后需要重启系统
reboot -h(重启系统)
阅读全文

ansible入门

  categories:资料  author:

前言

最近看了一下ansible,挺火的一个配置管理工具,对比老大哥puppet,使用起来要简单一些,并且可以批量执行命令,对比同是python语言编写的saltstack,不需要安装客户端(基于paramiko),也更灵活一些,尤其我们现有的登录方式,通过跳板机加密钥,改造成ansible成本很低,准备学习一下以后在生产上使用。

ansible已被红帽收购,目前出到2.0了,和红帽的朋友聊了一下,这个配合现在大火的openstack(红帽是其代码最大贡献者之一),看来以后会成为自动化运维的一个趋势。

官网地址http://docs.ansible.com/

安装

最简单的epel之后,yum install ansible

也可以用pip的方式

pip install ansible即可

如果像我们一样服务器不能连接公网,需要手动下载一下python模块ecdsa, pycrypto, paramiko, MarkupSafe, jinja2, PyYAML, ansible

目前安装的版本是1.9.4

ansible --version
ansible 1.9.4

入门使用

首先把ssh密钥搞好,这里就不说了,保证master和minion之间不通过密码

定义主机和组:

vim /etc/ansible/hosts  #默认的文件位置,也可执行ansible时手动指定hosts文件,通过-i参数

[test]
10.199.2.45
10.199.2.46

[web]
10.199.2.[42:47]  #=10.199.2.42\43\44\45\46\47
test.case.com  #主机名定义

使用第一个模块:

ansible 
阅读全文

如何在Kubernetes(k8s)中暴露服务访问

  categories:资料  tags:,   author:

本文是10月18日Rancher在北京举办的Kubernetes技术沙龙中的分享话题之一,由讲师张智博整理撰写成文稿。

Kubernetes概述

最近的一年,kubernetes的发展如此闪耀,正被越来越多的公司采纳用于生产环境的实践。同时,我们可以在最著名的开发者问答社区StackOverflow上看到k8s的问题数量的增长曲线(2015.5-2016.5),开发者是用脚投票的,从这一点看也无疑证明了k8s的火爆程度。

20161024200813

Kubernetes来源于Google生产环境的实践,社区活跃度很高,在github上的Star数17k+,30k+commits,同时由Google主导CNCF基金会也在强力运作k8s的社区发展,也就在几个月前OpenStack社区宣布全面拥抱k8s,这也宣布了全球第大的开源IAAS云社区已经选择k8s作为容器的唯一解决方案。

谈到k8s,无论怎样的议题怎样的开始,我们都先介绍一个k8s整体架构(如下图所示):

20161024200831

  • etcd 作为配置中心和存储服务,保存了所有组件的定义以及状态,k8s的多个组件之间的互相交互也主要通过etcd;
  • kube-apiserver 提供和外部交互的接口,提供安全机制,大多数接口都是直接读写etcd中的数据;

kube-scheduler 调度器,主要干一件事情,监听etcd中的pod目录变更,然后通过调度算法分配node,最后调用apiserver的bind接口将分配的node和pod进行关联;

kube-controller-manager 承担了master的主要功能,比如和CloudProvider(IaaS)交互,管理node,pod,replication,service,namespace等。

基本机制是监听etcd /registry/events下对应的事件,进行处理;kubelet 主要包含容器管理,镜像管理,Volume管理等;kube-proxy 主要用于实现k8s的service机制。提供一部分SDN功能以及集群内部的智能LoadBalancer。

本文分享的内容主要是在minion节点上的pod和service上,pod是k8s应用的具体实例抽象,而service便是这些抽象的集合。

20161024200837

ClusterIP & NodePort & Loadbalancer

回到本文的主题,在k8s中暴露Service访问(无论内部还是外部),都要经过kube-proxy,比如下图中我们定义一个Service,便可以通过访问Service的80端口转发到Pod的9376端口上。

20161024200845

kube-proxy在转发时主要有两种模式Userspace和Iptables。如下图,左侧是Userspace模式,也是kube-proxy默认的方式,所有的转发都是通过kube-proxy软件实现的;右侧是Iptables模式,所有转发都是通过Iptables内核模块实现,而kube-proxy只负责生成相应的Iptables规则。从效率上看,Iptables会更高一些,但是需要Iptables version >=1.4.11,Iptables模式在k8s1.2版本放出,是否开启使用还需要具体斟酌。

20161024200853

Service本身看,有三种方式来暴露访问:

  • ClusterIP:使用集群内的私有ip —— 这是默认值
  • NodePort:除了使用cluster ip外,也将service的port映射到每个node的一个指定内部port上,映射的每个node的内部port都一样。
  • LoadBalancer:使用一个ClusterIP & NodePort,但是会向cloud provider申请映射到service本身的负载均衡。

LoadBalancer … 阅读全文



快乐成长 每天进步一点点      京ICP备18032580号-1