Hadoop2.7.6集群搭建

版权声明:未经同意,不得转载。 https://blog.csdn.net/qq_36235275/article/details/81253111

首先,搭建的准备工作:Linux(CentOS)、xshell、至少8G内存。

创建几个虚拟机,一主多从,每一个创建的时候,在最后安装前的设置里面,设置网络和主机名的两个地方,一个是IPv4那里,设置好IP地址,端口号和网关;还有一个是在常规那里勾选上第一个。每一个创建完,都要检测是否能够联网。同时检查一下网卡设置,命令为:vi /etc/sysconfig/network-scripts/ifcfg-ens33

接着在xshell中连接虚拟机,连接成功后,就再也不用管虚拟机了,开在那边就好。创建新的连接,常规设置名称、主机名,还有用户身份验证和虚拟机该用户保持一致。

连接后,出现如下图情况,即为连接成功。

以上这些基本准备工作做完后,接下来就开始正式的介绍集群搭建了。

一、首先安装一些方便集群搭建的一些安装包:

1.第一个是openssh的安装,因为主从节点之间需要文件的传递,以及文件的上传等,都依赖这个工具

[root@slave3 ~]# yum -y install openssh-clients

2.第二个是文件上传和下载的工具,可以在xshell内部直接下载外部资源,其实这里下载的资源是CentOS一个插件库里面的资源

[root@slave3 ~]# yum -y install lrzsz

3.传输文件的时候, 可能会遭遇到系统防火墙的干扰,因此我们需要关闭防火墙

[root@slave3 ~]# systemctl status firewalld    //查看防火墙状态
[root@slave3 ~]# systemctl stop firewalld      //关闭防火墙
[root@slave3 ~]# systemctl disable firewalld   //禁用防火墙,防止自动开启

还有一些小功能的,需要的自己百度安装:例如时间同步工具ntp、网络资源下载工具wget等

二、配置SSH免密登陆

以下操作,多台主机一起执行:

首先修改hosts文件,作用相当于一个别名

[root@master ~]# vi /etc/hosts
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.114.114 master
192.168.114.115 slave1
192.168.114.116 slave2
192.168.114.117 slave3

然后在各个主机都创建一个.ssh文件夹

[root@slave3 ~]# ssh slave3    //别的主机同理,改个名字即可
[root@slave3 ~]# cd ~/.ssh   //进入ssh目录
[root@slave3 .ssh]# ssh-keygen -t rsa -P ''  //产生公钥和私钥

接着一直按回车,接着各个主机都有了私钥和公钥。接着将各个主机的公钥放到authorized_keys文件中

[root@slave3 .ssh]# cp id_rsa.pub authorized_keys

然后将各个主机的公钥追加到master中

cat ~/.ssh/id_rsa.pub | ssh root@master 'cat >> ~/.ssh/authorized_keys'

最后连接测试各个主机之间的联通。

[root@master ~]# ssh master
[root@master ~]# ssh slave1
[root@slave1 ~]# ssh master
[root@master ~]# ssh slave2
[root@slave2 ~]# ssh master
[root@master ~]# ssh slave3
[root@slave3 ~]# ssh master

三、Java环境的安装和配置(所有主机同样操作)

下载jdk 下载地址:http://www.oracle.com/technetwork/java/javase/archive139210.html

1.下载安装前,首先检查虚拟机系统内是否有残留的jdk等,如果有,要先清理,再安装

2.安装jdk

①创建两个目录,为了之后存放jdk和hadoop的安装包做准备

[root@master ~]# mkdir -p /opt/SoftWare/Java/
[root@master ~]# mkdir -p /opt/SoftWare/Hadoop/

②上传jdk安装包,并解压

[root@master ~]# cd /opt/SoftWare/Java     //使用rz命令从windows主机上传jdk压缩包到master节点
[root@master Java]# rz
[root@master Java]# tar ‐zxvf jdk‐8u172‐linux‐x64.tar.gz

③接下来开始配置环境变量

[root@master Java]# vi /etc/profile   //写在该配置文件最后
export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_172
export JRE_HOME=/opt/SoftWare/Java/jdk1.8.0_172/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

④配置完千万要source一下,否贼你的配置将不起效果,出现以下内容,则说明你的配置正确了。

[root@master Java]# source /etc/profile
[root@master Java]# java ‐version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

四、Hadoop的安装和配置(仅在master执行,后面会远程复制给其他从节点)

①上传hadoop安装包,并解压

[root@slave3 Hadoop]# tar -zxvf hadoop-2.7.6.tar.gz 

②同样,创建几个目录,方便存储信息,不过这里即使你不创建,系统也会自动创建

[root@slave3 hadoop-2.7.6]# mkdir tmp
[root@slave3 hadoop-2.7.6]# mkdir logs
[root@slave3 hadoop-2.7.6]# mkdir -p hdfs/name
[root@slave3 hadoop-2.7.6]# mkdir -p hdfs/data

③接下来就是关于hadoop的配置文件的修改了,将这两个路径下的文件的JAVA_HOME都改成如下路径

[root@slave1 hadoop]# vi hadoop-env.sh 
[root@slave3 hadoop]# vi yarn-env.sh
export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_172

④编辑slaves,将master的所有节点都写在这里,如果下次还有节点加入,直接添加,添加详情如下

[root@slave3 hadoop]# vi slaves


slave1
slave2
slave3   

⑤修改core-site.xml文件,这是核心文件core,很重要

[root@slave3 hadoop-2.7.6]# vi etc/hadoop/core-site.xml
<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/SoftWare/Hadoop/hadoop-2.7.6/tmp</value>
</property>
<property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
</property>
</configuration>

⑥修改hdfs-site.xml文件,这是HDFS的配置文件

[root@slave3 hadoop-2.7.6]# vi etc/hadoop/hdfs-site.xml

<configuration>
<property>
       <name>dfs.namenode.name.dir</name> 
      <value>file:/opt/SoftWare/Hadoop/hadoop-2.7.6/hdfs/name</value>
</property>
<property>
       <name>dfs.datanode.data.dir</name>   
    <value>file:/opt/SoftWare/Hadoop/hadoop-2.7.6/hdfs/data</value>
</property>
<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.namenode.secondary.https-address</name>
        <value>192.168.10.250:50091</value>
</property>
<property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
</property>

</configuration>

⑦修改yarn-site.xml文件

[root@slave3 hadoop-2.7.6]# vi etc/hadoop/yarn-site.xml 

<configuration>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</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>
<property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
</property>
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
</property>
<property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
</property>


</configuration>

⑧修改mapred-site.xml文件,需要复制创建

[root@slave3 hadoop-2.7.6]# cp etc/hadoop/mapred-site.xml.template  etc/hadoop/mapred-site.xml
[root@slave3 hadoop-2.7.6]# vim etc/hadoop/mapred-site.xml

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19880</value>
</property>


</configuration>

之前说过,以上操作只要在master里面操作即可,然后复制到各个从节点,使用以下命令,其他类似

[root@master hadoop‐2.7.6]# scp ‐r /opt/SoftWare/Hadoop root@slave3:/opt/SoftWare/

⑨修改环境变量,每一个节点都需要添加以下hadoop的环境变量

[root@master hadoop‐2.7.6]# vi /etc/profile
#添加以下内容
export HADOOP_HOME=/opt/SoftWare/Hadoop/hadoop‐2.7.6
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
[root@master hadoop‐2.7.6]# source /etc/profile  //上文讲过,修改环境变量需要source 或者.+空格+/etc/profile

⑩格式化Hadoop,当你格式化后能够看到下面的successfully formatted时,即代表格式化成功了

[root@master hadoop‐2.7.5]# bin/hdfs namenode ‐format

18/07/27 22:54:44 INFO util.GSet: capacity      = 2^15 = 32768 entries
18/07/27 22:54:44 INFO namenode.FSImage: Allocated new BlockPoolId: BP-1867261898-192.168.114.117-1532703284780
18/07/27 22:54:44 INFO common.Storage: Storage directory /opt/SoftWare/Hadoop/hadoop-2.7.6/hdfs/name has been successfully formatted.
18/07/27 22:54:45 INFO namenode.FSImageFormatProtobuf: Saving image file /opt/SoftWare/Hadoop/hadoop-2.7.6/hdfs/name/current/fsimage.ckpt_0000000000000000000 using no compression
18/07/27 22:54:45 INFO namenode.FSImageFormatProtobuf: Image file /opt/SoftWare/Hadoop/hadoop-2.7.6/hdfs/name/current/fsimage.ckpt_0000000000000000000 of size 321 bytes saved in 0 seconds.
18/07/27 22:54:45 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
18/07/27 22:54:45 INFO util.ExitUtil: Exiting with status 0
18/07/27 22:54:45 INFO namenode.NameNode: SHUTDOWN_MSG: 

接着就是令人兴奋地时候了,可以启动集群啦!!

方法一:sbin/start‐dfs.sh
方法二:start‐all.sh  //以前的,现在不推荐使用

#然后启动YARN
[root@master hadoop‐2.7.5]# sbin/start‐yarn.sh

显示如下数据,则表明成功一半了,但距离成功就一步之遥了,输入jps查看状态,如果如下就几乎成功了,还需要去检测你的50070和8088网页是否可以打开。如果都打开了,那恭喜你!成功了!!

[root@master hadoop‐2.7.6]# jps

13696 NameNode
14037 ResourceManager
14229 Jps
13887 SecondaryNameNode

猜你喜欢

转载自blog.csdn.net/qq_36235275/article/details/81253111