云计算(一)- Hadoop2.2 单点安装

学习概述:

对于云计算属于小学入学级别的水平,根据一个大牛人的建议,自己规划的学习路径如下:
hadoop安装 
hadoop的hdfs<-
hadoop的mr(YARN)
hbase安装
hbase命令行
hbase开发
自定义MR过程
hbase参与MR
zookeeper安装和使用
flume使用
redis以及lucene
nutch
lvs,keepalived等以及hadoop的运维
tez
Hadoop源代码研究
Storm
openstack( Cloudera)
spark
主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。
从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占据了大数据处理的广阔地盘。开源界及厂商,所有数据软件,无一不向Hadoop靠拢。Hadoop也从小众的高富帅领域,变成了大数据开发的标准。在Hadoop原有技术基础之上,出现了Hadoop家族产品,通过“大数据”概念不断创新,推出科技进步。
作为IT界的开发人员,我们也要跟上节奏,抓住机遇,跟着Hadoop一起雄起!
 
hadoopFamilyRoadmap
前言
使用Hadoop已经有一段时间了,从开始的迷茫,到各种的尝试,到现在组合应用….慢慢地涉及到数据处理的事情,已经离不开hadoop了。Hadoop在大数据领域的成功,更引发了它本身的加速发展。现在Hadoop家族产品,已经达到20个了之多。
有必要对自己的知识做一个整理了,把产品和技术都串起来。不仅能加深印象,更可以对以后的技术方向,技术选型做好基础准备。
本文为“Hadoop家族”开篇,Hadoop家族学习路线图
目录
  1. Hadoop家族产品
  1. Hadoop家族学习路线图
1. Hadoop家族产品
截止到2013年,根据cloudera的统计,Hadoop家族产品已经达到20个!
http://blog.cloudera.com/blog/2013/01/apache-hadoop-in-2013-the-state-of-the-platform/
接下来,我把这20个产品,分成了2类。
  • 第一类,是我已经掌握的
  • 第二类,是TODO准备继续学习的
HadoopFamilySmall
一句话产品介绍:
  • Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。
  • Apache Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
  • Apache Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
  • Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
  • Apache Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  • Apache Zookeeper: 是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务
  • Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
  • Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身
  • Apache Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制
  • Apache Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。
  • Apache Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。
  • Apache Hama: 是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。
  • Apache Flume: 是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
  • Apache Giraph: 是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
  • Apache Oozie: 是一个工作流引擎服务器, 用于管理和协调运行在Hadoop平台上(HDFS、Pig和MapReduce)的任务。
  • Apache Crunch: 是基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库
  • Apache Whirr: 是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务。
  • Apache Bigtop: 是一个对Hadoop及其周边生态进行打包,分发和测试的工具。
  • Apache HCatalog: 是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。
  • Cloudera Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。
2. Hadoop家族学习路线图
下面我将分别介绍各个产品的安装和使用,以我经验总结我的学习路线。
Hadoop
  • Yarn学习路线图
Hive Pig Zookeeper HBase Mahout Sqoop Cassandra


软件

CentOS-5.8-i386  Hadoop2.2.0 VMWare 8 Eclipse JUNO JDK 7u45 FileZilla Putty

规划

两台虚拟机组成的集群(下篇介绍集群,机器差带不起来更多了):

192.168.1.103 master
192.168.1.133 node1

安装基础环境:

安装操作系统并使用桥连方式
设置主机名为Master
hostnamemaster
vi /etc/sysconfig/network
同步时间
ntpdatecn.pool.ntp.org

使用setup 命令配置系统环境
修改IP与网关,关闭防火墙
/sbin/service network restart #重新启动网络服务
ifconfig #检查网络ip 配置

编辑host文件
vi/etc/hosts
安装JDK和hadoop-2.2.0
vi/etc/profile.d/java.sh

source/etc/profile

创建data、name、temple文件夹

建立Hadoop用户并赋权
无秘钥ssh

su hadoop

cd /home/hadoop/

ssh-keygen-q -t rsa -N "" -f /home/hadoop/.ssh/id_rsa
cd .ssh
catid_rsa.pub > authorized_keys
赋权chmod go-wx authorized_keys


设置hadoop-env.sh和yarn-env.sh的JDK_HOME
修改core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/software/temp</value>
</property>
<property>
 <name>fs.defaultFS</name>
 <value>hdfs://master:9000</value>
</property>
<property>
 <name>io.file.buffer.size</name>
 <value>131072</value>
</property>
</configuration>

修改hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>file:/home/software/name</value>
<description> </description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:/home/software/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>master:9002</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>1073741824</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>

编辑yarn-site.xml
<configuration>
 <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8990</value>
    <description>host is the hostname of the resource manager and 
    port is the port on which the NodeManagers contact the Resource Manager.
    </description>
  </property>


  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8991</value>
    <description>host is the hostname of the resourcemanager and port is the port
    on which the Applications in the cluster talk to the Resource Manager.
    </description>
  </property>


  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    <description>In case you do not want to use the default scheduler</description>
  </property>


  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8993</value>
    <description>the host is the hostname of the ResourceManager and the port is the port on
    which the clients can talk to the Resource Manager. </description>
  </property>


  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/home/software/tmp/node</value>
    <description>the local directories used by the nodemanager</description>
  </property>


  <property>
    <name>yarn.nodemanager.address</name>
    <value>master:8994</value>
    <description>the nodemanagers bind to this port</description>
  </property>  


  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>5120</value>
    <description>the amount of memory on the NodeManager in GB</description>
  </property>
 
  <property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/home/software/tmp/app-logs</value>
    <description>directory on hdfs where the application logs are moved to </description>
  </property>


   <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/home/software/tmp/node</value>
    <description>the directories used by Nodemanagers as log directories</description>
  </property>


  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>shuffle service that needs to be set for Map Reduce to run </description>
  </property>


</configuration>
修改capacity-scheduler.xml

<configuration>

 

 <property>

   <name>yarn.scheduler.capacity.maximum-applications</name>

   <value>10000</value>

   <description>

     Maximum number of applications that can be pending and running.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>

   <value>0.1</value>

   <description>

     Maximum percent of resources in the cluster which can be used to run

     application masters i.e. controls number of concurrent running

     applications.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.resource-calculator</name>

   <value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value>

   <description>

     The ResourceCalculator implementation to be used to compare

     Resources in the scheduler.

     The default i.e. DefaultResourceCalculator only uses Memory while

     DominantResourceCalculator uses dominant-resource to compare

     multi-dimensional resources such as Memory, CPU etc.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.queues</name>

   <value>unfunded,default</value>

   <description>

     The queues at the this level (root is the root queue).

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.capacity</name>

   <value>100</value>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.unfunded.capacity</name>

   <value>50</value>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.default.capacity</name>

   <value>50</value>

   <description>Default queue target capacity.</description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.default.user-limit-factor</name>

   <value>1</value>

   <description>

     Default queue user limit a percentage from 0.0 to 1.0.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>

   <value>100</value>

   <description>

     The maximum capacity of the default queue.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.default.state</name>

   <value>RUNNING</value>

   <description>

     The state of the default queue. State can be one of RUNNING or STOPPED.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.default.acl_submit_applications</name>

   <value>*</value>

   <description>

     The ACL of who can submit jobs to the default queue.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.root.default.acl_administer_queue</name>

   <value>*</value>

   <description>

     The ACL of who can administer jobs on the default queue.

   </description>

 </property>

 

 <property>

   <name>yarn.scheduler.capacity.node-locality-delay</name>

   <value>-1</value>

   <description>

     Number of missed scheduling opportunities after which theCapacityScheduler

     attempts to schedule rack-local containers.

     Typically this should be set to number of racks in the cluster, this

     feature is disabled by default, set to -1.

   </description>

 </property>

 

</configuration>

修改slaves
hadoop namenode -format

cd /home/software/hadoop-2.2.0/sbin

./start-dfs.sh
./start-yarn.sh
测试Hadoop
上传一个文件test.txt至/home/software
创建hdfs目录hdfs dfs -mkdir /tmp
hdfs dfs -copyFromLocal /home/software/test.txt /tmp/
hdfs dfs -ls /tmp
hadoop jar /home/software/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 10 100
停止Hadoop
若停止hadoop,依次运行如下命令:
$./stop-yarn.sh
$./stop-dfs.sh

完整文档下载

由于图片等资源不方便传到博客当中,现在已经把完整版的手册上传到下面的资源页,附完整流程和截图,请大家去下载吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 云计算基础知识包括以下内容: 1. Hadoop:是一个开源的分布式计算框架,用于处理大规模数据集的存储和处理。 2. Spark:是一个快速、通用、可扩展的大数据处理引擎,支持分布式数据处理和机器学习等应用。 3. MapReduce:是一种分布式计算模型,用于处理大规模数据集的并行计算。 4. HBase:是一个分布式的、面向列的NoSQL数据库,用于存储和管理大规模结构化数据。 5. IaaS:是基础设施即服务,提供虚拟化的计算、存储、网络等基础设施资源。 6. PaaS:是平台即服务,提供应用程序开发和部署所需的平台环境和工具。 7. SaaS:是软件即服务,提供基于云计算的应用程序服务,用户可以通过网络访问和使用这些应用程序。 ### 回答2: 云计算是指利用互联网来提供计算、存储、应用等服务的一种技术,它具有高效、可扩展性强、灵活性高、安全性好的特点。在云计算领域,Hadoop、Spark、MapReduce、Hbase、IaaS、PaaS、SaaS是非常重要的概念。 1、Hadoop Hadoop是由Apache基金会开发的,用于分布式存储和分析大型数据集的开源软件框架。它主要解决了海量数据的存储和处理问题,将数据切分存储在多台机器上,通过分布式计算的方式实现对数据的快速分析和处理,使得海量数据的处理速度大大提高。 2、Spark Spark是一种基于内存的分布式计算引擎,它支持多种编程语言,比如Java、Scala和Python等。Spark在处理数据的效率上优于Hadoop,其核心优点在于强大的内存计算和快速的数据处理能力。Spark还支持机器学习、数据挖掘、图形计算等应用场景。 3、MapReduce MapReduce是一种分布式计算框架,它可以实现对大规模数据的分布式计算和处理。MapReduce是由Google公司提出的,用于支持Web搜索引擎中的大规模数据处理,后来被Hadoop框架采纳。MapReduce将数据分成很多个小块,然后将小块分别传到不同的机器上进行处理,最后将结果进行合并。 4、Hbase Hbase是一款基于Hadoop的分布式数据库系统,它专门用于存储和管理大型数据集中的海量数据。Hbase采用列族式存储结构,数据可以按列存储并且可以进行快速的数据查询,利用Hbase可以处理TB级别的数据。 5、IaaS IaaS,即基础设施即服务(Infrastructure as a Service),是云计算的一种基本服务模式。它为用户提供网络、安全、计算能力和存储资源等基础服务,用户可以自由地购买所需的计算资源,通过自己的系统管理工具对计算资源进行管理。 6、PaaS PaaS,即平台即服务(Platform as a Service),是为开发者提供的一种云服务模式。PaaS提供了一个完整的开发环境,包括开发工具、数据库、中间件、操作系统等,使得开发者可以专注于应用程序的开发而不需关注底层的系统和软件平台。 7、SaaS SaaS,即软件即服务(Software as a Service),是云计算中最为普及的一种服务模式。SaaS通过互联网向用户提供各种类型的软件应用服务,例如企业管理、营销、在线办公、客户关系等服务,用户可以通过互联网随时随地使用这些应用软件而无需购买和维护实体硬件和软件。 ### 回答3: 云计算是当今信息技术的一项重要领域,因其优异的性能、灵活性和可扩展性而备受欢迎。其中,Hadoop、Spark、MapReduce、HBase、IaaS、PaaS、SaaS 可谓云计算中的重要基础知识,以下对它们做进一步介绍: 1. Hadoop: Hadoop 是当今最流行的大数据分析工具之一,其底层原理是基于分布式数据存储和处理的 MapReduce 算法。通过 Hadoop,用户可以将大数据分割成许多小的任务进行并行处理,从而大大提高数据处理的效率。 2. Spark: Spark 是另一个重要的大数据处理框架,属于基于内存的计算平台。Spark 采用了更为高效的内存计算方式来处理大数据,这样就可以将数据直接读入内存进行处理,提高处理速度。 3. MapReduce: MapReduce 算法是大数据领域中一种基于分布式计算的数据处理方法,它将大数据分成小数据块,再通过多台计算机上的 Map 和 Reduce 两个步骤进行处理,最终得出结论。 4. HBase: HBase 是一种基于 Hadoop 的分布式、可扩展的 NoSQL 数据库系统,它允许对海量数据进行非结构化的访问和处理,同时具有高可靠性、高可用性以及高性能等优势。 5. IaaS: IaaS 指的是基础设施即服务,是云计算提供商为用户提供基础设施的一种服务模式,用户可以根据自己的需求租用虚拟机、存储等基础设施,并可以根据自己的需求灵活调整。 6. PaaS: PaaS 指的是平台即服务,也是云计算提供商向用户提供服务的一种模式,使用 PaaS 的用户可以通过云计算平台构建、部署、测试和扩展应用程序。 7. SaaS: SaaS 指的是软件即服务,它是一种基于云计算的软件提供方式,对于用户来说,无需安装和维护软件,只需通过互联网即可使用。SaaS 具有灵活性和成本效益,因此备受欢迎。 以上,就是云计算五大基础知识以及 IaaS、PaaS、SaaS 这三种服务模式的简单介绍。云计算技术更新迭代速度快,如今还出现了更多的先进云计算技术和应用案例,这些都将为用户提供更为高效、灵活和安全的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值