三台机器搭建Hadoop集群

目标: 一台Master   两台Slave

 

一、修改主机名,配置/etc/hosts文件

      "/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName  IP]用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名对应的IP地址。在/etc/hosts文件里面添加如下:

       可以ping 一下,看是否可以正常通信。所有机器都要修改。

 

二、三台机器都实现ssh免密登陆。

        Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到 NameNode。

        需要注意的是,也需要将本机的公钥添加到authorized_keys里面,通过ssh localhost验证

 

三、安装java环境

      所有的机器上都要安装JDK,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。安装JDK以及配置环境变量,需要以"root"的身份进行。

     用java -version来验证是否安装成功。注意,master和slave机器必须安装同一个版本的JDK,不然会有问题。

 

 

四、 安装HADOOP集群

     1、 首先在Master机器上安装HADOOP,解压下载的tar.gz包就可以了。修改目录名称为hadoop

     2、 在hadoop目录下创建文件夹tmp。并把Hadoop的安装路径添加到"/etc/profile"中,修改"/etc/profile"文件,将以下语句添加到末尾,并使其生效(. /etc/profile):

 

下面是 JDK 和 Hadoop 环境变量配置:

 
  1. # Java Env

  2. export JAVA_HOME=/opt/java/jdk1.7.0_80

  3. export JRE_HOME=/opt/java/jdk1.7.0_80/jre

  4. export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib

  5. export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

  6.  
  7. # Hadoop Env

  8. export HADOOP_HOME=/opt/hadoop-2.6.4

  9. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

3、 配置hadoop,配置文件在hadoop/etc/hadoop/目录下面。

首先,修改 master 机器上 Hadoop 配置

 

(1) hadoop-env.sh

增加如下两行配置:

 
  1. export JAVA_HOME=/opt/java/jdk1.7.0_80

  2. export HADOOP_PREFIX=/opt/hadoop-2.6.4

(2) core-site.xml

 
  1. <configuration>

  2. <property>

  3. <name>fs.defaultFS</name>

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

  5. </property>

  6. <property>

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

  8. <value>/opt/hadoop-2.6.4/tmp</value>

  9. </property>

  10. </configuration>

注意:tmp目录需提前创建

(3) hdfs-site.xml

 
  1. <configuration>

  2. <property>

  3. <name>dfs.replication</name>

  4. <value>3</value>

  5. </property>

  6. </configuration>

数据有三个副本

(4) mapred-site.xml

 
  1. <configuration>

  2. <property>

  3. <name>mapreduce.framework.name</name>

  4. <value>yarn</value>

  5. </property>

  6. </configuration>

(5) yarn-env.sh

增加 JAVA_HOME 配置

export JAVA_HOME=/opt/java/jdk1.7.0_80

(6) yarn-site.xml

 
  1. <configuration>

  2.  
  3. <!-- Site specific YARN configuration properties -->

  4. <property>

  5. <name>yarn.nodemanager.aux-services</name>

  6. <value>mapreduce_shuffle</value>

  7. </property>

  8. <property>

  9. <name>yarn.resourcemanager.hostname</name>

  10. <value>master</value>

  11. </property>

  12. </configuration>

(7) slaves

 
  1. master

  2. slave01

  3. slave02

master 即作为 NameNode 也作为 DataNode。

4、在 slave01 和 slave02 上做同样的配置

         直接将hadoop文件夹拷贝到slave机器上。

          

 

 

五、启动Hadoop集群

 

1、格式化文件系统

 

在 master 上执行以下命令:

$ hadoop/bin/hdfs namenode -format

       

执行后控制台输出如下所示,看到Exiting with status 0表示格式化成功。

 

 

2、启动 NameNode 和 DateNode

 

在 master 机器上执行 start-dfs.sh, 如下:

使用 jps 命令查看 master 上的Java进程:

使用 jps 命令分别查看 slave01 和 slave02 上的 Java 进程:

可以看到 NameNode 和 DataNode 均启动成功。

 

3、查看 NameNode 和 NameNode 信息

浏览器输入地址: http://master:50070/ 可以查看 NameNode 信息。

4、启动 ResourceManager 和 NodeManager

运行 start-yarn.sh, 如下:

使用 jps 查看 master 上的 Java 进程

可以看到 master 上 ResourceManager 和 NodeManager 均启动成功。

可以看到 slave01 上 NodeManager 也启动成功。

同样可以看到 slave02 上 NodeManager 也已经启动成功了。

至此,整个 Hadoop 集群就已经启动了。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
集群规划: 主机名 IP 安装的软件 运行的进程 weekend01 192.168.1.201 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend02 192.168.1.202 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend03 192.168.1.203 jdk、hadoop ResourceManager weekend04 192.168.1.204 jdk、hadoop ResourceManager weekend05 192.168.1.205 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain weekend06 192.168.1.206 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain weekend07 192.168.1.207 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain 说明: 1.在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务 仅同步active namenode的状态,以便能够在它失败时快速进行切换。 hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据 信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode 这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态 2.hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个 是Standby,状态由zookeeper进行协调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值