HADOOP安装

标签: Hadoop | 发表时间:2011-09-22 14:51 | 作者:三少(David.Guo)
出处:http://www.oracledba.com.cn/blog

最近有时间看看hadoop的一些东西,而且在测试的环境上做了一些搭建的工作。仅记录之;
首先,安装前需要做一些准备工作。
1:准备三台虚拟机。使用一台pcserver作为测试服务器,同时使用Oracle VM VirtualBox来作为虚拟机的服务器。
新建了三个虚拟机以后,安装linux,我安装的linux的版本是redhat linux 5.4 x64版本。安装完成以后,
设置其中的ip地址,master服务器为:172.16.3.217;slave01为172.16.3.218;slave02为172.16.3.219;
2:给虚拟机安装java环境,由于hadoop推荐使用java的1.6版本。而实际上redhat 5.4自带的为1.4.2,
因此要先删除,然后再安装心的版本;java 1.6的版本到java的官方网站下载即可。下载到java的安装包以后。
首先删除系统自带的java 1.4.2;
在root用户下执行:
rpm -qa|grep gcj
能看到回显的结果中有类似:
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115这样的内容
然后
rpm -e java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
这个有可能无法执行成功,提示有依赖关系,这个时候,加上–nodeps再执行,就能成功了;
然后安装jdk 1.6,方法如下:
执行下载下来的bin文件:
./jdk-6u27-linux-x64-rpm.bin
然后安装生成的rpm文件:
rpm -ivh jdk-6u27-linux-amd64.rpm
等到安装完成以后,检查java安装的情况
java -version
一般会得到类似如下的信息:
java version “1.6.0_27″
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)
安装完成以后,需要修改系统的文件让java的路径输出给所有的用户,一般修改的是/etc/profile,在这个文件中增加如下的内容:
export JAVA_HOME=/usr/java/jdk1.6.0_27
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
export HADOOP_HOME=/root/jz/hadoop-0.21.0
export PATH=$HADOOP_HOME/bin:$PATH
在三个机器上都安装好java以后,可以继续下面的操作了;
3:在hadoop的官方网站 http://www.apache.org/dist/hadoop/common/hadoop-0.21.0/
下载文件hadoop-0.21.0.tar.gz 这个文件是hadoop 0.21.0版本的安装文件了。下载下来以后,
在master机器上的/root下新建一个jz目录,将hadoop的文件拷贝到这个目录下;
4:配置master到slave01和slave02的互信;
在master上执行:
ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
执行完成以后,会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。这两个是成对出现,
类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这个时候,如果你执行
ssh localhost
应该是不需要密码的。这表明你对本机的ssh互信成功。现在需要把这个文件拷贝给slave01和slave02
以下的操作需要对两个slave机器都做一次。以slave01为例:
scp id_dsa.pub [email protected]:/root/
然后到slave01上执行:
cat id_dsa.pub >> .ssh/authorized_keys
现在从master上直接ssh登陆slave01应该无需密码的,如果还是需要密码,要确保互信成功才能继续下面的操作;
5:修改master机器上的hosts文件为如下内容:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
172.16.3.217 master master.localdomain
172.16.3.218 slave01 slave01.localdomain
172.16.3.219 slave02 slave02.localdomain
6:将下载的hadoop文件解压:
tar -xvf hadoop-0.21.0.tar
7:修改hadoop的配置
修改/root/jz/hadoop-0.21.0/conf/目录下的master文件,内容如下:
172.16.3.217
修改/root/jz/hadoop-0.21.0/conf/目录下的slaves文件,内容如下:
172.16.3.218
172.16.3.219
修改/root/jz/hadoop-0.21.0/conf/hadoop-env.sh文件的环境变量:
# The java implementation to use. Required.
export JAVA_HOME=/usr/java/jdk1.6.0_20
修改/root/jz/hadoop-0.21.0/conf/core-site.xml配置文件,内容如下:
< ?xml version=”1.0″?>
< ?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoopdata</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri’s scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri’s authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>excludes</value>
</property>
</configuration>
修改/root/jz/hadoop-0.21.0/conf/hdfs-site.xml配置文件,内容如下:
< ?xml version=”1.0″?>
< ?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改/root/jz/hadoop-0.21.0/conf/mapred-site.xml配置文件,内容如下:
< ?xml version=”1.0″?>
< ?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
<description>The host and port that the MapReduce job tracker runs
at. If “local”, then jobs are run in-process as a single map
and reduce task.
</description>
</property>
</configuration>
8:将/root/jz/hadoop-0.21.0整个目录拷贝到slave01和slave02上;将/etc/profile拷贝到slave01和slave02上;
将/etc/hosts拷贝到slave01和slave02上;
9:启动和关闭hadoop
启动hadoop:
sh /root/jz/hadoop-0.20.2/bin/start-all.sh
关闭hadoop:
sh /root/jz/hadoop-0.20.2/bin/start-all.sh
如果都成功,则安装hadoop成功。
—未完待续—

相关 [hadoop] 推荐:

Hadoop Streaming 编程

- - 学着站在巨人的肩膀上
Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如:. 采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer). 本文安排如下,第二节介绍Hadoop Streaming的原理,第三节介绍Hadoop Streaming的使用方法,第四节介绍Hadoop Streaming的程序编写方法,在这一节中,用C++、C、shell脚本 和python实现了WordCount作业,第五节总结了常见的问题.

Hadoop使用(一)

- Pei - 博客园-首页原创精华区
Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracker组成. 其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上.

Hadoop MapReduce技巧

- - 简单文本
我在使用Hadoop编写MapReduce程序时,遇到了一些问题,通过在Google上查询资料,并结合自己对Hadoop的理解,逐一解决了这些问题. Hadoop对MapReduce中Key与Value的类型是有要求的,简单说来,这些类型必须支持Hadoop的序列化. 为了提高序列化的性能,Hadoop还为Java中常见的基本类型提供了相应地支持序列化的类型,如IntWritable,LongWritable,并为String类型提供了Text类型.

Hadoop TaskScheduler浅析

- - kouu&#39;s home
TaskScheduler,顾名思义,就是MapReduce中的任务调度器. 在MapReduce中,JobTracker接收JobClient提交的Job,将它们按InputFormat的划分以及其他相关配置,生成若干个Map和Reduce任务. 然后,当一个TaskTracker通过心跳告知JobTracker自己还有空闲的任务Slot时,JobTracker就会向其分派任务.

HADOOP安装

- - OracleDBA Blog---三少个人自留地
最近有时间看看hadoop的一些东西,而且在测试的环境上做了一些搭建的工作. 首先,安装前需要做一些准备工作. 使用一台pcserver作为测试服务器,同时使用Oracle VM VirtualBox来作为虚拟机的服务器. 新建了三个虚拟机以后,安装linux,我安装的linux的版本是redhat linux 5.4 x64版本.

Hadoop Corona介绍

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/hadoop-corona/hadoop-corona/. Hadoop Corona是facebook开源的下一代MapReduce框架. 其基本设计动机和Apache的YARN一致,在此不再重复,读者可参考我的这篇文章 “下一代Apache Hadoop MapReduce框架的架构”.

Hadoop RPC机制

- - 企业架构 - ITeye博客
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. Hadoop底层的交互都是通过 rpc进行的. 例如:datanode和namenode 、tasktracker和jobtracker、secondary namenode和namenode之间的通信都是通过rpc实现的.

Hadoop Rumen介绍

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce/hadoop-rumen-introduction/. 什么是Hadoop Rumen?. Hadoop Rumen是为Hadoop MapReduce设计的日志解析和分析工具,它能够将JobHistory 日志解析成有意义的数据并格式化存储.

Hadoop contrib介绍

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce/hadoop-contrib/. Hadoop Contrib是Hadoop代码中第三方公司贡献的工具包,一般作为Hadoop kernel的扩展功能,它包含多个非常有用的扩展包,本文以Hadoop 1.0为例对Hadoop Contrib中的各个工具包进行介绍.

HADOOP SHUFFLE(转载)

- - 数据库 - ITeye博客
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方. 要想理解MapReduce,Shuffle是必须要了解的. 我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混. 前段时间在做MapReduce job性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟.