在大数据时代下,单机对于数据的处理越来越有限,分布式存储和处理对大数据提供了新的可能性。本文主要讨论伪分布模式。
Hadoop以Java语言写就,因而需要在本地计算机上原装Java6。Hadoop能运行在Unix或Windows平台上。Linux是Hadoop唯一支持的产品平台,在其他Unix系统上也可以运行Hadoop进行开发。Windows仅限于作为开发平台,并需要借助于Cygwin。如果计划以伪分布模式运行Hadoop,则在安装Cygwin的过程中必须包含openssh包。(此文不介绍在windows平台下的开发)


安装ssh

Hadoop用ssh进行通信,安装ssh

1
sudo apt-get install openssh-server

安装rsync

1
sudo apt-get install rsync

配置ssh免密码登录

1
2
ssh-keygen -t dsa -P '' <span class="_">-f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

验证是否成功

1
2
3
4
ssh localhost
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 4.2.0-38-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Fri Jul 29 04:04:04 2016 from localhost

登出

1
exit

验证成功后,以后就不需要输入密码登陆。


安装Java

1
2
sudo apt-get install openjdk-8-jdk
java -version

安装hadoop

下载hadoop,本文使用的版本为2.7.2 stable,下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
将下载文件解压到本地文件系统中

1
2
3
4
5
6
cd /user/local
sudo mkdir hadoop
cd /home/Documents
sudo mv hadoop-2.7.2-src.tar.gz /usr/local/hadoop
cd /usr/local/hadoop
sudo tar xzf hadoop-2.7.2-src.tar.gz

配置Java环境变量

通过编辑hadoop-env.sh文件来设置JAVA_HOME环境变量以指定Java安装路径
首先使用root身份登陆,修改hadoop-env.sh文件的操作权限

1
sudo passwd root

输入两次密码,然后以root身份登陆

1
sudo su

修改文件权限

1
2
root@nut:/usr/local/hadoop/hadoop-2.7.2-src/hadoop-common-project/hadoop-common/
src/main/conf# chmod u=rwx,g=rwx,o=r hadoop-env.sh

查看修改结果

1
2
3
4
5
6
7
8
9
10
11
root@nut:/usr/local/hadoop/hadoop-2.7.2-src/hadoop-common-project/hadoop-common/src/main/conf# ls -l
total 56
-rw-r--r-- 1 root root 774 Jän 26 2016 core-site.xml
-rw-r--r-- 1 root root 3670 Jän 26 2016 hadoop-env.cmd
-rwxrwxr-- 1 root root 4224 Jän 26 2016 hadoop-env.sh
-rw-r--r-- 1 root root 2598 Jän 26 2016 hadoop-metrics2.properties
-rw-r--r-- 1 root root 2490 Jän 26 2016 hadoop-metrics.properties
-rw-r--r-- 1 root root 9683 Jän 26 2016 hadoop-policy.xml
-rw-r--r-- 1 root root 11237 Jän 26 2016 log4j.properties
-rw-r--r-- 1 root root 2316 Jän 26 2016 ssl-client.xml.example
-rw-r--r-- 1 root root 2268 Jän 26 2016 ssl-server.xml.example

修改成功。
进入hadoop目录,打开conf目录下到hadoop-env.sh,添加以下信息:(找到#export JAVA_HOME=…,去掉#,然后加上本机jdk的路径)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 (视你机器的java安装路径而定)
export HADOOP_HOME=/usr/local/hadoop
export PATH=PATH=$PATH:/usr/local/hadoop/hadoop-2.7.2-src/hadoop-mapreduce-project/bin

让环境变量生效

1
2
root@nut:/usr/local/hadoop$ source /usr/local/hadoop/hadoop-2.7.2-src/hadoop-com
mon-project/hadoop-common/src/main/conf/hadoop-env.sh