RHEL6.4+hadoop 1.2.1集群配置

Hadoop的配置


介绍

HadoopApache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFSHadoopDistributed Filesystem)和MapReduceGoogleMapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

  对于Hadoop的集群来讲,可以分成两大类角色:MasterSalve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

  从上面的介绍可以看出,HDFSMapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFSMapReduce任务处理过程中提供了文件操作和存储等支持,MapReduceHDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务sup。

 

OS版本: Redhat Linux 6.4

1.        配置准备

2. 配置hostnamehost文件

NETWORKING=yes

HOSTNAME=master

GATEWAY=192.168.92.1

 

两个节点的host文件

192.168.92.129  slave

192.168.92.128  master

 

3. 下载软件包

a.        hadoop1.2.1

http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-1.2.1/

b. Java 1.6以上

http://www.oracle.com/technetwork/java/javase/overview/index.html

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

 

4.1 配置master无密码登录所有的Slave服务器

Hadoop运行中需要管理远程Hadoop守护进程,Namenode是通过SSH来启动和停止各个Datanode上的服务,所以在节点之间是不需要输入密码的。所以需要配置ssh无密码公钥认证。

a.        检查安装包

[hadoop@slave ~]$ rpm -qa| grep openssh

openssh-5.3p1-84.1.el6.x86_64

openssh-askpass-5.3p1-84.1.el6.x86_64

openssh-clients-5.3p1-84.1.el6.x86_64

openssh-server-5.3p1-84.1.el6.x86_64

[hadoop@slave ~]$ rpm -qa| grep rsync

rsync-3.0.6-9.el6.x86_64

 

 

b. 配置,root用户下master服务器上操作。使master可以无密码访问所有slave机器。

ssh-keygen -t rsa -P ''

 

追加文件

[root@master .ssh]# pwd

/root/.ssh

[root@master .ssh]# cat id_rsa.pub >>~/.ssh/authorized_keys

修改权限

[root@master .ssh]# chmod 0600./authorized_keys

 

c. master服务器上修改ssh服务

[root@master ~]# vim /etc/ssh/sshd_config

 

配置文件中去掉注释,

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

 

重启sshd服务

[root@master ~]# service sshd restart

Stopping sshd:                                            [  OK  ]

Starting sshd:                                            [  OK  ]

 

 

把公钥复制到所有的slave服务器上。

scp ./id_rsa.pub hadoop@slave:/root/

 

追加文件到authorized_keys

[root@slave .ssh]$ cat id_rsa.pub >> /root/.ssh/authorized_keys

[root@slave .ssh]$ chmod 600authorized_keys

 

slave上修改sshd配置文件,步骤参考master上的配置。然后重启sshd服务

 

测试,在master上通过root账号直接登录slave.

 

[root@slave data]# ssh master

Last login: Tue Mar 31 10:39:55 2015 from10.32.198.146

[root@master ~]# ssh slave

Last login: Tue Mar 31 10:45:29 2015 frommaster

 

 

此时,已经实现master访问slave服务器无密码登录,删除slave服务器上的pub文件

[root@slave .ssh]# rm -f id_rsa.pub

 

4.2 配置所有的Slave无密码登录master

参考4.1的步骤

 

5. 安装java环境

在根目录下创建data目录。将javahadoop的包放入。

[root@master data]# pwd

/data

tar -xvzf jdk-8u40-linux-x64.gz

mv jdk1.8.0_40/ java

 

6.设置变量

 

添加java

export JAVA_HOME=/data/java

exportCLASSPATH=$JAVA_HOME/lib/tools.jar:/lib/dt.jar

exportPATH=$JAVA_HOME/bin:$PATH


[root@master etc]# java -version

java version "1.8.0_40"

Java(TM) SE Runtime Environment (build1.8.0_40-b26)

Java HotSpot(TM) 64-Bit Server VM (build25.40-b25, mixed mode)

 

7. 准备hadoop环境

a. /data下解包,改文件夹名字

tar -xvzf hadoop-1.2.1.tar.gz

mv hadoop-1.2.1 hadoop

 

b. 检查hadoop目录权限

[root@master data]# ll | grep hadoop

drwxr-xr-x 17 root root      4096 Mar 3110:17 hadoop

 

8. 配置hadoop

a.        配置hadoop-env.sh设置javahomehadoop home

hadoop-env.sh  yarn-env.sh  在开头添加如下环境变量(一定要添加切勿少了)

[root@master conf]# pwd

/data/hadoop/conf

 

[root@master hadoop]# vim hadoop-env.sh

 

export JAVA_HOME=/data/java

b. 配置文件

core-site.xmlhdfs-site.xmlmapred-site.xmlcore-site.xmlhdfs-site.xml是站在HDFS角度上配置文件;core-site.xmlmapred-site.xml是站在MapReduce角度上配置文件。

 

1)配置core-site.xml

/data/hadoop/etc/hadoop

<configuration>

 

 <property>

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

       <value>/data/hdfstmp</value>

</property>

 

  <property>

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

                         <value>hdfs://localhost:9000</value>

 </property>

 

 

</configuration>

2) 配置hdfs-site.xml先配置单节点测试此处1是副本数

[root@master conf]# cat hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific propertyoverrides in this file. -->

 

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>


3) 配置mapred-site.xml文件

<configuration>

<property>

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

<value>localhost:9001</value>

</property>

</configuration>

9.格式化

bin/hadoop namenode -format

 

10.启动服务

bin/start-all.sh

 

11.   打开页面测试

wKioL1UcmKnxVJDCAAHGIVjfRhU282.jpg


第二部分,hadoop扩展

先停止hadoop所有服务

1.修改master上的配置文件

修改hdfs配置文件

 vim hdfs-site.xml

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

2.修改core-site.xml

 

<configuration>

 

 <property>

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

        <value>/data/hdfstmp</value>

</property>

 

   <property>

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

                          <value>hdfs://master:9000</value>

  </property>

 

</configuration>


3.修改mapred-site.xml

<configuration>

<property>

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

<value>master:9001</value>

</property>

</configuration>


4.修改slaves文件,第二个节点的主机名

[root@master conf]# cat slaves

master

slave



5.修改masters文件

[root@master conf]# cat masters

master

 

6.拷贝hadoop文件夹到第二个节点上。

[root@master data]# scp -r hadoop slave:/data/

 

7.拷贝profile文件到slave服务器上。

[root@master data]# scp -r /etc/profile slave:/etc/

 

8.格式化

[root@master bin]# ./hadoop namenode -format

9.启动所有服务

[root@master bin]# ./start-all.sh


wKiom1UcmEmgIC3SAAMFnmKdKy0719.jpg

wKioL1UcmYqwjswEAAF5CWZJoao425.jpg



本文出自 “小埃” 博客,谢绝转载!

你可能感兴趣的:(hadoop,集群,redhat,1.2.1)