配置文件、虚拟机-如何使用vagrant在虚拟机安装hadoop集群-by小雨
2013-04-17 13:10
906 查看
作工之余抽点间时出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下配置文件、虚拟机-
原文址地:http://blog.cloudera.com/blog/2013/04/how-to-use-vagrant-to-set-up-a-virtual-hadoop-cluster/
vagrant 是一个非常好用的工具,可以用它来在单台物理器机编程理管多个虚拟机(vms)。其支撑原生VirtualBox,并同时供提了对VMware Fusion、Amazon EC2虚拟机集群的插件支撑。
vagrant供提了极易应用、基于Ruby的部内DSL,许允户用应用它们的配置参数定义一个或多个虚拟机。另外,对于主动部署,vagrant支撑多种制机:可以应用puppet,chef或者于用在vagrant配置文件中定义的有所虚拟机上主动装安软件程序和配置的shell本脚等。
所以,应用vagrant可以在运行着多台vm的系统上定义庞杂的虚拟框架,是不是很酷?
vagrant的典范应用案例是以简略并且致一的方法构建作工或者发开环境。在Eligotech(原作者公司)公司里,发开人员正在发开一个产品,标目是让户用简略的应用Apache Hadoop、CDH(Cloudera的源开版本)。发开人员经常是为了测试须要在器机上装安hadoop环境。他们现发vagrant在这方面是一个非常方便的工具。
一个vagrant配置文件的例子,你们可以自行测试。你须要载下并装安vagrant(帮助址地http://docs.vagrantup.com/v2/installation/index.html)和virtualBox。有所西东都装安毕完后可即复制粘贴上面的文本保存为Vagrantfile,并将其放到一个目录下,比如VagrantHadoop.这个配置文件假设你器机存内最少32G,如果不适合可以自行辑编该文件。
配置文件定义了6台vm,并指定了各vm的角色(循遵CDH角色):
vm-cluster-node1: This is the master; besides running the CM master, it should run the namenode, secondary namenode, and jobtracker.
vm-cluster-node2: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-node3: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-node4: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-node5: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-client: This machine plays the role of gateway for the cluster.
配置文件各配置项意思请点击:http://docs.vagrantup.com/v2/vagrantfile/index.html。特殊指出的是依赖于不同的供提商,virtualbox或者vmwarefusion,定义的存内大小是不同的。大家看下,应用不同供提商
定制须要的环境
是如许的简略!
面上的vagrant配置文件做了另外一件主要的情事:在master和node1节点主动装安cloudera Manager 。
要创立这个虚拟机集群,只须要到配置文件目录下(比如VagrantHadoop),在shell下运行:
过一段间时(这个间时随你的器机性能而定),Vagrant运行毕完,意味着有所虚拟机装安配置毕完并且处于运行态状。
到此,你可以通过CM理管UI(http://vm-cluster-node1:7180)配置你的集群。
Have fun!
文章结束给大家分享下程序员的一些笑话语录:
IT业众生相
第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也。如丁磊,求伯君。
第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不是顶尖黑客就是技术总监之流。
第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软件产品。
第四级:工头,技术精湛,有领导团队的能力,此类人大公司项目经理居多。
第五级:技术工人,技术精湛,熟悉行业知识但领导能力欠加,此类人大多为系分人员或资深程序员,基本上桀骜不逊,自视清高,不愿于一般技术人员为伍,在论坛上基本以高手面目出现。
第六级:熟练工人,技术有广度无深度,喜欢钻研但浅尝辄止。此类人大多为老程序员,其中一部分喜欢利用工具去查找网上有漏洞的服务器,干点坏事以获取成绩感。如果心情好,在论坛上他们会回答菜鸟的大部分问题。此级别为软件业苦力的重要组成部分。
第七级:工人,某些技术较熟练但缺乏深度和广度,此类人大多为程序员级别,经常在论坛上提问偶尔也回答菜鸟的问题。为软件产业苦力的主要组成部分。
第八级:菜鸟,入门时间不长,在论坛上会反复提问很初级的问题,有一种唐僧的精神。虽然招人烦但基本很可爱。只要认真钻研,一两年后就能升级到上一层。
第九级:大忽悠,利用中国教育的弊病,顶着一顶高学历的帽子,在小公司里混个软件部经理,设计不行,代码不行,只会胡乱支配下属,拍领导马屁,在领导面前胡吹海侃,把自己打扮成技术高手的模样。把勾心斗角的办公室文化引入技术部门,实在龌龊!
第十级:驴或傻X,会写SELECT语句就说自己精通ORALCE,连寄存器有几种都不知道就说自己懂汇编,建议全部送到日本当IT产业工人,挣了日本人的钱还严重打击日本的软件业!
原文址地:http://blog.cloudera.com/blog/2013/04/how-to-use-vagrant-to-set-up-a-virtual-hadoop-cluster/
vagrant 是一个非常好用的工具,可以用它来在单台物理器机编程理管多个虚拟机(vms)。其支撑原生VirtualBox,并同时供提了对VMware Fusion、Amazon EC2虚拟机集群的插件支撑。
vagrant供提了极易应用、基于Ruby的部内DSL,许允户用应用它们的配置参数定义一个或多个虚拟机。另外,对于主动部署,vagrant支撑多种制机:可以应用puppet,chef或者于用在vagrant配置文件中定义的有所虚拟机上主动装安软件程序和配置的shell本脚等。
所以,应用vagrant可以在运行着多台vm的系统上定义庞杂的虚拟框架,是不是很酷?
vagrant的典范应用案例是以简略并且致一的方法构建作工或者发开环境。在Eligotech(原作者公司)公司里,发开人员正在发开一个产品,标目是让户用简略的应用Apache Hadoop、CDH(Cloudera的源开版本)。发开人员经常是为了测试须要在器机上装安hadoop环境。他们现发vagrant在这方面是一个非常方便的工具。
一个vagrant配置文件的例子,你们可以自行测试。你须要载下并装安vagrant(帮助址地http://docs.vagrantup.com/v2/installation/index.html)和virtualBox。有所西东都装安毕完后可即复制粘贴上面的文本保存为Vagrantfile,并将其放到一个目录下,比如VagrantHadoop.这个配置文件假设你器机存内最少32G,如果不适合可以自行辑编该文件。
# -*- mode: ruby -*- # vi: set ft=ruby : $master_script = <<SCRIPT #!/bin/bash cat > /etc/hosts <<EOF 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 10.211.55.100 vm-cluster-node1 10.211.55.101 vm-cluster-node2 10.211.55.102 vm-cluster-node3 10.211.55.103 vm-cluster-node4 10.211.55.104 vm-cluster-node5 10.211.55.105 vm-cluster-client EOF apt-get install curl -y REPOCM=${REPOCM:-cm4} CM_REPO_HOST=${CM_REPO_HOST:-archive.cloudera.com} CM_MAJOR_VERSION=$(echo $REPOCM | sed -e 's/cm\\([0-9]\\).*/\\1/') CM_VERSION=$(echo $REPOCM | sed -e 's/cm\\([0-9][0-9]*\\)/\\1/') OS_CODENAME=$(lsb_release -sc) OS_DISTID=$(lsb_release -si | tr '[A-Z]' '[a-z]') if [ $CM_MAJOR_VERSION -ge 4 ]; then cat > /etc/apt/sources.list.d/cloudera-$REPOCM.list <<EOF deb [arch=amd64] http://$CM_REPO_HOST/cm$CM_MAJOR_VERSION/$OS_DISTID/$OS_CODENAME/amd64/cm $OS_CODENAME-$REPOCM contrib deb-src http://$CM_REPO_HOST/cm$CM_MAJOR_VERSION/$OS_DISTID/$OS_CODENAME/amd64/cm $OS_CODENAME-$REPOCM contrib EOF curl -s http://$CM_REPO_HOST/cm$CM_MAJOR_VERSION/$OS_DISTID/$OS_CODENAME/amd64/cm/archive.key > key apt-key add key rm key fi apt-get update export DEBIAN_FRONTEND=noninteractive apt-get -q -y --force-yes install oracle-j2sdk1.6 cloudera-manager-server-db cloudera-manager-server cloudera-manager-daemons service cloudera-scm-server-db initdb service cloudera-scm-server-db start service cloudera-scm-server start SCRIPT $slave_script = <<SCRIPT cat > /etc/hosts <<EOF 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 10.211.55.100 vm-cluster-node1 10.211.55.101 vm-cluster-node2 10.211.55.102 vm-cluster-node3 10.211.55.103 vm-cluster-node4 10.211.55.104 vm-cluster-node5 10.211.55.105 vm-cluster-client EOF SCRIPT $client_script = <<SCRIPT cat > /etc/hosts <<EOF 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 10.211.55.100 vm-cluster-node1 10.211.55.101 vm-cluster-node2 10.211.55.102 vm-cluster-node3 10.211.55.103 vm-cluster-node4 10.211.55.104 vm-cluster-node5 10.211.55.105 vm-cluster-client EOF SCRIPT Vagrant.configure("2") do |config| config.vm.define :master do |master| master.vm.box = "precise64" master.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = "4096" end master.vm.provider :virtualbox do |v| v.name = "vm-cluster-node1" v.customize ["modifyvm", :id, "--memory", "4096"] end master.vm.network :private_network, ip: "10.211.55.100" master.vm.hostname = "vm-cluster-node1" master.vm.provision :shell, :inline => $master_script end config.vm.define :slave1 do |slave1| slave1.vm.box = "precise64" slave1.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = "5120" end slave1.vm.provider :virtualbox do |v| v.name = "vm-cluster-node2" v.customize ["modifyvm", :id, "--memory", "5120"] end slave1.vm.network :private_network, ip: "10.211.55.101" slave1.vm.hostname = "vm-cluster-node2" slave1.vm.provision :shell, :inline => $slave_script end config.vm.define :slave2 do |slave2| slave2.vm.box = "precise64" slave2.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = "5120" end slave2.vm.provider :virtualbox do |v| v.name = "vm-cluster-node3" v.customize ["modifyvm", :id, "--memory", "5120"] end slave2.vm.network :private_network, ip: "10.211.55.102" slave2.vm.hostname = "vm-cluster-node3" slave2.vm.provision :shell, :inline => $slave_script end config.vm.define :slave3 do |slave3| slave3.vm.box = "precise64" slave3.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = "5120" end slave3.vm.provider :virtualbox do |v| v.name = "vm-cluster-node4" v.customize ["modifyvm", :id, "--memory", "5120"] end slave3.vm.network :private_network, ip: "10.211.55.103" slave3.vm.hostname = "vm-cluster-node4" slave3.vm.provision :shell, :inline => $slave_script end config.vm.define :slave4 do |slave4| slave4.vm.box = "precise64" slave4.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = "5120" end slave4.vm.provider :virtualbox do |v| v.name = "vm-cluster-node5" v.customize ["modifyvm", :id, "--memory", "5120"] end slave4.vm.network :private_network, ip: "10.211.55.104" slave4.vm.hostname = "vm-cluster-node5" slave4.vm.provision :shell, :inline => $slave_script end config.vm.define :client do |client| client.vm.box = "precise64" client.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = "4096" end client.vm.provider :virtualbox do |v| v.name = "vm-cluster-client" v.customize ["modifyvm", :id, "--memory", "4096"] end client.vm.network :private_network, ip: "10.211.55.105" client.vm.hostname = "vm-cluster-client" client.vm.provision :shell, :inline => $client_script end end
配置文件定义了6台vm,并指定了各vm的角色(循遵CDH角色):
vm-cluster-node1: This is the master; besides running the CM master, it should run the namenode, secondary namenode, and jobtracker.
vm-cluster-node2: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-node3: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-node4: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-node5: This is a slave, it should run a datanode and a tasktracker.
vm-cluster-client: This machine plays the role of gateway for the cluster.
配置文件各配置项意思请点击:http://docs.vagrantup.com/v2/vagrantfile/index.html。特殊指出的是依赖于不同的供提商,virtualbox或者vmwarefusion,定义的存内大小是不同的。大家看下,应用不同供提商
定制须要的环境
是如许的简略!
面上的vagrant配置文件做了另外一件主要的情事:在master和node1节点主动装安cloudera Manager 。
要创立这个虚拟机集群,只须要到配置文件目录下(比如VagrantHadoop),在shell下运行:
> vagrant up --provider=virtualbox
过一段间时(这个间时随你的器机性能而定),Vagrant运行毕完,意味着有所虚拟机装安配置毕完并且处于运行态状。
到此,你可以通过CM理管UI(http://vm-cluster-node1:7180)配置你的集群。
Have fun!
文章结束给大家分享下程序员的一些笑话语录:
IT业众生相
第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也。如丁磊,求伯君。
第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不是顶尖黑客就是技术总监之流。
第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软件产品。
第四级:工头,技术精湛,有领导团队的能力,此类人大公司项目经理居多。
第五级:技术工人,技术精湛,熟悉行业知识但领导能力欠加,此类人大多为系分人员或资深程序员,基本上桀骜不逊,自视清高,不愿于一般技术人员为伍,在论坛上基本以高手面目出现。
第六级:熟练工人,技术有广度无深度,喜欢钻研但浅尝辄止。此类人大多为老程序员,其中一部分喜欢利用工具去查找网上有漏洞的服务器,干点坏事以获取成绩感。如果心情好,在论坛上他们会回答菜鸟的大部分问题。此级别为软件业苦力的重要组成部分。
第七级:工人,某些技术较熟练但缺乏深度和广度,此类人大多为程序员级别,经常在论坛上提问偶尔也回答菜鸟的问题。为软件产业苦力的主要组成部分。
第八级:菜鸟,入门时间不长,在论坛上会反复提问很初级的问题,有一种唐僧的精神。虽然招人烦但基本很可爱。只要认真钻研,一两年后就能升级到上一层。
第九级:大忽悠,利用中国教育的弊病,顶着一顶高学历的帽子,在小公司里混个软件部经理,设计不行,代码不行,只会胡乱支配下属,拍领导马屁,在领导面前胡吹海侃,把自己打扮成技术高手的模样。把勾心斗角的办公室文化引入技术部门,实在龌龊!
第十级:驴或傻X,会写SELECT语句就说自己精通ORALCE,连寄存器有几种都不知道就说自己懂汇编,建议全部送到日本当IT产业工人,挣了日本人的钱还严重打击日本的软件业!
相关文章推荐
- 如何使用vagrant在虚拟机安装Hadoop集群
- 如何使用vagrant在虚拟机安装hadoop集群
- 如何使用vagrant在虚拟机安装hadoop集群
- 详细版在虚拟机安装和使用hadoop分布式集群
- VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境03_配置虚拟机之间SSH无密码登录
- 图文讲解基于centos虚拟机的Hadoop集群安装,并且使用Mahout实现贝叶斯分类实例 (6)
- 轻松搭建hadoop1.2.1集群前奏--虚拟机安装与配置
- 在VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境01_虚拟机的安装
- 轻松搭建hadoop1.2.1集群前奏--虚拟机安装与配置
- 在VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境05_HDFS文件系统和Mapreduce框架的启动和运行
- 图文讲解基于centos虚拟机的Hadoop集群安装,并且使用Mahout实现贝叶斯分类实例 (2)
- 在VMWare Workstation8.0上使用ubuntu11安装和配置Hadoop群集环境02_配置虚拟机之间SSH无密码登录
- Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误
- hadoop大集群实施--比较实用的思路(设备选型、是否使用虚拟机、快速部署安装、自动复制节点等)
- 安装、进程-云计算学习笔记---hadoop的简介,以及安装,用命令实现对hdfs系统进行文件的上传下载-by小雨
- 集群安装完毕,该如何测试和使用集群-hadoop单机(伪分布)
- 1.如何在虚拟机ubuntu上安装hadoop多节点分布式集群
- 图文讲解基于centos虚拟机的Hadoop集群安装,并且使用Mahout实现贝叶斯分类实例 (7)
- Hadoop集群安装---虚拟机网络配置