首页  »   软件架构设计

Hadoop分布式集群平台筹建

网友分享于:2015-08-26  浏览:11次
Hadoop分布式集群平台搭建

目的


这篇文档的目的是帮助你快速完成在三台以上服务器搭建Hadoop应用平台。


先决条件


    VirtualBox  虚拟机共3台
      操作系统:Ubuntu 10.4
      内存: 256M以上

机器名 IP   作用 
master 10.9.9.100 NameNode、master、jobTracker
slave01 10.9.9.101 DataNode、slave、taskTracker
slave02 10.9.9.102 DataNode、slave、taskTracker


安装Hadoop集群前的准备工作

一、在每台机子上创建hadoop用户

$ group hadoop

$ useradd -g hadoop hadoop

$ passwd hadoop

 

  当然也可以用图形界面中 系统设置-〉用户和组 添加。添加之后注销使用hadoop用户登录,接下来的配置都用hadoop用户操作


二、修改hosts,在三台机子配置如下host


sudo vi  /etc/hosts

 

10.9.9.100 master
10.9.9.101 slave01
10.9.9.102 slave02
 

 

 

 


三、开启ssh服务

安装ssh服务 :sudo apt-get install openssh-server


(1)在 master 上实现无密码登录本机

$ ssh-keygen  –t  dsa

一路回车,

完成后会在/home/hadoop/.ssh下生成两个文件:id_dsa和id_dsa.pub。这两对是成对出现的。再把id_dsa.pub加到authorized_keys文件里。方法如下:进入/home/hadoop/.ssh目录:

$ cat id_dsa.pub >> authorized_keys

完成后可以实现无密码登录本机:

$ ssh localhost 

若无密码输入提示,则配置成功。


(2)实现 master 无密码登录其他slave01, slave02

在master机子上把id_dsa.pub文件复制给其它两台子

scp /home/hadoop/.ssh hadoop@slave01:/home/hadoop/


scp /home/hadoop/.ssh hadoop@slave02:/home/hadoop/


测试ssh 无密码登录

                $ ssh slave01

$ ssh slave02


安装


一、下载 jdk7     jdk-7-linux-x64.tar.gz

  http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html

$ sudo tar -zxvf jdk-7-linux-x64.tar.gz -C /usr/local/java/

$ sudo mv /usr/local/java/jdk1.7.0 /usr/local/java/jdk


二、下载 hadoop  hadoop-0.21.0.tar.gz

http://www.apache.org/dyn/closer.cgi/hadoop/common/

解压重命名

$ sudo tar -zxvf  hadoop-0.21.0.tar.gz -C /usr/local/

$ sudo mv /usr/local/hadoop-0.21.0 /usr/local/hadoop


(2) 添加环境变量 

$sudo vi /etc/profile

 

export HADOOP_HOME=/usr/local/hadoop
export JAVA_HOME=/usr/local/java/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
 

 

 

注意:上面的路径要和你解压的路径相一致,以上的配置三台机子都要相同


配置hadoop


    (1)建立目录
             在master服务器上,建立目录 /data/hadoop/name、/data/hadoop/tmp
             在slave01,slave02服务器上,建立目录 /data/hadoop/data01、/data/hadoop/data02、/data/hadoop/tmp
        (2)建立无密码验证的ssh密钥及更改文件权限
             (mster)                  
              # chown hadoop:hadoop -R /usr/local/hadoop
             
 # chown hadoop:hadoop -R /data/hadoop/name /data/hadoop/tmp 

slave01、slave02

      # chown hadoop:hadoop -R /usr/local/hadoop

              # chown hadoop:hadoop -R /data/hadoop/data01 /data/hadoop/data02  /data/hadoop/tmp 


(3) 在master上修改配置文件修改完成后,拷贝到slave01和slave02保证配置文件保持一致

要修改的文件有  {hadoop-install-dir}/conf/目录下的,

hadoop_env.sh  core-site.xml hdfs-site.xml mapred-site.xml masters slaves 六个文件

=======   hadoop_env.sh==========

           配置Hadoop需要的环境变量,其中JAVA_HOME是必须设定的变量
           export  JAVA_HOME=/usr/java/jdk1.6.0

 

======= 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>/data/hadoop/tmp</value>
		<description>A base for other temporary directories.</description>
  	</property>
                        <!-- file system properties -->
	<property>
		<name>fs.default.name</name>
		<value>hdfs://master:9000</value>         
	</property>
</configuration>


 

=======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>
	<property>
		<name>dfs.name.dir</name>
		<value>/data/hadoop/name</value>
	</property>
	<property>
		<name>dfs.data.dir</name>
		<value>/data/hadoop/data01,/data/hadoop/data02</value>
	</property>
</configuration>


 

================ 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> 
</property> 
</configuration>

 

===============masters=====================

 

master
 

 


=============== slaves=========================

 

slave01
slave02
 

 


运行hadoop


  (1)格式化namenode

            $  hadoop namenode -format
            注意查看相关log是否报错,
将/data/hadoop/name文件夹整个删除或者给文件加上777权限 然后再格,一定要成功才能继续

  (2)启动hdfs服务
           $ start-all.sh


  (3)启动hdfs服务
           $ stop-all.sh


    (4)   查看结果

http://10.9.9.100:50070/

   (5)其它

           查看进程情况:  jps可以用来查看当前hadoop运行的进程情况。

         hadoop dfsadmin –report可以用来查看当前hadoop的运行情况。


           




1 楼 锅巴49 2011-09-30  
写得很详细,顶。

相关解决方案

最新解决方案