您的位置:首页 > 运维架构 > Linux

在linux环境下搭建hadoop平台(伪分布式)

2014-05-24 21:58 453 查看
一、hadoop之平台搭建篇

1.实验配置:ubuntu-11.04,hadoop-0.20.2,jdk-1.7.0_04,eclipse及插件hadoop-0.20.2-eclipse-plugin,如下图:





准备工作完毕!

硬件环境
安装分布式可以准备多台电脑,组成计算机集群,这里是用单机模仿分布式集群,所以所需的硬件环境只要一台个人电脑就可以了(多台的配置和一台配置差不多,会一台配置,基本上集群也会配了)。

2.搭建步骤
(1).
安装linux系统已发行的linux系统有多种版本,作者用的是ubuntu-11.04,采用双系统,没有用虚拟机环境,点击wubi,自行安装linux系统。

(2)安装并配置jdk
将jdk放在指定的目录下,作者这里放在/usr/java下
解压:tar
–zxvf jdk-7u4-linux-i586.tar.gz
(不熟悉指令的最好先去看书,mv,cp,rm等随便找一本书查一下就可以了)

安装好后开始配置环境变量:
(可以再vi编辑器里也可以在gedit里编辑
gedit /etc/profile)

添加如下语句到/etc/profile
中:

export JAVA_HOME=/usr/java/jdk1.7.0_04

export JRE_HOME=/usr/java/jdk1.7.0_04/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

(注意:如果不能在普通用户下进行各项操作,就切换成root用户,指令为sudo
-i)

配置好后检查jdk是否配置成功,方法如下:



(和在windows里是一样的,由于作者在windows下编辑文档,懒得换了,显现如上提示,说明jdk安装成功)

(3)
实现无密码通信

1.下载并安装ssh
$ sudo apt-get install ssh
(如果是root直接敲apt-get install ssh)
(你可以在指定目录,我安装在默认目录/root/.ssh)

2. 先实现本机无密码通信

首先生成密钥:$ ssh-keygen -t dsa -P
''

(注:[b]两个单引号,另:
按照提示输入密钥保存文件)
[/b]

$ cd . ssh


再将id_dsa.pub追加到authorized_keys中去:cat
id_dsa.pub >> ~/.ssh/authorized_keys

3.检查是否成功

$ ssh localhost如果不需要密码输入,说明OK了,否则重新再弄。。

退出ssh是exit

(4)
关闭防火墙
sudo ufw disable(在配置集群是这一步是必须的,伪分布式不关也没事,可以略过)

(5)安装.hadoop

1. 解压到指定的目录下(作者把他安装在了/usr/local/hadoop):
$ tar –zvxf
hadoop-0.20.2.tar.gz


把 Hadoop
的安装路径添加到环/etc/profile
中(方法和配置JDK相同):

export HADOOP_HOME=/usr/local/hadoop

export PATH=$HADOOP_HOME/bin:$PATH

export HADOOP_HOME_WARN_SUPPRESS=1

2. 配置 hadoop(很重要)

hadoop 的主要配置都在
hadoop-0.20.2/conf 下。

(1)在 conf/hadoop-env.sh
中配置 Java
环境(namenode
与 datanode
的配置相同):

$ vi hadoop-env.sh

在弹出的gedit中找到export JAVA_HOME=将你的java_home路径输入:

export JAVA_HOME=/usr/java/jdk1.7.0_04

(2)配置 conf/core-site.xml, conf/hdfs-site.xml

conf/mapred-site.xml core-site.xml

在/hadoop/conf下

$
vi conf/core-site.xml

<configuration>

<!--- global properties -->

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/hadoop-0.20.2/tmp</value>

<description>A base for other temporary directories.</description>

</property>

<!-- file system properties -->

<property>

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

<value>hdfs://localhost:9000</value> #注意:9000是namenode的监听端口

</property>

</configuration>

hdfs-site.xml:( replication 默认为 3,如果不修改,datanode
少于三台就会报错)

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

mapred-site.xml:

<configuration>

<property>

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

<value>localhost:9001</value> #注意:9001是jobtracker的监听端口

</property>

</configuration>
(6).
运行hadoop

首先格式化文件系统,进入hadoop文件夹,输入下面的命令:

bin/hadoop namenode -format

启动 Hadoop:$ bin/start-all.sh

用 jps
命令查看进程,NameNode
上的结果如下

3540 TaskTracker

3002 DataNode

3224 SecondaryNameNode

4987 Jps

2829 NameNode
3383 JobTracker

TaskTracker\ DataNode\SecondaryNameNode\ NameNode\JobTracker这5个都出现说明hadoop安装成功,否则如上步骤看哪里有问题

web方式查看:namenode的web访问端口是50070,用web方式访问namenode,在浏览器键入地址:http://localhost:50070,出现如下结果。



而9001也是可以用web方式来访问的,由于namenode和jobtracker是设置在同一台机器上的,网址是http://localhost:50030,出现



二、eclipse之安装配置篇

1.eclipse安装

下载eclipse-SDK-3.6.2-linux-gtk.tar.gz解压安装在usr下,和hadoop-0.21.0都在ysr目录下。从csdn上下载hadoop-0.21.0-eclipse-plugin-3.6.jar,然后拷贝到/eclipse/plugin下。运行eclipse。

2.eclipse配置

打开/usr/eclipse,选择window->Openspective->Other,选择带大象图标的map/reduce,选择OK。选择window->Preferences->Hadoop
Map/Reduce,选择OK。选择window->Show View->Other,选中MapReduce
Locations,移动到下方的Mapreduce框,编辑localhost,右键“New
Hadoop Location”,出现如下:

在前面的hadoop配置中,可知9000是namenode的监听端口,而9001是jobtracker的监听端口,在界面上新建DFS
location时候,可以看到Map/Reduce Master,这是jobtracker所在机器及监听端口,设置成:host=10.2.137.238,port=9001,而DFS
Master中勾选Use M/R Master Host(是否使用与JobTracker相同的主机?)当然是勾上。端口也就是9000了,host=10.2.137.238,port=9000。

重新打开eclipse,出现





三、wordcount之运行调试篇

Hadoop自带一些例子,这里以最简单的wordcount测试,在hadoop目录下建立input文件夹,
$ mkdir input
$cd input
在文件夹下建2个文件,
$echo
“hello world”>text1.txt
$echo
“hello hadoop”>text2.txt
(建了2个txt文件,里面写了2句话,一个4个单词)
然后,
$ cd ..
$ hadoop fs
–put input in #把input目录及文件上传到hdfs里并改名为in作为输入
$ hadoop fs
jar hadoop-0.20.2-examples.jar wordcount in out #调用hadoop提供的java程序完成wordcount并讲结果和日志生成在out目录里
$ hadoop fs –cat
out/* #*代表生成的reduce结果文件

最后就可以看到:
hello
2
world 1
hadoop 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: