阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 5.x单机安装Hadoop

159次阅读
没有评论

共计 4182 个字符,预计需要花费 11 分钟才能阅读完成。

花了近两天时间,终于把 Hadoop 的安装,实例运行实践了一遍。虽然还有很多东西都不大懂,但总算有了个好的开端,也算是对自己的一点安慰吧。

一、JDK 安装

我的系统的 CentOS 5.X 的 linux distribution, 要安装 Hadoop,首先要配置好 JAVA 环境,这个相对简单,从 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载 JDK,我下载的是 jdk-8u20-linux-x64.rpm 的版本,这个是 rmp 的版本,可以用非常简单的语句安装:

rpm –ivh jdk-8u20-linux-amd64.rpm

并在 /etc/profile 里面添加环境变量 (全局部量) 声明如下:

export JAVA_HOME=/usr/java/default

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

写好后保存退出,可以重启 linux 或者运行命令 source /etc/profile 使得配置生效。

Linux 是采用文件系统来建立操作系统,因此其一切访问离不开各种变量,环境变量是针对整个系统而言的,模块之间的相互调用,函数或 shell 命令的执行,需要环境变量来执行各种路径的搜

索,从而快速找到所需命令。

顺便还补充一点,我装 JDK 的时候,原先电脑上装的是 jdk1.6,后来安装了 1.8 版本后,通过 linux 命令 java -version 检测,发现没有改过来。不要担心,这是因为相应的命令文件还是指向的老版本。那咋办呢?

我的新版 java 安装在了 /usr/java 里,进入 /usr/bin/ 目录下,你将会看到有四个文件,分别是 java, javac,javadoc , javaws, 原来的这些文件是 link 到了老的版本,现在只需要改变其指向,指向新的版本即可。具体的说明可参考:http://www.linuxidc.com/Linux/2014-10/107725.htm

二、Hadoop 安装

下面开始折腾 hadoop 的安装。说是折腾,其实一点也不过份,大量时间都是在琢磨 hadoop 的配置问题。在网络上看了无数的安装,每位大虾好像都成功了,但移植到我的机器系统上来,

却因系统、软件版本、安装目录等各种原因,让人不知所措。因此,我只能以我的安装过程,来为朋友们提供一种参考。

我下载的是 hadoop-1.2.1-bin.tar.gz,这个版本可以从官网境像获得。这个文件是个二进制的,所要只要解压放到你想放的目录即可。接下来就是环境配置了。以我的为例,我的文件解压后

变成了 hadoop-1.2.1 文件夹,然后放在 /usr/local/hadoop/ 下面,即是 /usr/local/hadoop/hadoop-1.2.1

的目录。进入到 hadoop-1.2.1/conf 文件夹下面,打开 hadoop-env.sh,在最后面一行补上

export JAVA_HOME=/usr/java/defualt

注意,我这里是 default,如果没有 default,要换成具体的路径,总之就是指向 java。然后是对三个文件进行修改。

对以下几个文件进行设置

core-site.xml

<<configuration>>

<<property>>

<<name>>fs.default.name<</name>>

<<value>>hdfs://localhost/<</value>>

<</property>>

<</configuration>>

hdfs-site.xml

<<configuration>>

<<property>>

<<name>>dfs.replication<</name>>

<<value>>1<</value>>

<</property>>

<</configuration>>

mapred-site.xml:

<<configuration>>

<<property>>

<<name>>mapred.job.tracker<</name>>

<<value>>localhost:8021<</value>>

<</property>>

<</configuration>>

注意,所有的双括号“《》”最后都要在改成“<>”,新浪博客现在显示不出 html 语言。

设置好以后,把 hadoop-1.2.1/conf 中的所有文件拷贝到 /etc/hadoop 文件夹中,如果没有 /etc/hadoop 文件夹,就自己建立一个。为什么要这样做,是因为 hadoop-1.2.1/bin 中的 stall-all.sh 启动后,其路径是指向 /etc/hadoop,它要从此启动各种守护进程,关于几种进程,可以参考:http://www.linuxidc.com/Linux/2014-10/107726.htm

另外,还要设置 hadoop 的环境变量,不然 hadoop1.2.1/bin/ 下面的函数怎么调用呢?所以又要打开 /etc/profile 文件,在后面再添加如下语句:

export HADOOP_INSTALL=/usr/local/hadoop/hadoop-1.2.1

export PATH=$PATH:$HADOOP_INSTALL/bin

这样,hadoop-1.2.1/bin 下面的所有函数就可以直接使用了。

三、配置 SSH

接下来是 SSH 设置的问题。SSH 是 Secure Shell Protocol 的简写,它可以通过数据包加密技术将等待传输的数据包加密后再传输到网络上。为了确保用户通够 SSH 到本地主机,并不输入密码即可登录,可用以下方式建立无密码登录模式:

ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa

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

用以下指令进行测试:

ssh localhost

如果成功,则无需键入密码。

四、实例测试

首先要了解一下 hadoop 的 HDFS 的思想。请参考 http://www.linuxidc.com/Linux/2014-04/99344.htm

Hadoop 以命令空间的方式对文件进行管理,形式上看上去就是在操作一个文件一样。由于我测试的伪分布式是模式,即以开启五个进程来模拟,所以无法体会到集群的特点。不过还是可

以说是一下的。下面就来玩一下单词统计这样一个小例子吧。

第 1 步:格式化 HDFS,即格式化文件系统,有点像格式化磁盘的意味,总之就是新的工作开始啰!输入以下命令:

hadoop namenode -format

第 2 步:启动守护进程

start-all.sh

[说明]start-all.sh 是 hadoop1.2.1/bin 下的文件,其实,它是两个文件的组合形式,其真面目是

start-dfs.sh

start-mapred.sh

所以你不嫌麻烦写两次也行。当所有工作执行完毕要退出时,执行 stop-all.sh,当然也可以执行

stop-dfs.sh

stop-mapred.sh

第 3 步:测试文件准备

要玩单词统计,当然要单词文本文件啦。由于我在 root 用户模式下,所以我选择了在 /root/input 文件夹下建立了两个文本,命名为 file1 和 file2,里面随便写入一些单词。

第 4 步:文件导入 HDFS 系统

导入 HDFS 系统?听起来好高端,其实在 HDFS 下,将 /root/input 的所有文件,导入一个在 HDFS 系统下的一个虚拟文件夹中,这个文件夹只能在前台显示出来,好像不能看到具体的文件夹

(至少我在我的电脑上没看到,如果有你一定要告诉我)。我们可以将这个文件夹命名为 in,当然你可根据你的喜好给个名字。即执行以下命令:

hadoop dfs -put /root/input in

此命令就将 file1 和 file2 写入了 in 文件夹中,你可以用以下命令来测试:

hadoop dfs -ls ./in/

看看输出了什么东东。

第 5 步:启动单词统计程序

执行命令

hadoop jar /usr/local/hadoop/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount in out

其中,wordcount 是命令,out 是个与 in 同处于 HDFS 下的一个文件夹,用于存储上述命令的输也结果。

这时如果你再输入以下命令:

hadoop dfs -ls ./out

就可以看到 out 中有个文件,名为 part-r-00000

第 6 步:显示结果

显示结果命令如下:

hadoop dfs -cat ./out/part-r-00000

就会见到相应的单词统计结果啦!

小结:

Hadoop 的命令行模式,文件目录模式,环境变量的设置好像都继承了 linux 的风格,所以只要略微懂点 linux,hadoop 的一些语言就容易理解了。最后,给大家列举几本参考书,希望大家能快速入门,共同进步!

[1] 鸟哥 著,王世江 改编,《鸟哥的 Linux 私房菜—基本学习篇(第三版)》,人民邮电出版社,2010. http://www.linuxidc.com/Linux/2011-06/36804.htm

[2] 鸟哥 著,《鸟哥的 Linux 私房菜—服务器架设篇(第三版)》,机械工业出版社,2013.

[3] Hadoop 权威指南(中文第 2 版)PDF http://www.linuxidc.com/Linux/2012-07/65972.htm

[4]  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

[5] Hadoop 权威指南(中文版 - 带目录索引)PDF  http://www.linuxidc.com/Linux/2013-05/84948.htm

[6] http://www.linuxidc.com/Linux/2014-04/99344.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4182字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中