hadoop部署、启动全套过程

本文介绍了Hadoop的分布式系统架构,包括HDFS和MapReduce的核心组件。详细讲解了Hadoop的分布式文件系统HDFS的master/slave结构,以及MapReduce编程模型。此外,还列举了Hadoop生态中的多个子项目,如Hive、Hbase等。文章提供了Hadoop的安装目录结构,并展示了在本地运行Hadoop的步骤,包括配置、启动和执行示例任务。
摘要由CSDN通过智能技术生成

Hadoop是Apache基金会的开源项目,为开发者提供了一个分布式系统的基础架构,用户可以在不了解分布式系统的底层细节的情况下开发分布式的应用,充分利用集群的强大功能,实现高速运算和存储。Hadoop项目中包括一个分布式的文件系统HDFS,一个分布式的并行编程框架mapreduce,以及包括hive,hbase,mahout,pig,zookeeper,avro,chukwa在内的诸多子项目。

Hadoop主要的两部分分别是分布式存储HDFS和分布式计算mapreduce。Hdfs是一个master/slave的结构,就一般的部署来说,在master上只运行一个namenode,而在每一个slave上运行一个datanode。Mapreduce是一个编程模型,用以进行大数据量的计算。Mapreduce的名字源于这个模型中的两项核心操作:map和reduce。Map是把一组数据一对一地映射为另外一组数据,reduce是对一组数据进行归约,映射和归约的规则都是由一个函数指定。

整个hadoop族群中包括很多项目,如:

HDFS:分布式文件系统,是GFS的开源实现。

Mapreduce:分布式并行编程模型和程序执行框架,是google公司的mapreduce的开源实现。

Common:是整个hadoop项目的核心,包括一组分布式文件系统和通用IO的组件和接口(序列化,javaprc和持久化数据结构)。

Avro:一种支持搞笑,跨语言的rpc以及永久存储数据的序列化实现。

Pig: 一种数据流语言和运行环境,用以检索非常大的数据集,运行在mapreduce和hdfs的集群上。

Hive: 一个分布式,按列存储的数据仓库。Hive管理hdfs中存储的数据,并提供基于sql的查询语言(由运行时引擎翻译成mapreduce作业)用以查询数据。

Hbase: 一个分布式,按列存储的额数据库。Hbase使用hdfs作为底层存储,同时支持mapreduce的批量式计算和点查询(随机读取)。

Mahout:一个在hadoop上运行的机器学习类库。

Zookeeper:一个分布式,可用性高的协调服务。Zookeeper提供分布式锁之类的基本服务用于构建分布式应用。

Cassandra:是一套开源分布式nosql数据库系统,用于存储收件箱等简单格式数据,集google bigtable的数据模型与amazon dynamo的完全分布式架构于一身。

从最终用户的角度来看,它就像传统的文件系统一样,可以通过目录路径对文件执行crud操作。一个HDFS集群是由一个namenode和若干个datanode组成的。Namenode主节点是主服务器,管理文件系统的命名空间和客户端对文件的访问操作;datanode是集群中的一般节点,负责节点数据的存储。客户端通过namenode向datanode节点交互访问文件系统,联系namenode获得文件的元数,而文件io操作则是直接和datanode进行交互的额。Hdfs允许用户以文件的形式存储数据,文件被分成若干个数据块,典型数据块大小是64MB。Hdfs的文件通常是按照64mb被切分为不同的数据块(block)的。每个数据块尽可能分散在不同的datanode中,而若干个数据块存放在一组datanode上。Namenode执行文件系统的命名空间操作,它也负责数据块到具体datanode的映射。Datanode负责处理文件系统客户端的文件读/写操作,并在namenode的统一调度下进行数据块的创建,删除和复制工作。

Mapreduce编写的程序和hadoop程序的编译都依赖于jdk。

Hadoop安装完毕后目录如下

drwxr-xr-x  3 yj70978 retailfi    4096 Jan 30 2013 share

drwxr-xr-x  9 yj70978 retailfi    4096 Jan 30 2013 webapps

-rw-r--r--  1 yj70978 retailfi  306534 Jan 30 2013 hadoop-tools-1.1.2.jar

-rw-r--r--  1 yj70978 retailfi 2778017 Jan 30  2013 hadoop-test-1.1.2.jar

-rw-r--r--  1 yj70978 retailfi     414 Jan 30 2013 hadoop-minicluster-1.1.2.jar

-rw-r--r--  1 yj70978 retailfi  142453 Jan 30 2013 hadoop-examples-1.1.2.jar

-rw-r--r--  1 yj70978 retailfi 4035539 Jan 30  2013 hadoop-core-1.1.2.jar

-rw-r--r--  1 yj70978 retailfi     410 Jan 30 2013 hadoop-client-1.1.2.jar

-rw-r--r--  1 yj70978 retailfi    6840 Jan 30 2013 hadoop-ant-1.1.2.jar

drwxr-xr-x 10yj70978 retailfi    4096 Jan 30  2013 contrib

-rw-r--r--  1 yj70978 retailfi    1366 Jan 30 2013 README.txt

-rw-r--r--  1 yj70978 retailfi     101 Jan 30 2013 NOTICE.txt

-rw-r--r--  1 yj70978 retailfi   13366 Jan 30 2013 LICENSE.txt

-rw-r--r--  1 yj70978 retailfi   10525 Jan 30 2013 ivy.xml

-rw-r--r--  1 yj70978 retailfi  467130 Jan 30 2013 CHANGES.txt

drwxr-xr-x  4 yj70978 retailfi    4096 Jan 30 2013 c++

-rw-r--r--  1 yj70978 retailfi  120025 Jan 30 2013 build.xml

drwxr-xr-x  5 yj70978 retailfi    4096 Jul 22 07:49 lib

drwxr-xr-x  2 yj70978 retailfi    4096 Jul 22 07:49 ivy

drwxr-xr-x  6 yj70978 retailfi    4096 Jul 22 07:49 docs

drwxr-xr-x 16yj70978 retailfi    4096 Jul 22 07:49 src

drwxr-xr-x  2 yj70978 retailfi    4096 Jul 22 07:49 sbin

drwxr-xr-x  2 yj70978 retailfi    4096 Jul 22 07:49 libexec

drwxr-xr-x  2 yj70978 retailfi    4096 Jul 22 07:58 bin

drwxr-xr-x  2 yj70978 retailfi    4096 Jul 22 07:59 output

drwxr-xr-x  2 yj70978 retailfi    4096 Jul 22 21:34 conf

drwxr-xr-x  2 yj70978 retailfi    4096 Jul 22 23:42 logs

修改conf/hadoop-env.sh文件,定义JAVA_HOME的路径然后到bin目录下运行./hadoop命令,会输出如何使用hadoop。

$ ./hadoop

Usage: hadoop[--config confdir] COMMAND

where COMMAND isone of:

  namenode -format     format the DFS filesystem

  secondarynamenode    run the DFS secondary namenode

  namenode             run the DFS namenode

  datanode             run a DFS datanode

  dfsadmin             run a DFS admin client

  mradmin              run a Map-Reduce admin client

  fsck                 run a DFS filesystem checkingutility

  fs                   run a generic filesystemuser client

  balancer             run a cluster balancing utility

  fetchdt              fetch a delegation token from theNameNode

  jobtracker           run the MapReduce job Tracker node

  pipes                run a Pipes job

  tasktracker          run a MapReduce task Tracker node

  historyserver        run job history servers as a standalonedaemon

  job                  manipulate MapReduce jobs

  queue                get information regardingJobQueues

  version              print the version

  jar <jar>            run a jar file

  distcp <srcurl> <desturl> copyfile or directories recursively

  archive -archiveName NAME -p <parentpath> <src>* <dest> create a hadoop archi                                                                                                                                                            ve

  classpath            prints the class path needed to getthe

                       Hadoop jar and therequired libraries

  daemonlog            get/set the log level for each daemon

 or

  CLASSNAME            run the class named CLASSNAME

Most commands printhelp when invoked w/o parameters.

Hadoop有三种模式:

本地(单机)模式

分布式模式

完全分布式模式

本地操作:

默认情况下就是这个模式,

Mkdir input

cp conf/*.xml input

运行hadoop自带的hadoop-examples*.jar来搜索input文件夹中的含有dfs[a-z]的字符串并统计出现数量,

bin/hadoop jarhadoop-examples-*.jar grep input output1 'dfs[a-z.]'

输出:

13/08/19 04:57:39INFO util.NativeCodeLoader: Loaded the native-hadoop library

13/08/19 04:57:39WARN snappy.LoadSnappy: Snappy native library not loaded

13/08/19 04:57:39INFO mapred.FileInputFormat: Total input paths to process : 7

13/08/19 04:57:39INFO mapred.JobClient: Running job: job_local_0001

13/08/19 04:57:40INFO util.ProcessTree: setsid exited with exit code 0

13/08/19 04:57:40INFO mapred.Task:  UsingResourceCalculatorPlugin :org.apache.hadoop.util.LinuxResourceCalculatorPlugin@8474463

13/08/19 04:57:40INFO mapred.MapTask: numReduceTasks: 1

13/08/19 04:57:40INFO mapred.MapTask: io.sort.mb = 100

13/08/19 04:57:40INFO mapred.MapTask: data buffer = 79691776/99614720

13/08/19 04:57:40INFO mapred.MapTask: record buffer = 262144/327680

13/08/19 04:57:40INFO mapred.MapTask: Starting flush of map output

13/08/19 04:57:40INFO mapred.Task: Task:attempt_local_0001_m_000000_0 is done. And is in theprocess of commiting

13/08/19 04:57:40INFO mapred.LocalJobRunner:file:/home/yj70978/hadoop/hadoop-1.1.2/input/capacity-scheduler.xml:0+7457

13/08/19 04:57:40INFO mapred.Task: Task 'attempt_local_0001_m_000000_0' done.

13/08/19 04:57:40INFO mapred.Task:  UsingResourceCalculatorPlugin :org.apache.hadoop.util.LinuxResourceCalculatorPlugin@8fae75c

13/08/19 04:57:40INFO mapred.MapTask: numReduceTasks: 1

13/08/19 04:57:40INFO mapred.MapTask: io.sort.mb = 100

13/08/19 04:57:40INFO mapred.MapTask: data buffer = 79691776/99614720

13/08/19 04:57:40INFO mapred.MapTask: record buffer = 262144/327680

13/08/19 04:57:40INFO mapred.MapTask: Starting flush of map output

13/08/19 04:57:40INFO mapred.MapTask: Finished spill 0

13/08/19 04:57:40INFO mapred.Task: Task:attempt_local_0001_m_000001_0 is done. And is in theprocess of commiting

13/08/19 04:57:40INFO mapred.LocalJobRunner: file:/home/yj70978/hadoop/hadoop-1.1.2/input/hadoop-policy.xml:0+4644

13/08/19 04:57:40INFO mapred.Task: Task 'attempt_local_0001_m_000001_0' done.

13/08/19 04:57:40INFO mapred.Task:  UsingResourceCalculatorPlugin :org.apache.hadoop.util.LinuxResourceCalculatorPlugin@8fbdd2c

13/08/19 04:57:40INFO mapred.MapTask: numReduceTasks: 1

13/08/19 04:57:40INFO mapred.MapTask: io.sort.mb = 100

13/08/19 04:57:40INFO mapred.MapTask: data buffer = 79691776/99614720

13/08/19 04:57:40INFO mapred.MapTask: record buffer = 262144/327680

13/08/19 04:57:40INFO mapred.MapTask: Starting flush of map output

13/08/19 04:57:40INFO mapred.Task: Task:attempt_local_0001_m_000002_0 is done. And is in theprocess of commiting

13/08/19 04:57:40INFO mapred.LocalJobRunner:file:/home/yj70978/hadoop/hadoop-1.1.2/input/mapred-queue-acls.xml:0+2033

13/08/19 04:57:40INFO mapred.Task: Task 'attempt_local_0001_m_000002_0' done.

13/08/19 04:57:40INFO mapred.Task:  Using ResourceCalculatorPlugin: org.apache.hadoop.util.LinuxResourceCalculatorPlugin@81ab78f

13/08/19 04:57:40INFO mapred.MapTask: numReduceTasks: 1

13/08/19 04:57:40INFO mapred.MapTask: io.sort.mb = 100

13/08/19 04:57:40INFO mapred.MapTask: data buffer = 7969177

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值