大数据

hadoop笔记1–单机和伪分布式模式

hadoop是处理大数据的得力帮手,它主要分为三种模式:

单机模式;
伪分布式模式;
完全分布式模式;

在这篇文章中,主要来看看在CentOS7中进行hadoop的单机和伪分布式的环境搭建。(在Ubuntu下安装也一样。)

因为自己设备的条件,就先在虚拟机里搭建伪分布式的环境来进行hadoop的学习。

以下的环境是需要java环境才能进行,我的电脑中的java是:

java环境

单机模式

先来看看单机模式,单机模式比较简单。

首先在官网下载hadoop,网站地址为:http://hadoop.apache.org/releases.html
我这里用的是hadoop2.6.5的版本。

点击binary下载即可。

下载完毕后,将下载下来的包放在/usr/local目录下:

然后解压压缩包:

# 如果遇上权限不够,就加sudo,或用root用户进行
tar -xvf hadoop-2.6.5.tar.gz
# 将减压出来的hadoop-2.6.5改名为hadoop(改不改随便)
mv hadoop-2.6.5 hadoop

完成后我们就可以进入hadoop文件夹看看了:

hadoop目录

这时候进入etc/hadoop目录,那个目录里面装的东西关于hadoop的一些配置文件,进去后可以看一看:

etc/hadoop目录

其中我们先来配置关于环境的东西:

vim hadoop-env.sh

可以看到里面的内容:

hadoop-env.sh

我们需要看的就是JAVA_HOME那个变量,如果不是我们系统中java的路径就把它改成java的路径。下面那个HADOOP_CONF_DIR也可以改为自己电脑hadoop文件夹中etc/hadoop那个路径。

然后在终端中source一下:

source hadoop-env.sh

接着进入前面的bin目录下看看

cd ../../bin

hadoop/bin目录

运行hadoop试试看:

./hadoop version

打印信息

输出如上信息,就说明hadoop的单机模式成了。

再来运行个hadoop给的例子程序跑跑。

为了测试,先新建一个目录Input:

mkdir Input

在里面放上一个txt文件,随便写一些英文在里面吧,比如说我的乱写了几个:

test.txt

然后在shell中执行:

wordcount例子程序

执行完毕后,到hadoop文件夹内,会看到出现了Output目录,打印出里面的东西来看看:

统计出了单词的个数

可以看到,英文单词的个数被统计了出来。

伪分布式模式

我们单机的环境中,比较常用的是伪分布式。那么接下来就来看看伪分布式的做法,其实也就是接着上面来。

要进行伪分布式,就是配置几个文件和改改环境变量。

上面说了,配置文件都在etc那个目录下,因此需要进入那个目录,然后修改里面的core-site.xml、hdfs-site.xml两个文件。

可以先看看官方文档上是怎么修改的:
http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation

里面的Pseudo-Distributed Operation介绍了需要修改的文件:

那么我们就安装它的这个配置,不过再稍微增加一些东西。先打开core-site.xml,配置如下:

core-site.xml

这里比官方的多了一个配置,这样做可以把tmp目录指定在自己设置的位置,而tmp是用来存放零时文件,比例运行过程中的文件等。如果不指定,系统会利用linux自己的/tmp目录来存放,这样在重启后就不在了。

hdfs-site.xml的配置如下:

hdfs-site.xml

比官方多了两个东西,一个是namenode,一个是datanode。namenode和datanode文件夹默认是放在tmp里面的,这2个文件夹用来存储hdfs里的内容。 这里配置指定了那两个目录的位置。

然后在相应的目录中创建namenode和datanode的目录:

mkdir dfs
mkdir dfs/name
mkdir dfs/data

配置完成后,跟着官方走,下一步是设置无密码登陆的ssh。

如果没有安装ssh,那就用yum安装就是了。安装完毕后,生成密钥对:

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

生成密钥对

然后用cat命令追加公钥:

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

这就是一个读写过程。

然后就应该可以进行ssh无密码登录了:

ssh localhost

登录本机之后,可以开始正式开启hadoop了。首先我们可以把hdfs看成和普通新的硬盘一样,刚买来的新硬盘需要进行格式化,同样的,我们先进行hdfs的格式化:

bin/hdfs namenode -format

接下来我们就来开启hdfs文件系统吧:

sbin/start-dfs.sh

开启hdfs

然后通过jps命令查看一下:

可以看到,服务启动了哦。

用网页查看就是以下状态,输入localhost:50070:

以上内容就完成了hdfs的伪分布式。本来官网后面还有yarn的配置,就放在介绍yarn的时候吧。这样子已经能够进行hdfs的一些编程操作了。

下一节介绍要进行hadoop开发的eclipse环境搭建