hadoop集群搭建

Hadoop分布式集群搭建

  • 创建虚拟机(可以参考网上其他教程)
  • 克隆三台机器

master

slaver1

slaver2

  • 分别在每台机器上安装jdk >= 1.7版本

vim  /etc/profile

四、同步三台虚拟机的时间(时间同步)每台机器都要做同样的            操作

1、yum  -y install ntp

2、输入

“cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime”

 

  1. 输入“ntpdate pool.ntp.org”

注意:如果电脑可以上网,但是虚拟机不可以上网,可以如下操作

编辑   vim /etc/resolv.conf

添加如下两行指令

nameserver 202.106.0.20

nameserver 8.8.8.8

 

如果没法保证每台虚拟机都联网,只能用小手该时间

date命令将日期设置为2014年6月18日

 ----   date -s 06/18/14

将时间设置为14点20分50秒

 ----   date -s 14:20:50

将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss)

----date 0618141614.30

 

  • 设置主机名  /etc/hosts

10.1.13.103 设置这台机器的主机名为master

10.1.13.104 设置这台机器的主机名为slaver1

10.1.13.105 设置这台机器的主机名为slaver2

 

在10.1.13.103机器上执行如下操作

  1. adduser master
  2. passwd master  提示输入密码和再次确定
  3. 修改主机名  vim /etc/sysconfig/network

  1. 给master用户root权限

chmod +w /etc/sudoers

vim  /etc/sudoers

  1. 重启虚拟机,选择master用户登录

注意:另外两台机器也做同上的操作(名字分别为slaver1slaver2

  • 修改主机映射(三台机器都是一样的操作)
  1. vim  /etc/hosts

把hosts中的内容都删除,然后添加如下

  • 配置静态ip

1、vim /etc/udev/rules.d/70**-net.rules

改完的效果

2、vim /etc/sysconfig/network-scripts/ifcfg-eth0

原来的样子

          修改后的样子

 

  1. 重启网卡

service network restart

成功后,提示如下

 

  1. 剩下的两台机器,做同上操作(ip和mac地址是不一样)

 

  • 配置三台机器之间的免密登录(必须在主机master上操作

ssh-keygen -t rsa  然后四个回车(如果之前配置过免密,需要根据提示出入yes覆盖掉之前的密匙)

ssh-copy-id  master  提示输入密码

ssh-copy-id  slaver1  提示输入密码

ssh-copy-id  slaver2  提示输入密码

 

测试:  ssh  slaver1  就不需要输入密码   然后在exit到当前用户,可以执行下一次测试

  • 下载hadoop压缩包,解压(以下的所有操作都在主机上           进行)  温馨提示:最好在官网下载,src的源码,然后在自己的机器上编译,这样就不会出现找不到jar包的异常
  1. 把hadoop解压到/usr/local/目录下

tar  -zxvf  hadoop-2.8.4.tar.gz  -C /usr/local

  1. 把hadoop-2.8.4改名为hadoop

进入到/usr/local/下执行  

mv  hadoop-2.8.4  hadoop

 

  • 配置hadoop环境变量(也在主机下执行)

vim  /etc/profile

立即让配置文件生效

source  /etc/profile

此时,可以直接使用hadoop指令了

eg:   hadoop version

  • 关闭防火墙(三台机器都要关闭)

service iptables status

service iptables stop(临时关闭,不需要重启虚拟机)

chkconfig iptables off(永久关闭,需要重启机器生效)

  • 修改主机的配置文件

进入到/uer/local/hadoop文件夹

然后mkdir namenode

          mkdir datanode

 mkdir tmp

进入到 /usr/loacal/hadoop/etc/hadoop文件然后如下编辑

  1. vim  hadoop.env.sh

原来

该后

  1. vim core-site.xml

在configuretion中添加

        <property>

           <name>fs.defaultFS</name>

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

        </property>

        <property>

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

           <value>/usr/local/hadoop/tmp</value>

         </property>

效果

 

  1. vim  hdfs-site.xml

  <property>

          <name>dfs.replication</name>

           <value>2</value>

 </property>

  <property>

               <name>dfs.namenode.secondary.http-address</name>

               <value>master:50090</value>

        </property>

 

        <property>

                 <name>dfs.name.dir</name>

                <value>/usr/local/hadoop/namenode</value>

         </property>

         <property>

                 <name>dfs.data.dir</name>                                                       <value>/usr/local/hadoop/datanode</value>

          </property>

效果

  1. vim mapred-site.xml(没有mapred-site.xml但是有一个 mapred-site.xml.template
  2. ,我们可以把名字改一下就可以了)
  1. mv  mapred-site.xml.template mapred-site.xml
  2. vim mapred-site.xml  然后添加

 <property>

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

    <value>yarn</value>

  </property>

效果

  1. yarn-site.xml

<property>

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

            <value>master</value>

</property>

<property>                    <name>yarn.nodemanager.aux-services</name>                                    <value>mapreduce_shuffle</value> 

</property>

<property>                         <name>yarn.log-aggregation-enable</name>                                         <value>true</value> 

</property>

<property>                                                                         <name>yarn.log-aggregation.retain-seconds</name>

 <value>604800</value>

</property>

 <property>                 <name>yarn.nodemanager.resource.memory-mb</name>

   <value>2000</value>

 </property>

<property>

                                         <name>yarn.scheduler.maximum-allocation-mb</name>                                                 <value>2000</value>                                                   

</property>                                                      <property>                                                                 <name>yarn.scheduler.minimum-allocation-mb</name>                                                                         <value>500</value>                                                                           </property>                                                                                 <property>                                                                                         <name>mapreduce.reduce.memory.mb</name>                                                                                                 <value>2000</value>                                                                                                     </property>

 <property>                              <name>mapreduce.map.memory.mb</name>                                      <value>2000</value>                                          </property>

<property>    <name>yarn.nodemanager.vmem-pmem-ratio</name>

     <value>2.1</value>    

   </property>

<property>

 <name>yarn.resourcemanager.address</name>        <value>master:8032</value>

 </property>          

 <property>                <name>yarn.resourcemanager.scheduler.address</name>                    <value>master:8030</value>

</property>                       

<property>                            <name>yarn.resourcemanager.resource-tracker.address</name>                                <value>master:8031</value>                                  </property>

 

效果

 

  1. slaver

vim slavers

master

slaver1

slaver2

效果

  • 下发配置文件到分机上   

下发hadoop到分机

  1. scp -r /usr/local/hadoop root@slaver1:/usr/local/
  2. scp -r /usr/local/hadoop root@slaver2:/usr/local/

   下发环境变量配置文件到分机

配置hadoop环境变量

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

 

  1. scp -r /etc/profile root@slaver1:/etc/
  2. scp -r /etc/profile root@slaver2:/etc/
  • 第一次执行的时候在主机下格式化namenode

hadoop namenode  -format

格式化成功

 

  • 启动hadoop集群
  1. start-all.sh  

  • 关闭集群
  1. stop-all.sh
  • 测试集群是否可用

在主机上输入 jps

显示效果如下:

  1. 访问10.1.13.103:50070

  1. 访问10.1.13.103:8088

  1. 测试mapreduce来实现对pi的计算
  1. 进入到/usr/local/hoaddop/shared/hadoop/mapreduce

2、执行

    hadoop jar hadoop-mapreduce-examples-2.8.4.jar  pi 20  50

 

恭喜你成功了:如果你遇到如下问题

1、启动时提示文件不是安全的,可以做如下操作

                  到hadoop的bin目录下

执行:./hadoop  dfsadmin  -safemode leave命令。

 

  1. 如果输入hadoop没有提示,那么可以执行  source  /etc/profile
  2. 如果还有其他奇葩问题,自行百度

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值