Hadoop环境搭建

102 阅读3分钟

原文日期:2016-02-28


背景

大数据,这个词对于我们IT人员来说,应该是天天在耳边吹的一个词语,就目前和未来的发展形势来看,绝对是势不可挡。现如今关于BAT三巨头的新闻,也经常会提到大数据分析、挖掘等高端词汇,与大数据相关的词汇Hadoop、Storm、Spark、NoSql、MongoDb、Redis、GFS、MapReduce。。。太多了相关技术词语,对于渣渣技术人员来说,感觉真心学不过来。。。然而为了不被跟上时代步伐,不脱大众后腿,只能硬着头皮去了解下。经过一番纠结对比,最后决定先从Hadoop开刀。。。废话到此为止

环境

操作系统:本地Windows7 64位

Linux Centos6.5 64位

软件:Hadoop 2.7.2

Java 1.8.0_74 64位

似乎Hadoop每个版本的配置变化都很大,故作者选择当前最新版Hadoop2.7.2。然而似乎噩梦来了Apache官网一般对于最新版本的软件没有中文版文档,最后只能硬着头皮啃英文文档了

开始

首先Hadoop分三种模式:单机模式(不集群)、单机伪分布式模式(同一台主机上部署多个应用集群)、分布式模式(多台机器集群,实际生成应用环境)。本文从单机模式开始。

1.首先需要安装Java,这个步骤可以从网上找到一大堆。

2.安装ssh服务,并配置ssh无密码登录(单机模式下可不配置,伪分布式和分布式需要配置)。

安装ssh服务大家可以直接用yum安装,很简单,这里略过,下面介绍配置ssh无密码登录。

创建ssh_key,这里采用dsa方式。

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

(注:执行完该命令,会在~/.ssh/下产生两个文件id_dsa和id_dsa.pub)

将id_dsa.pub追加到authorized_keys文件中

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

修改authorized_keys文件权限(可选步骤)

$ chmod 0600 ~/.ssh/authorized_keys

这是可以直接无密码连接登录

$ ssh localhsot

3.安装Hadoop

官网下载Hadoop软件包,解压即可。首先Hadoop有两大重要组件:一是Hdfs(对应谷歌的GFS),另外一个是MapReduce(并行计算框架)。

修改hadoop环境配置文件etc/hadoop/hadoop-env.sh文件的java_home路径。

export JAVA_HOME=/usr/java/jdk1.8.0_74

输入一下命令将会显示hadoop命令使用的方法

$ bin/hadoop

单机模式

默认情况下,Hadoop就是支持单机模,并且可以断点Debug调试。如下命令,将会统计文件夹下的所有文件中某个字符的个数。

首先将构建input文件夹,并拷贝文件到该文件夹中

$ mkdir input
$ cp etc/hadoop/*.xml input

运行hadoop运算,计算所有dfs英文单词的个数,并将结果输出到output文件夹中

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z]+'

查看计算结果

cat output/*

单机伪分布式模式

首先配置ssh无密钥登录,见上

1.HDFS文件系统构建

配置etc/hadoop/core-site.xml文件

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

配置etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

格式化hdfs文件系统

$ bin/hdfs namenode -format

启动hdfs服务

$ sbin/start-dfs.sh

输入url,验证是否启动成功(注:如果是其他机器访问该url,请确保端口已开放)

http://localhost:50070

在hdfs文件系统中创建用户路径

$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/alan

拷贝本地input下文件到hdfs文件系统中

$ bin/hdfs dfs -put etc/hadoop input

运行计算单词的案例

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'

输出计算结果

$ bin/hdfs dfs -cat output/*

或者将输出结果写出到本地,然后查看

$ bin/hdfs dfs -get output output
$ cat output/*

YARN安装

配置etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

启动yarn服务

$ sbin/start-yarn.sh

输入url,校验yarn是否启动成功(注:如果是其他机器访问该url,请确保端口已开放)

http://localhost:8088

至此,Hadoop单机模式和单机伪分布模式的环境已搭建成功。