Centos7上搭建hadoop2.7.3分布式集群环境实验记录

本文详细记录了在Centos7系统中搭建Hadoop2.7.3分布式集群的全过程,包括配置三台虚拟机的主机名、SSH免密登录、安装JDK1.7、安装Hadoop并进行集群配置,以及解决启动过程中的错误问题,如数据节点启动失败等。

              Centos7上搭建hadoop2.7分布式集群环境实验记录

1.准备三台虚拟机。

2.修改三台虚拟机的主机名分别为master,slave01,slave02,然后修改每台机器的/etc/hosts
文件,清空原来的内容,添加如下内容:

172.16.136.227  master

172.16.136.229 slave01

172.16.136.228 slave02

 

3.配置ssh免密登陆和访问集群机器

 (1)所有机器上安装ssh服务器

yum -y install openssh-server

 (2)生成公钥

ssh-keygen -t rsa -P ""

cat $HOME/.ssh/id_rsa.pub >>$HOME/.ssh/authorized_keys

(3)发送公钥

scp ~/.ssh/id_rsa.pub root@slave01:/home/

scp ~/.ssh/id_rsa.pub root@slave02:/home/

(4)在slave01和slave02上执行如下命令。

cat /home/id_rsa.pub >>~/.ssh/authorized_keys

(注,若在这一步时提示不存在.ssh目录,就自己在根目录下创建一个.ssh目录:mkdir .ssh)

(5)测试

ssh  slave01

 

4.安装jdk(所有机器都要装,本实验装的是1.7,如果接下来你还要装spark的话,请装jdk1.8,不然可能会出现兼容性的问题)

(1)在/usr/目录下创建java目录

mkdir /usr/java

cd /usr/java

(2)把下载好的安装目录上传到这个目录下,然后安装,

tar -zxvf jdk-7u79-linux-x64.tar.gz

(3)设置环境变量

 vim ~/.bashrc

export JAVA_HOME=/usr/java/jdk1.7.0_79

 

 vim /etc/profile

在profile中添加如下内容:

#set java environment

JAVA_HOME=/usr/java/jdk1.7.0_79

JRE_HOME=/usr/java/jdk1.7.0_79/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

(4) 让配置生效

source /etc/profile

source ~/.bashrc

(5)验证

java -version

 

 5.安装hadoop,先在master主机上做安装Hadoop,暂时不需要在slave01,slave02主机上安装Hadoop.稍后会把master配置好的Hadoop发送给slave01,slave02.在master主机执行下列操作:

  (1)把下载好的安装包hadoop-2.7.3.tar.gz上传到/usr/local目录,然后解压安装

  tar-zxvf   hadoop-2.7.3.tar.gz

(2) 将文件夹名改为hadoop

mv ./hadoop-2.7.3/ ./hadoop

(3)编辑~/.bashrc文件

vi ~/.bashrc

添加如下内容:

export HADOOP_HOME=/usr/local/hadoop

exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

更新

source ~/.bashrc

 

6.hadoop集群配置

在master主机下执行

cd /usr/local/hadoop/etc/hadoop/

1)修改slaves
这里把DataNode的主机名写入该文件,每行一个。这里让master节点主机仅作为NameNode使用。

slave01

slave02

 (2) 修改core-site.xml

 <configuration>

     <property>

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

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

         <description>Abase for other temporarydirectories.</description>

     </property>

     <property>

         <name>fs.defaultFS</name>

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

     </property>

 </configuration>

(3) 修改hdfs-site.xml:

  <configuration>

    <property>

       <name>dfs.replication</name>

       <value>3</value>

    </property>:
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/dfs/data</value>
    </property>
    <property>
       <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>

    </configuration>

 

(4) 修改mapred-site.xml(复制mapred-site.xml.template,再修改文件名)

  直接执行如下命令即可完成复制

  cp mapred-site.xml.templatemapred-site.xml

  在修改mapred-site.xml文件:vim mapred-site.xml

<configuration>

    <property>

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

       <value>yarn</value>

    </property>

  </configuration>

 

(5) 修改yarn-site.xml

 <configuration>

  <!-- Site specific YARNconfiguration properties -->

      <property>

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

         <value>mapreduce_shuffle</value>

      </property>

      <property>

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

         <value>master</value>

      </property>

  </configuration>

 

(6)配置好后,将 master 上的/usr/local/hadoop 文件夹复制到各个节点上。之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 master 节点主机上执行:

cd /usr/local/

$rm -rf ./hadoop/tmp   # 删除临时文件

$rm -rf ./hadoop/logs/*   # 删除日志文件(这两步删除操作在本实验中不需要)

$tar -zcf ~/hadoop.master.tar.gz ./hadoop(把hadoop目录压缩到hadoop.master.tar.gz文件中)

$cd ~

$scp ./hadoop.master.tar.gz slave01:/home(通过scp命令把刚刚压缩的文件发过去)

$scp ./hadoop.master.tar.gz slave02:/home

 

(7) 在slave01,slave02节点上执行:

$sudo rm -rf /usr/local/hadoop/(若已经有hadoop目录的话,就把它删除)

$sudo tar -zxf /home/hadoop.master.tar.gz -C /usr/local

$sudo chown -R hadoop /usr/local/hadoop(这一步是在用hadoop时用来获取权限的,本实验用的是root用户,不需要)

 

 

7.启动集群

格式化主节点:hdfs namenode -format

启动:start-all.sh

查看节点:jps

错误记录1:查看的时候遇到了一个错误,datanode,启动不了,弄了好久,最后发现是hdfs-site.xml有一个单词少了一个字母,当时在master节点改过来了,却忘记在slave01和slave02改过来,我觉得这是跟我当时做这个的时候心情烦躁,所以注意力不集中的导致的。最后是第二天早上过来查看slave01和slave02的日志才发现的。这就告诉我们做实验的时候,注意力一定要集中,还有出了错误一定要首先去看日志找错误原因。

错误记录2:错误一解决了之后,又出现了一个错误,slave01节点的datanode无法启动,原因是格式化太多次,id不同步导致的,删除dfs下data的所有文件然后重新格式化和启动集群即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值