现在的位置: 首页 > 综合 > 正文

hadoop安装(三台虚拟机)一些常见问题

2013年09月03日 ⁄ 综合 ⁄ 共 6406字 ⁄ 字号 评论关闭

现在网络有很多介绍hadoop安装的文章,我也试着按照他们的方法安装,乖乖,这个不行,那个有不行,只能一个一个的找谷老师,谷老师提供的乱七八糟的,最终还是安装上了。我这篇是根据人家写的基础之上写了,仅供参考机器名

机器名称        IP地址            作用

Master       10.64.79.153        namenode

Leon03       10.64.79.158        datanode

Leon04       10.64.79.159        datanode

安装虚拟机就不说了,网上有很多教程,大家可以参考一下,注意一点,

(1)在安装ubtuntu时利用apt-get install一些软件时可能出问题,这是由于没有更新的问题,所以首先apt-get update之后才安装。

(2)还有安装好的三台机器把防火墙给关了,利用sudu ufw disable

(3)若你想修改机器名的话你进/etc/hostname把机器给改了

(4)修改/etc/hosts,   vim /etc/hosts把里面全给删了,然后添加

     127.0.0.1       localhost

<configuration>
     <property>
      <name>dfs.replication</name>
      <value>2</value>
     </property>
</configuration>

       10.64.79.153    master

       10.64.79.158    leon03

       10.64.79.159    leon04

(4)在三台机器上添加doop用户,即

           root@master:~$adduser doop

              填好密码,之后要你填一些信息,你可以直接回车

5

root@master:~/home$ chown  -R  doop:doop  doop

           //doop文件夹的所用者改成doop用户的。否则我们用adduser
doop
创建了doop用户后,doop用户不能在自己的主目录下创建文件夹,(如:$mkdir
.ssh
)提示没有权 限创建文件夹。 

6)在三台虚拟机上分别配置ssh无密码登录。(同时要安装openssh-server)

      第一步:   root@master:~$sudo apt-get install ssh  

                                    //开启ssh服务。
      第二步:     doop@master:~$ mkdir.ssh
                   在三台虚拟机的/home/doop目录下都用doop用户建立一个.ssh目录 
      第三步:doop@master:~/.ssh/$ssh-keygen–t dsa–P ’’–f ~/.ssh/id_dsa
                 //这个命令将为masters上的doop用户生成其密钥对,生成的密钥对id_dsa,id_dsa.pub,默认存储在/home/doop/.ssh目录下。
     第四步:    doop@master:~/.ssh/$ cat id_dsa.pub >> authorized_keys
                         //把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件是你也可以直接使用cp 命令)。至此无密码登录到本机已经配置好了。

可以使用 $ssh localhost 命令 测试一下。第一次登录时要输入yes,之后就不用了。

     第五步:

     doop@master:~/.ssh/$scp id_dsa.pub doop@leon03:/home/doop/.ssh/  

                  //id_dsa.pub 文件传送到leon03这台虚拟机上。Leon04 同理。

    第六步:到leon03 这台虚拟机上执行第四步的操作。leon04 同理。至此master就可以无密码登录到leon03 leon04 上了。如果想要leon03 leon04 都可以无密码登录
                       到
master上必须在leon03 salve2 上也操作第三部生成自己的密钥对而且要将密钥对追加到三台机器的authorized_keys文件里。 
至此各个机器上的
SSH配置已经完成,可以测试一下了,比如masterleon03发起ssh连接

doop@mater:~/.ssh$ ssh  leon03

 OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes这将把这台主机的“识别标记”加到“~/.ssh/know_hosts”文件中。
二次访问这台主机的时候你会发现不需要输入密码就可以建立
ssh连接了,恭喜你,配置成功了。不过,别忘了测试本机ssh  localhost  (因为后面的Hadoop命令
受到这一 步。

注意如果你没有成功记住删除“~/.ssh/know_hosts”文件就可以重新开始。

(7). 在三台虚拟机上分别安装jdk1.6

        第一步:将jdk-6u13-linux-i586.bin拷到/home/doop目录下

        第二步:

        root@master:~/home/doop$chmod u+x jdk-6u13-linux-i586.bin

                      //bin文件修改成可执行文件。

         第三步:

       root@master:~/home/doop/$./jdk-6u13-linux-i586.bin

                     //运行安装文件

    第四步:

       root@master:~/$gedit /etc/profile

              在文件里面加入如下信息。 (根据自己安装的情况添加

              export JAVA_HOME=/home/doop/jdk1.6.0_13
              export JRE_HOME=/home/doop/jdk1.6.0_13/jre
              exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
              export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

              然后root@master:~/$source /etc/profile 是文件内容生效。   

    第五步:重启电脑,在任何用户中 $ javaversion 如果显示如下信息:

              java version "1.6.0_13"
               Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
               Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode,sharing)

               说明jdk安装成功。你可以在leon03leon04 上执行同样的操作,也可以使用$

               scp jdk1.6.0_13文件夹拷到其它两台虚拟机上,然后配置环境变量就OK了。

               至此jdk安装成功。注意安装jdk时容易出现的一个问题:第一是安装完成后只有安装时的登录用户可用java其它用户不可用。这样的话你要设置一下/etc/environment 
                  件。设置方法网上搜索就可以。

(8)在三台虚拟机上分别安装Hadoop-0.20.1

           第一步:将hadoop-0.20.1.tar.gz文件拷贝到/home/doop目录下。 

           第二步:

          root@master:~/home/doop/$tar -xzvf hadoop-0.20.205.0.tar.gz

                           //将文件解压。 

           第三步:

          root@master:~/home/doop/$chown  doop:doop hadoop-0.20.205.0

                           //将文件所有者改成doop

          第四步:

         root@master:~/home/doop/$gedit /etc/profile

                     进入文件将如下信息加到文件里

         export HADOOP_HOME=/home/doop/hadoop-0.20.205.0
         export PATH=$HADOOP_HOME/bin:$PATH

          第五步:更改conf目录下的conf/core-site.xml, conf/hdfs-site.xml,conf/mapred-site.xml,conf/hadoop-env.sh,conf/masters,conf/slaves 文件。

root@master:~/home/doop/hadoop-0.20.205.0/conf/$ vim hadoop-env.sh

进入文件加入如下信息。

进入文件加入如下信息。

export   JAVA_HOME=/home/doop/jdk1.6.0_13 

root@master:~/home/doop/hadoop-0.20.205.0/conf/$vim masters

进入文件加入如下信息。

10.64.79.153

root@master:~/home/doop/hadoop-0.20.205.0/conf/$ vim slaves

进入文件加入如下信息。

10.64.79.158
10.64.79.159

root@master:~/home/doop/hadoop-0.20.205.0/conf/$vim core-site.xml     

root@master:~/home/doop/hadoop-0.20.205.0/conf/$ vim core-site.xml                                                                      
进入文件加入如下信息。  

 

<configuration>
     <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/doop/tmp</value>
      <description>A basefor other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
      <name>fs.default.name</name>
      <value>hdfs://10.64.79.153:9000</value>
</property>
</configuration>

root@master:~/home/doop/hadoop-0.20.205.0/conf/$ vim hdfs-site.xml
进入文件加入如下信息。(replication默认是3,如果不修改,datanode少于三台就会报错)。

<configuration>
     <property>
      <name>dfs.replication</name>
      <value>1</value>
     </property>
</configuration>

root@master:~/home/doop/hadoop-0.20.205.0/conf/$ vim mapred-site.xml                                                                   
进入文件加入如下信息。

<configuration>
<property>
      <name>mapred.job.tracker</name>
      <value>10.64.79.153:9001</value>
</property>
</configuration>

    第六步:doop@master:~/$ scphadoop-0.20.205.0 doop@leon03:/home/doop/hadoop-0.20.205.0
//将文件hadoop-0.20.205.0拷贝到其它两个虚拟机上就可以了。
  至此hadoop安装完成。注意一个问题:运行时出现找不到主函数的错误,说明profile环境变量的设置没有起效。可以在/etc/environment 文件里加入一些信息。具体信息网上搜索。
 
8.运行hadoop自带的例程 wordcount。
第一步:doop@master:~/hadoop-0.20.205.0/bin/$hadoop namenode–format
                     //格式化文件系统,新建一个文件系统。 
第二步:doop@master:~/hadoop-0.20.205.0/bin$start-all.sh
                    //启动hadoop的所有守护进程。
第四步:doop@master:~/hadoop-0.20.1/$jps   
                //查看进程,master虚拟机上的结果。注意查看jps是jdk下的一个小工具,在bin/jps目录下,所以要用最好配置到PATH环境变量, 在leon03 和 leon04 虚拟机上doop@leon03:~/hadoop-0.20.205.0/$jps

第四步:(1)先在本地磁盘建立两个输入文件file01 和file02:

第五步:doop@master:~/soft/$echo "Hello World Bye World" > file01
                doop@master:~/soft/$ echo "Hello Hadoop Goodbye Hadoop" > file02
//在本地磁盘建立两个输入文件file01 和file02。将Hello World Bye World语句和Hello Hadoop Goodbye Hadoop语句分别加到file01文件和file02 文件里面。
第六步:doop@master:~/hadoop-0.20.1/$./hadoopfs –mkdir input
                     //在hdfs 中建立一个input 目录
第七步:doop@master:~/hadoop-0.20.20.5.0/bin$./hadoopfs–copyFromLocal /home/doop/soft/file0* input
                      //将file01 和file02 拷贝到hdfs 中。
第八步:doop@master:~/hadoop-0.20.205.0/bin$./hadoop jar ../hadoop-examples-0.20.205.0.jar wordcount input output
                      //执行wordcount    这里注意路径问题,我上面加了上层路径,路径不对会出现:

at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.util.zip.ZipException: error in opening zip file
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:127)
	at java.util.jar.JarFile.<init>(JarFile.java:135)
	at java.util.jar.JarFile.<init>(JarFile.java:72)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:88)

第九步:doop@master:~/hadoop-0.20.205.0/bin$./hadoop fs -cat output/part-r-00000
     //完成之后,查看结果:
Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2

   

抱歉!评论已关闭.