hadoop学习(一)

一、Hadoop组成部分

​ 作为一个顶级项目,Hadoop项目包含许多组件子项目。最主要的两个子项目分别为Hadoop分布式文件系统(HDFS)和MapReduce,可以将其理解为一对独立而互补的技术。

HDFS是一个可以存储极大数据集的文件系统,它通过向外扩展方式(集群)构建的主机集群。它有独特的设计和性能特点,特别是,HDFS以延时为代价对吞吐量进行了优化,并通过副本替换冗余达到了高可用性。

MapReduce是一个数据处理范式,它规范了数据在两个处理阶段(Map和Reduce)的输入和输出,并将其应用于任意规模的大数据集。MapReduce和HDFS紧密结合,确保在任何情况下,MapReduce任务直接存储所需数据的HDFS节点上运行。

二、Hadoop的安装(基于centos6.8)

  • 打开终端

1
2
3
4
5
$ java -version
出现如下信息,表示JDK安装成功
java version "1.8.0_122-ea"
Java(TM) SE Runtime Environment (build 1.8.0_122-ea-b04)
Java HotSpot(TM) 64-Bit Server VM (build 25.122-b04, mixed mode)
  • 安装Hadoop

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    安装Hadoop2.7
    1 下载Hadoop2.7.1
    下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/stable2/hadoop-2.7.1.tar.gz
    2 解压安装
    1)复制 hadoop-2.7.1.tar.gz 到/usr/hadoop目录下,
    然后
    #tar -xzvf hadoop-2.7.1.tar.gz 解压,解压后目录为:/usr/hadoop/hadoop-2.7.1
    2)在/usr/hadoop/目录下,建立tmp、hdfs/name、hdfs/data目录,执行如下命令
    #mkdir /usr/hadoop/tmp
    #mkdir /usr/hadoop/hdfs
    #mkdir /usr/hadoop/hdfs/data
    #mkdir /usr/hadoop/hdfs/name
    3)设置环境变量,#vi ~/.bash_profile
    # set hadoop path
    export HADOOP_HOME=/usr/hadoop/hadoop-2.7.1
    export PATH=$PATH:$HADOOP_HOME/bin
    4) 使环境变量生效,$source ~/.bash_profile
    3) Hadoop配置
    进入$HADOOP_HOME/etc/hadoop目录,配置 hadoop-env.sh等。涉及的配置文件如下:
    hadoop-2.7.1/etc/hadoop/hadoop-env.sh
    hadoop-2.7.1/etc/hadoop/yarn-env.sh
    hadoop-2.7.1/etc/hadoop/core-site.xml
    hadoop-2.7.1/etc/hadoop/hdfs-site.xml
    hadoop-2.7.1/etc/hadoop/mapred-site.xml
    hadoop-2.7.1/etc/hadoop/yarn-site.xml
    1) 配置hadoop-env.sh
    # The java implementation to use.
    #export JAVA_HOME=${JAVA_HOME}
    export JAVA_HOME=/usr/java/jdk1.7.0_79
    2)配置yarn-env.sh
    #export JAVA_HOME=/home/y/libexec/jdk1.7.0/
    export JAVA_HOME=/usr/java/jdk1.7.0_79
    3)配置core-site.xml
    添加如下配置:
    <configuration>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
    <description>HDFS的URI,文件系统://namenode标识:端口号</description>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/hadoop/tmp</value>
    <description>namenode上本地的hadoop临时文件夹</description>
    </property>
    </configuration>
    4) 配置hdfs-site.xml
    添加如下配置
    <configuration>
    <!—hdfs-site.xml-->
    <property>
    <name>dfs.name.dir</name>
    <value>/usr/hadoop/hdfs/name</value>
    <description>namenode上存储hdfs名字空间元数据 </description>
    </property>
    <property>
    <name>dfs.data.dir</name>
    <value>/usr/hadoop/hdfs/data</value>
    <description>datanode上数据块的物理存储位置</description>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>副本个数,配置默认是3,应小于datanode机器数量</description>
    </property>
    </configuration>
    5) 配置mapred-site.xml
    添加如下配置:
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>
    6) 配置yarn-site.xml
    添加如下配置:
    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>192.168.241.128:8099</value>
    </property>
    </configuration>
    4,Hadoop启动
    1)格式化namenode
    $ bin/hdfs namenode –format
    2)启动NameNode 和 DataNode 守护进程
    $ sbin/start-dfs.sh
    3)启动ResourceManager 和 NodeManager 守护进程
    $ sbin/start-yarn.sh
    5,启动验证
    1)执行jps命令,有如下进程,说明Hadoop正常启动
    # jps
    6097 NodeManager
    11044 Jps
    7497 -- process information unavailable
    8256 Worker
    5999 ResourceManager
    5122 SecondaryNameNode
    8106 Master
    4836 NameNode
    4957 DataNodevim /etc/profile