雅数量:Hadoop入门

docker 化运维方案

归纳, docker 化运维需要拿用拆分为 3 部分:

  1. 基本功环境, 应用拥有因, 应用软件包跟静态配置, 固化到镜像。
  2. 内需动态修改的安排, 通过开关平台或 diamond 等布置平台开展管理。
  3. 要持久化保存要数写需求的配置或者数量目录, 挂载为数据卷。

布运维时, 使用 docker 分发镜像, 配置平台推送配置,
即可实现以快速布置、迁移、更新、回滚、扩缩容等运维操作。

源文http://www.xiongge.club/705.html

老三:安装Hadoop运行条件

  1. 用户创建:

(1.)创建Hadoop用户组,输入指令:

           groupadd  hadoop

(2.)创建hduser用户,输入指令:

           useradd –p hadoop hduser

(3.)设置hduser的密码,输入指令:

           passwd  hduser

           按提示输入两浅密码

(4.)为hduser用户增长权限,输入指令:

           #修改权限

           chmod 777 /etc/sudoers

           #编辑sudoers

           Gedit /etc/sudoers

           #平复默认权限

           chmod  440 /etc/sudoers

           先修改sudoers 文件权限,并当文本编辑窗口中查找到实践“root
ALL=(ALL)”,紧跟后面更新加行“hduser  ALL=(ALL)
ALL”,将hduser添加到sudoers。添加完成后切记还原默认权限,否则系统以无同意采取sudo命令。

(5.)设置好后再度开虚拟机,输入指令:

           Sudo  reboot

           重开后切换到hduser用户登录

  1. 安装JDK

(1.)下载jdk-7u67-linux-x64.rpm,并上下载目录。

(2.)运行安装命令:

           Sudo rpm –ivh jdk-7u67-linux-x64.rpm

       完成后翻看安装路径,输入指令:

       Rpm –qa jdk –l

       记住该路线,

(3.)配置环境变量,输入指令:

    Sudo  gedit /etc/profile

    打开profile文件于文书最下进入如下内容

    export  JAVA_HOME=/usr/java/jdk.7.0.67

    export CLASSPATH=$ JAVA_HOME/lib:$ CLASSPATH

    export PATH=$ JAVA_HOME/bin:$PATH

    保存后关文件,然后输入指令使环境变量生效:

    Source /etc/profile

(4.)验证JDK,输入指令:

    Java –version

    若出现不利的本子则装成功。

  1. 配备本机SSH免密码登录:

(1.)使用ssh-keygen 生成私钥与公钥文件,输入指令:

           ssh-keygen –t rsa

      图片 1

(2.)私钥留在本机,公钥发给其它主机(现在凡localhost)。输入指令:

           ssh-copy-id localhost

(3.)使用公钥来报到输入指令:

           ssh  localhost

  1. 安排外主机SSH免密登录

(1.)克隆两潮。在VMware左侧栏中选中虚拟机右击,在弹出的快捷键菜单中当选管理—克隆命令。在仿制类型时选中“创建完整克隆”,单击“下一致步”,按钮直到好。

(2.)分别启动并上三尊虚拟机,使用ifconfig查询个主机IP地址。

(3.)修改每令主机的hostname及hosts文件。

           步骤1:修改hostname,分别以各级主机中输入指令。

           Sudo gedit /etc/sysconfig/network

           步骤2:修改hosts文件:

           sudo gedit /etc/hosts

           步骤3:修改三宝虚拟机的IP

                    第一贵对应node1虚拟机的IP:192.168.1.130

其次尊对应node2虚拟机的IP:192.168.1.131

其三雅对应node3虚拟机的IP:192.168.1.132

    (4.)由于都在node1上老成过密钥对,所有现在一旦以node1上输入指令:

           ssh-copy-id node2

           ssh-copy-id node3

       这样就是可以以node1的公钥发布到node2,node3。

    (5.)测试SSH,在node1上输入指令:

       ssh node2

       #离登录

       exit

       ssh node3

exit

tomcat webapp 部署组织

我们看一下一个基于 tomcat 部署的 java webapp 应用部署组织如下:

apache-tomcat-8.0.35/
├── bin/
├── conf/
├── lib/
├── logs/
├── temp/
├── webapps/
├── work/
├── LICENSE
├── NOTICE
├── RELEASE-NOTES
└── RUNNING.txt

那个要分为两单部分:

  1. 静态二进制文件。包含 bin/, lib/。这一部分是三正值软件包 tomcat
    自带的内容。对下而言, 这有些情节是不过读访问的, 不会见修改。
  2. 表配置以及数据。包含 conf/, logs/, temp/, webapps/, work/。这里的“外部”是指从
    tomcat 软件包之角度来拘禁, 对动来说, 这片才是的确的以软件包。

留神: tomcat 软件包吗饱含 conf/。但下或会见针对 conf/ 进行改动,
所以应用使用了一个单身维护的 conf/ 副本, 而不是 tomcat
软件包自带的 conf/ 内容。

酷明白, 要迁移这个应用, 只待迁移第 2 组成部分,
即外部配置和数码即可。为了简化迁移, 许多采取叫设计吧无状态的,
即 logs/, temp/, work/ 等标数据目录不含其他影响使效益的安排或者数量,
这部分内容不待迁移。只待迁移 conf/, webapps/ 目录,
这有的情可包裹为用软件包。

如此这般, 在初条件布置下, 只待安装 tomcat 软件包和利用软件包即可。

季:Hadoop完全分布式安装

  1. 1.       Hadoop有三种植运行方式:

(1.)单机模式:无须配置,Hadoop被视为一个非分布式模式运行的独立Java进程

(2.)伪分布式:只有一个节点的集群,这个节点即凡Master(主节点,主服务器)也是Slave(从节点,从服务器),可于此单节点上因不同的java进程模拟分布式中之各项节点

(3.)完全分布式:对于Hadoop,不同之系会出两样之节点划分方式。

2.安装Hadoop

    (1.)获取Hadoop压缩包hadoop-2.6.0.tar.gz,下载后可以使VMWare 
Tools通过共享文件夹,或者用Xftp工具传到node1。进入node1
将回落包解压到/home/hduser目录下,输入指令:

    #进入HOME目录即:“/home/hduser”

    cd ~

    tar –zxvf hadoop-2.6.0.tar.gz

    (2.)重命名hadoop输入指令:

       mv hadoop-2.6.0 hadoop

    (3.)配置Hadoop环境变量,输入指令:

           Sudo gedit /etc/profile

       将以下脚本加到profile内:

       #hadoop

       export HADOOP_HOME=/home/hduser/hadoop

       export PATH=$HADOOP_HOME/bin:$PATH

       保存关闭,最后输入指令使配置生效

       source /etc/profile

       注:node2,和node3都如按以上配置进行布置。

3.配置Hadoop

    (1.)hadoop-env.sh文件用于指定JDK路径。输入指令:

       [hduser@node1 ~]$ cd ~/hadoop/etc/hadoop

       [hduser@node1 hadoop]$ gedit hadoop-env.sh

       然后搭如下内容指定jDK路径。

       export JAVA_HOME=/usr/java/jdk1.7.0_67

    (2.)打开指定JDK路径,输入指令:

       export JAVA_HOME=/usr/java/jdk1.7.0_67

    (3.)slaves:用于充实slave节点即DataNode节点。

       [hduser@node1 hadoop]$ gedit slaves

       打开并清空原内容,然后输入如下内容:

       node2

       node3

       表示node2,node3作为slave节点。

   
(4.)core-site.xml:该文件是Hadoop全局配置,打开并于<configuration>元素被多部署属性如下:

    <configuration>

       <property>

           <name>fs.defaultFs</name>

           <value>hdfs://node1:9000</value>

       </property>

           <name>hadoop.tmp.dir</name>

           <value>file:/home/hduser/hadoop/tmp</value>

       </property>

    <configuration>

这边叫来了个别独常因此底部署属性,fs.defaultFS表示客户端连接HDFS时,默认路径前缀,9000是HDFS工作之端口。Hadoop.tmp.dir如不指定会保留到系统的默认临时文件目录/tmp中。

   
(5.)hdfs-site.xml:该公文是hdfs的部署。打开并当<configuration>元素被长部署属性。

   
(6.)mapred-site.xml:该公文是MapReduce的布,可于沙盘文件mapred-site.xml.template中复制打开并在<configuration>元素被增部署。

   
(7.)yarn-site.xml:如果当mapred-site.xml配置了使YARN框架,那么YARN框架就使这文件中之布,打开并当<configuration>元素被加进部署属性。

(8.)复制这七单指令到node2,node3。输入指令如下:

scp –r /home/hduser/hadoop/etc/hadoop/
hduser@node2:/home/hduser/hadoop/etc/

 

scp –r /home/hduser/hadoop/etc/hadoop/
hduser@node3:/home/hduser/hadoop/etc/

4.验证:

    下面验证hadoop是否是

    (1.)在Master主机(node1)上格式化NameNode。输入指令:

       [hduser@node1 ~]$ cd ~/hadoop

       [hduser@node1 hadoop]$ bin/hdfs namenode –format

    (2)关闭node1,node2 ,node3,系统防火墙并更开虚拟机。输入指令:

       service iptables stop

       sudo chkconfig iptables off

       reboot

    (3.)输入以下启动HDFS:

       [hduser@node1 ~]$ cd ~/hadoop

    (4.)启动所有

[hduser@node1 hadoop]$ sbin/start-all.sh

(5.)查看集群状态:

    [hduser@node1 hadoop]$ bin/hdfs dfsadmin –report

(6.)在浏览器中查看hdfs运行状态,网址:http://node1:50070

(7.)停止Hadoop。输入指令:

    [hduser@node1 hadoop]$ sbin/stop-all.sh

新环境布置

当初条件上做到应用部署, 有有限种植玩法:

  1. 排一个软件包清单 (如达到例被之 tomcat 和运用),
    在新环境及仍清单就软件包安装, 这是 juju 的玩法。
  2. 用拥有软件包安装好并打包成一个次之上前制镜像, 拷贝到新条件达标配备运行,
    这是 docker 的玩法。Dockerfile
    描述如何创建镜像, 类似于软件包清单。

docker 镜像不止是优先安装软件包, 还包含基础操作系统环境,
统一之日记、数据路径, 环境变量等规范应用运行条件。这只是麻烦不倒 juju,
juju 同样因一个标准镜像创建 vm 或 lxc 容器, 再安装软件包,
同样提供条件的周转条件。这点儿栽方法各发生利弊,
在这不发深究。但即便下本来说, docker 目前以国内外发展火热,
技术以及实践经验相对成熟, 更易使。

次:Hadoop体系布局

  1. Hadoop来源:

Hadoop源于Google在2003届2004年通告之有关GFS(Google File
System),MapReduce和BigTable的老三篇论文,创始人Doug 
Cutting。Hadoop现在是Apache基金会一等项目,“Hadoop”一个编的名字。由Doug 
Cutting的孩子为夫黄色玩具象所命名。

  1. Hadoop的核心:

(1.)HDFS和MapReduce是Hadoop的有数那个骨干。通过HDFS来促成对分布式储存的底部支持,达到快速并行读写及深容量的仓储扩展。

(2.)通过MapReduce实现对分布式任务进行处理程序支持,保证高速分区处理数量。

3.Hadoop子项目:

      图片 2

 

    (1.)HDFS:分布式文件系统,整个Hadoop体系之内核。

   
(2.)MapReduce/YARN:并行编程模型。YARN是亚代的MapReduce框架,从Hadoop 
0.23.01版后,MapReduce被重构,通常为号称MapReduce 
V2,老MapReduce也称之为 MapReduce V1。

   
(3.)Hive:建立于Hadoop上的数据仓库,提供类似SQL语音的询问办法,查询Hadoop中之多寡,

   
(4.)Pig:一个伙大型数据进行分析和评估的平台,主要作用类似于数据库被存储过程。

    (5.)HBase:全称Hadoop 
Database,Hadoop的分布式的,面向列的数据库,来源于Google的关于BigTable的论文,主要用来随机走访,实时读写的深数量。

   
(6.)ZooKeeper:是一个啊分布式应用所设计之和谐服务,主要为用户提供联合,配置管理,分组和命名等劳务,减轻分布式应用程序所负的调和任务。

       还来另特别多外类型这里不做一一说了。

具有快速迁移的力量, 同样可拿使快速切换到自由版本, 实现迅速回滚。

如出一辙:什么是死数据

  1. 咦是坏数量:

(1.)大数据是据在定时间内无法用常规软件对那情进行通缉到手,管理和拍卖的数据集合,简而言之就是数据量非常充分,大及无法用常规工具进行处理,如涉及项目数据库,数据仓库等。这里“大”是一个呀量级呢?如在阿里巴巴每日处理数量达20PB(即20971520GB).

2.要命数额的风味:

   
(1.)体量巨大。按目前之发展趋势来拘禁,大数目的体量已经抵达PB级甚至EB级。

(2.)大数量的数据类型多样,以非结构化数据为主,如网杂志,音频,视屏,图片,地理位置信息,交易数据,社交数据等。

(3.)价值密度低。有价之数码仅占及总数仍的一样有点片。比如同段视屏中,仅来几乎秒的音信是起价之。

(4.)产生及要求处理速度快。这是不行数据区与民俗数码挖掘最引人注目的风味。

3.除了这之外还产生其它处理体系可处理非常数额。

Hadoop (开源)

Spark(开源)

Storm(开源)

MongoDB(开源)

IBM PureDate(商用)

Oracle Exadata(商用)

SAP Hana(商用)

Teradata  AsterData(商用)

EMC GreenPlum(商用)

HP Vertica(商用)

注:这里我们才介绍Hadoop。

docker 容器数据卷

docker 容器内的文件系统伴随容器而深, 销毁或更新容器时
(如升级镜像或改动容器配置),
原时有发生数量以会少。并且于分层文件系统设计影响,
其特性可能更差(与储存引擎实现有关)。

为此, 需要持久化保存之安排和数量, 或发生强写性能要求的,
如 logs/, data/ 等标数据目录, 应使用 docker 数据卷 挂载到宿主机上。

Dockerfile 中使用 VOLUME 指定容器被需要挂载为数据卷的目列表。

大数据:Hadoop入门

行使迁移需求

五:Hadoop相关的shell操作

(1.)在操作系统中/home/hduser/file目录下创造file1.txt,file2.txt可运图形界面创建。

file1.txt输入内容:

    Hello World hi HADOOP

file2.txt输入内容

    Hello World hi CHIAN

(2.)启动hdfs后创造目录/input2

    [hduser@node1 hadoop]$ bin/hadoop fs –mkdir /input2

(3.)将file1.txt.file2.txt保存到hdfs中:

    [hduser@node1 hadoop]$ bin/hadoop fs –put -/file/file*.txt
/input2/

(4.)[hduser@node1 hadoop]$ bin/hadoop fs –ls /input2

 

 

 

简单。迁移操作必须足够简单, 没有攻成本, 点击一下即可。

图片 3

 

很多铺面还于运用古老的 rhel 5/6 和 linux 2.6.x 内核,
难以充分发挥现代操作系统及硬件的力,
部分因呢是受制于用迁移技术不熟, 不克担保高速无损迁移应用,
不敢迁移。

使迁移的中坚需求是:

软件包跟配置分层

稍许软件包死好的实现了软件包默认配置和运由定义配置的分手, 如 tomcat,
只需要点名 CATALINA_BASE 目录与 CATALINA_HOME 目录分开, 将运部署到
CATALINA_BASE 下, 即可实现应用由定义配置和 tomcat 软件包默认配置分离,
两者独立维护, 互不影响。

过多软件包没有实现如此的力量, docker 通过分层文件系统解决此问题,
同时可以免每个软件包都去考虑规划布局分离功能。

图片 4

采用由定义配置当软件包安装层的上层, 运行容器时盖默认配置,
但在软件包安装层升级软件包时看不到应用由定义配置,
不会见给应用由定义配置影响。需要专注的是,
软件包升级后是否匹配旧的使由定义配置, 是否需要更新自定义配置,
需要采用负责人关注同测试。

据 docker 的分层设计思想, 越基础进一步恒定不移的东西越来越设搁底层,
越爱变化的事物更要坐上层, 因此采取依赖的软件包和基础配置要放到底层,
可以独自为一个 base 镜像,
应用本身以及打定义配置在上层。如果采用本身或部署更新更累,
可将即刻两边又分为两叠。

单机多实例隔离部署

运用 docker 应用容器部署下, docker
容器为使提供了业内一致且互相独立的运行条件,
这样用使用同样的布局与路, 也可以单个宿主机上实现多实例部署。与 vm
的单机单部署模式相比, 应用容器要开的足好, 消除 vm 的额外开销,
并且完美支持微服务编排。

快速。迁移过程会于最缺乏的时内就。

运用运维需要考虑的一个重大问题便是迁移,
在不同机器、机房、环境之中搬迁。迁移的因由来很多, 比如硬件过保(硬件故障),
机房迁移, 应用扩缩容等。

 

无损。迁移之后采用和原先以相同,
不掉任何配置以及多少。迁移之后以功能以及事情逻辑与原来部署下相同,无其它事情风险。

配置管理

如果我们若改一个应用配置, 一栽艺术是登陆一光机械修改, 测试 ok
后以修改并到具有其他机器。这种方法大老而缺乏监管,
容易失误。比如新扩容了 100 台机械每台还如创新一整整, 如果操作有遗漏,
哪些机器配置已经更新, 哪些机器要原有的布置为不够监管。

遵循 docker 的玩法, 应该是先期更新镜像, 测试 ok
后分发镜像到拥有机器更新容器。docker
监管了有着容器部署之镜像版本和容器状态,
从而可以挺有益之自我批评哪些容器更新了,
哪些没有更新。对于大少变化之静态配置, 应该固化到镜像中。

对于一些时不时转移之配置, 重新打镜像及创新容器成本不过胜,
应该设计成为预定义的开关, 使用开关平台进行监察和管理, 或者以 diamond
等配备管理平台管理。

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注