Linux Ubuntu 16.04安装Hadoop全过程(一)
总阅读次
本文简要记述了本人参考网上教程在Ubuntu上(虚拟机)搭建Hadoop的过程,以备后用和各位获取。
前言
Hadoop是当今最流行的分布式系统之一,能够充分利用集群进行分布式程序的开发,以实现大规模数据的高速运算和存储。
Hadoop包括两个最重要的设计:HDFS和MapReduce。
HDFS是分布式文件系统(Hadoop Distribution File System),为海量数据提供高效的存储。
MapReduce是一种并行计算的思想,加快大数据处理的速度。
软件
1.JDK 8 (下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2.Hadoop 2.7.3
3.ssh
步骤
安装JDK
1.下载JDK的.tar.gz压缩文件后(这里我下载的是jdk-8u101-linux-x64.tar.gz),将其移动到位置如/usr/jdk:1
mv ../Downloads jdk
2.然后将压缩文件解压1
tar -zxvf jdk-8u101-linux-x64.tar.gz
3.然后修改配置文件.bashrc,并用source命令保存修改1
2
3vim ~/.bashrc
编辑...
source ~/.bashrc
在最后一行添加:1
2
3
4export JAVA_HOME=/usr/jdk/jdk1.8.0_101
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
4.然后在任意目录输入1
java -version
查看Java JDK的安装情况。至此,JDK 8就安装好了。
5.注:Java的安装是针对所有用户的,并不是只针对特定用户。
创建新的Hadoop用户
1.创建一个新的Hadoop用户用来测试:
1 | ~$ su |
配置SSH
完全分布模式和单机伪分布模式都需要用到SSH,以保证在远程管理Hadoop节点以及Hadoop节点间用户共享访问时的安全性。
SSH登录类似于远程登录,登录某台Linux主机,并可在上面运行命令。
1.Ubuntu默认已经安装SSH Client, 我们还要安装SSH Server1
sudo apt-get install openssh-server
2.在用户hadoop命令行中输入1
$ ssh localhost
登录到本机,可见此时需要密码才能登录,下面免去此步骤。
退出刚刚的登录,然后在用户hadoop目录下(~/)新建隐藏目录.ssh,生成密钥对,一直按
1 | ~$ exit |
3.然后再执行命令:1
~/.ssh$ cat ./id_rsa.pub ./authorized_keys
4.然后输入ssh localhost
就不再需要密码了。
安装Hadoop
1.下载Hadoop包
源代码包(需编译)或二进制文件在http://hadoop.apache.org/releases.html下载
编译好的版本(hadoop-2.x.y.tar.gz)或者源代码包(hadoop-2.x.y-src.tar.gz)还可以在 http://mirror.bit.edu.cn/apache/hadoop/common/或者
http://mirrors.cnnic.cn/apache/hadoop/common/下载
2.将下载的Hadoop包(我下载的是hadoop-2.7.3.tar.gz,注意不带src!)移动到/usr/local下,我们将Hadoop安装在这个目录下。
3.解压1
2
3tar -zxvf hadoop-2.7.3.tar.gz
mv hadoop-2.7.3 hadoop # 将目录更名
chown -R hadoop hadoop # 更改文件权限
虽然Hadoop安装在/usr/local中,也是针对所有用户的,但是我们用账户hadoop来进行整个测试,所以更改文件权限不能不做,否则,在后面./sbin/start-dfs.sh
步会遇到no such file or directory
等错误。
4.解压后Hadoop即可使用
使用如下命令查看是否安装成功1
2cd /usr/local/hadoop
./bin/hadoop version
单机模式配置
单机模式没有守护进程,其实无需进行SSH配置,所以上面SSH配置步可以省略。
1.打开/usr/local/hadoop/etc/hadoop/hadoop-env.sh
2.将1
export JAVA_HOME=${JAVA_HOME}
处修改为1
2
3export JAVA_HOME=/usr/jdk/jdk1.8.0_101 # 视Java安装位置而定
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin
然后source hadoop-env.sh
以保存修改
此时单机模式就已配置完成。
单机模式测试
1.采用Hadoop自带的示例WordCount来测试单机模式是否安装成功。
2.在/usr/local/hadoop
路径下创建input目录,然后拷贝统计的输入文件README.txt到input中,然后执行。1
2
3mkdir input
cp README.txt input
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.3-sources.jar org.apache.hadoop.examples.WordCount input output
可以看到输出如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36...
File System Counters
FILE: Number of bytes read=598380
FILE: Number of bytes written=1162470
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
Map-Reduce Framework
Map input records=31
Map output records=179
Map output bytes=2055
Map output materialized bytes=1836
Input split bytes=104
Combine input records=179
Combine output records=131
Reduce input groups=131
Reduce shuffle bytes=1836
Reduce input records=131
Reduce output records=131
Spilled Records=262
Shuffled Maps =1
Failed Shuffles=0
Merged Map outputs=1
GC time elapsed (ms)=110
Total committed heap usage (bytes)=242360320
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=1366
File Output Format Counters
Bytes Written=1326
即说明配置成功。
打开output目录下的part 00000文件,可以看到有每个词的出现次数,即实现了词频统计。
接下来还将进行伪分布式和集群分布式的配置。
见以后的文章。