目标
快速安装搭建单机版 Hadoop ,在 HDFS 上运行简单示例程序.
准备
VirtualBox 虚拟机下安装 Ubuntu 系统, 创建 hadoop 用户并授予 sudo 权限, 在Ubuntu 系统内搭建 Java 和 Hadoop 环境, 主要是下载或拷贝文件到 虚拟机内后解压配置环境变量.
配置 Java 和 Hadoop 开发环境
- 在线安装 Oracle JDK
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
-
sudo vim /etc/profile.d/jdk.sh
后输入以下配置后source /etc/profile.d/jdk.sh
手动生效, 以下类似.
export JAVA_HOME="path/to/JDK"
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$PATH
hadoop 在线下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
-
sudo vim /etc/profile.d/hadoop.sh
后输入以下配置信息
export HADOOP_HOME="path/to/hadoop/"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export CLASSPATH=.:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.6.0.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar:$CLASSPATH
- 进入 Hadoop 文件夹根目录下 的
etc/hadoop/
分别对 hadoop-env.sh, mapred-env.sh, yarn-env.sh 3个文件进行设置 JAVA_HOME 变量.
配置 SSH 免密登录
- 实现各主机免密登录 localhost
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
- 实现各虚拟机互相免密登录
# 拷贝公钥到本地主机
$ scp ~/.ssh/id_rsa.pub hadoop@master:/home/liu/.ssh/id_rsa_slave1.pub
$ cat id_rsa_slave1.pub >> authorized_keys
# 或者更加方便的使用 分发密钥命令
$ ssh-copy-id tar_host
测试
- 环境测试
java -version
hadoop
- 单机模式测试(以下操作默认在Hadoop目录下执行)
$ mkdir input
$ cp conf/*.xml input
执行一个匹配指定字符串模式的MR作业: 对 input 目录下的文档进行单词数的统计
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
查看统计结果
$ cat output/*
- 其他例子
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 100 100
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 500 500
参考
https://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html
http://www.jianshu.com/p/c0f4d30a50b9
https://my.oschina.net/jackieyeah/blog/657032