大数据处理架构Hadoop

1.Hadoop是一个能够对大量数据进行分布式处理的并且是以一种可靠、高效、可伸缩的方式进行处理的软件框架。

2.Hadoop具有高可靠性、高效性、高可扩展性、高容错性、成本低、运行在Linux平台上、支持多种编程语言的特性。

3.Hadoop的应用现状

大数据处理架构Hadoop

4.Hadoop项目结构

大数据处理架构Hadoop

5.Hadoop基本安装配置主要包括以下几个步骤:

创建Hadoop用户
SSH登录权限设置
安装Java环境
单机安装配置
伪分布式安装配置 

如果安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :

$ sudo useradd –m hadoop –s /bin/bash

上面这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell

接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:

$ sudo passwd hadoop

可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:

$ sudo adduser hadoop sudo.

6.Hadoop 2 可以到官网下载,需要下载 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用.

选择将 Hadoop 安装至 /usr/local/ 中

$ sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local    # 解压到/usr/local中
$cd /usr/local/
$sudo mv ./hadoop-2.6.0/ ./hadoop            # 将文件夹名改为hadoop

$sudo chown -R hadoop:hadoop ./hadoop        # 修改文件权限

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示Hadoop 版本信息:

$ cd /usr/local/hadoop

$./bin/hadoop version

Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 

Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

7.修改配置文件 core-site.xml 


<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

</configuration>

hadoop.tmp.dir表示存放临时数据的目录,即包括NameNode的数据,也包括DataNode的数据。该路径任意指定,只要实际存在该文件夹即可 

name为fs.defaultFS的值,表示hdfs路径的逻辑名称

8.修改配置文件 hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>

    </property></configuration>

dfs.replication表示副本的数量,伪分布式要设置为1

dfs.namenode.name.dir表示本地磁盘目录,是存储fsimage文件的地方

dfs.datanode.data.dir表示本地磁盘目录,HDFS数据存放block的地方

9.普通的Hadoop集群结构由一个两阶网络构成
每个机架(Rack)有30-40个服务器,配置一个1GB的交换机,并向上传输到一个核心交换机或者路由器(1GB或以上)

在相同的机架中的节点间的带宽的总和,要大于不同机架间的节点间的带宽总和

大数据处理架构Hadoop


Hadoop目前已经在各个领域得到了广泛的应用,雅虎、Facebook、百度、淘宝、网易等公司都建立了自己的Hadoop集群
经过多年发展,Hadoop项目已经变得非常成熟和完善,包括Common、Avro、Zookeeper、HDFS、MapReduce、HBase、Hive、Chukwa、Pig等子项目,其中,HDFS和MapReduce是Hadoop的两大核心组件