hadoop的安装以及伪分布配置

Jun 30, 2016


Hadoop介绍

Hadoop是一个分布式系统的基础架构. 从这句话中我们可以得到:

  1. 分布式. 分布式的作用在于它可以以更高的效率来处理更大的数据量.

  2. 系统. 能作为一个系统必须具备两点要求: 数据存储能力, 运算能力.

  3. 基础架构. 要做成一个适用于大部分人群的系统, 必定需要添加很多功能同时也导致系统过于庞大. 那么基础架构的特点就在于该系统只提供了数据操作有关的功能, 更上层的建筑就需要使用者自己来完成了.

因此, Hadoop提供了两点功能: 分布式文件系统, 文件操作功能. Hadoop Distributed File System(HDFS)是Hadoop提供的分布式文件系统, MapReduce则是基于文件系统上的数据计算功能.

预配置

  • Java安装和JAVA_HOME环境变量的配置. Hadoop是使用Java语言编写的系统, 所以需要JDK的支持在使用之前我们需要配置好Java环境, 最主要的是JAVA_HOME的配置.

  • 安装软件SSH Server. 集群式分布需要SSH来建立各节点间的连接. 使用sudo apt-get install openssh-server即可.

实现:

  • Java环境的配置

在这里我建议最好自己手动配置环境变量, 即我们手动从Oracle官网上下载JDK的压缩包. 这里我选择下载jdk-8u91-linux-x64.tar.gz完成后使用tar -xzf jdk-8u91-linux-x64.tar.gz -C ~/bin将压缩包中的内容解压到home下的bin目录中.

接下来配置Java开发环境:


vim ~/.bashrc
#或者 sudo vim /etc/profile

JAVA_HOME=/home/user/bin/jdk1.8.0_91
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export CLASSPATH
export PATH

# 保存文件
. ~/.bashrc

  • SSH Server安装

sudo apt-get install openssh-server

ssh-keygen -t rsa

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

检测正确性:

  1. 命令行运行echo $JAVA_HOME, 如果得到JDK的安装路径(不包括bin目录)则成功.

  2. 命令行运行ssh localhost, 如果正常连接则配置成功.

Hadoop安装和配置

Hadoop下载安装

可以使用北理工源下载Hadoop. 我下载了hadoop-2.7.1.tar.gz版本. 解压到任意目录下这里我使用/usr/local/路径.

sudo tar -xzf hadoop-2.7.1.tar.gz -C /usr/local/
cd /usr/local
sudo mv hadoop-2.7.1 hadoop
cd hadoop

Hadoop单机(非分布式)配置验证

Hadoop安装完成之后默采用非分布式模式, 无需再进行其他配置. 我们可以直接使用其中的例子进行测试.

cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep ./input ./output 'dfs[a-z.]+'
ls ./output

hadoop伪分布的配置

Hadoop的所有配置文件位于/usr/local/hadoop/etc/hadoop下, 在配置伪分布时我们需要配置core-site.xml,hdfs-site.xml,hadoop-env.sh文件.

core-site.xml的配置

#将其中的用一下内容代替:

hadoop.tmp.dir file:/usr/local/hadoop/tmp Abase for other temporary directories. fs.defaultFS hdfs://localhost:9000

hdfs-site.xml的配置

#将其中的用一下内容代替:

dfs.replication 1 dfs.namenode.name.dir file:/usr/local/hadoop/tmp/dfs/name dfs.datanode.data.dir file:/usr/local/hadoop/tmp/dfs/data

hadoop-env.sh的配置

#将JAVA_HOME=*改为

JAVA_HOME=/home/user/bin/jdk1.8.91

接下来执行NameNode的格式化:

/usr/local/hadoop/bin/hdfs namenode -format

开启NameNodeDataNode守护进程

/usr/local/hadoop/sbin/start-dfs.sh

上一篇博客:Ant学习和使用
下一篇博客:JQuery学习笔记(一)---概述