集群分布式 Hadoop安装详细步骤

集群分布式Hadoop系统安装及测试

本系统一共有三个节点,一个namenode,两个datanode,IP和主机名对应如下:

192.168.1.19           namenode

192.168.1.7             datanode1

192.168.1.20           datanode2

1、安装配置

1)、安装配置JDK,在三个节点都需要安装,下面操作在三个节点上都需要执行:

a、下载jdk-6u45-linux-x64.bin文件,将下载的文件放到/usr/java目录,下载地址为:

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

b、在/usr/java目录下运行 ./ jdk-6u45-linux-x64.bin   安装JDK。

# ./jdk-6u45-linux-x64.bin

c、配置JAVA_HOME以及CLASS_PATH,使用vi命令修改/etc/profile,在文件的最后加上如下代码:

 JAVA_HOME=/usr/java/jdk1.6.0_45
 PATH=$JAVA_HOME/bin:$PATH
 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 export JAVA_HOME PATH CLASSPATH
/etc/profile是为每个用户配置环境变量信息,当用户第一次登陆系统时,该文件被执行,这个文件是针对所有用户的,修改对所有用户都有效。

d、执行java-version查看当前版本配置有没有生效,编写HelloWorld.java看看是否能正确编译执行。

2)、在三个节点上分别创建hadoop用户,并设置密码,此处将所有密码设为hadoop。

  # useradd –m –s /bin/bash hadoop
  # passwd hadoop
       -m参数表示为用户创建home目录,-s/bin/bash表示为用户指定shell,也可以不指定,默认为sh,不好用。创建hadoop用户后,以后进行hadoop相关操作时需要用hadoop登录。不能用root或其他用户登录。

3)、下载Hadoop,此处使用的版本为hadoop-1.2.1,三个节点都需要,可以下载一次后用scp复制到其他节点(最好配置后再使用scp复制,这样只需要配置一次),下载地址为:https://archive.apache.org/dist/hadoop/core/hadoop-1.2.1/

下载之后用下面命令解压:                       

 $ tar –xzvf hadoop-1.2.1.tar.gz

4)、配置SSH,配置SSH的目的是为了在各个节点访问时免输入密码,仅第一次使用时需要密码。执行如下命令(在所有三个节点上):                                  

 $ mkdir .ssh

在namenode上生成密钥对,在namenode执行如下命令:                      

 $ ssh-keygen –t rsa

一直按<Enter>键,使用默认配置,最终就会将生成的密钥对保存在.ssh/id_rsa中。接着执行下面命令:

 $ cd ~/.ssh
 $ cp id_rsa.pub authorized_keys
 $ scp authorized_keys datanode1:/home/hadoop/.ssh
 $ scp authorized_keys datanode2:/home/hadoop/.ssh

最后进入所有机器的.ssh目录,改变authorized_keys的许可权限:                         

$ chmod 644 authorized_keys

644的二进制为110 100100,表示拥有者可以读写,同组的用户可读,其他组的用户可读。

5)、配置hadoop环境。在第3)步时,我们已经解压hadoop,进入hadoop文件夹。hadoop的配置文件主要放在hadoop安装目录下的conf目录中,主要有以下几个配置文件要修改:

         conf/hadoop-env.sh: hadoop环境变量设置

         conf/core-site.xml: 主要完成namenode的IP和端口设置

         conf/hdfs-site.xml: 主要完成HDFS的数据块副本等参数设置

         conf/mapred-site.xml: 主要完成JobTrackerIP和端口的设置

         conf/masters: 完成Master节点IP设置

         conf/slaves: 完成Slaves节点设置

a、配置core-site.xml文档如下,指定hadoop.tmp目录和IP:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<!-- Put site-specific propertyoverrides in this file. -->
<configuration>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>/tmp/hadoop/hadoop-${user.name}</value>
       </property>
       <property>
               <name>fs.default.name</name>
               <value>hdfs://192.168.1.19:9000</value>
       </property>
</configuration>
b、配置hdfs-site.xml文档的内容如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific propertyoverrides in this file. -->
<configuration>
       <property>
               <name>dfs.namenode.name.dir</name>
               <value>/home/hadoop/hadoop-1.2.1/dfs/name</value>
       </property>
       <property>
               <name>dfs.datanode.data.dir</name>
                <value>file:///home/hadoop/hadoop-1.2.1/dfs/data</value>
       </property>
       <property>
               <name>dfs.replication</name>
                <value>1</value>
       </property>
</configuration>   

c、配置mapred-site.xml文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>
<!-- Put site-specific propertyoverrides in this file. -->
<configuration>
       <property>
               <name>mapred.job.tracker</name>
               <value>192.168.1.19:9001</value>
       </property>
       <property>
               <name>mapreduce.cluster.local.dir</name>
               <value>/home/hadoop/hadoop-1.2.1/mapred/local</value>
       </property>
       <property>
               <name>mapreduce.jobtracker.system.dir</name>
               <value>/home/hadoop/hadoop-1.2.1/mapred/system</value>
       </property>
</configuration>

注:上面出现IP的地方一定要替换成自己的IP,端口不要变。

d、修改conf/masters文件

         修改conf/masters文件为Master的主机名,每个主机名一行,此处即为namenode.

e、加入所有Slaves的主机名,即datanode1和datanode2.

f、把hadoop复制到其他节点,执行下面的命令:                              

$ scp –r hadoop-1.2.1 datanode1:/home/hadoop
$ scp –r hadoop-1.2.1 datanode2:/home/hadoop

g、检查每个节点的JAVA_HOME配置,如果已经配置过了,那么恭喜你,配置完成了。

2、运行Hadoop

1)、格式化HDFS系统,在初次安装和使用Hadoop之前,需要格式化分布式文件系统HDFS,操作命令如下:                                   

 $ bin/hadoop namenode –format

2)启动Hadoop环境,启动Hadoop守护进程。在namenode上启动NameNode、JobTracker和SecondaryNameNode,在datanode1和datanode2上启动DataNode和TaskTracker,并用如下jps命令检查启动情况:

 $bin/start-all.sh
 $jps

在namenode上启动正常结果如下(使用jps)所示:

                                                                               

在datanode上使用jps结果如下(datanode不需要使用start-all.sh命令):

                                                                           

要停止hadoop守护进程,可以使用如下命令: $bin/stop-all.sh

3)运行测试程序

下面用一个程序测试能否运行任务,示例程序是一个Hadoop自带的PI值的计算,第一个参数是指要运行的map的次数,第二个参数是指每个map任务取样的个数。在hadoop目录执行:                               

$bin/hadoop jar hadoop-examples-1.2.1.jar pi 2 5

最后结果如下:

                                               

至此,配置结束。

参考文献:《深入理解大数据 大数据处理与编程实战》主编:黄宜华老师(南京大学)


你可能感兴趣的:(集群分布式 Hadoop安装详细步骤)