Linux系统搭建Hadoop集群

Linux系统搭建Hadoop集群

一、准备工作

  1. 安装包下载:
    在这里插入图片描述
    链接: https://pan.baidu.com/s/1Co7parw2Y7AiW321WIFsFw
    提取码: nscs
  2. 使用Oracle VM VirtualBox 创建Linux虚拟机(教程如下):
    https://blog.csdn.net/and52696686/article/details/106837909
    将IP地址设为:192.168.56.131
    设置主机名:将主机名设为hadoop-01
hostnamectl set-hostname hadoop-01  #命名会立即生效且重启也生效

二、安装Hadoop(单机模式)

  1. 根目录下创建目录software:madir software
    切换至software,将下载的安装包拖拽至此目录下
    在这里插入图片描述
  2. 解压
    ①:解压jdk安装包至opt目录并重命名为java8
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt
cd  /opt
mv  jdk1.8.0_221/ java8

配置环境变量,jdk相关安装步骤见:https://blog.csdn.net/and52696686/article/details/106822788

②:解压hadoop安装包至opt目录并重命名为hadoop2.6.0

tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C  /opt
cd /opt
mv hadoop-2.6.0-cdh5.14.2/ hadoop2.6.0
  1. 设置免密登录
cd
ssh-keygen -t rsa -P ""
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
  1. 配置hadoop相关文件
    opt目录下,切换至hadoop2.6.0/etc/hadoop目录:
 cd hadoop2.6.0/etc/hadoop
 ll

配置下图中个6文件:
在这里插入图片描述
①:vi hadoop-env.sh
修改下图中JAVA_HOME环境变量路径:
在这里插入图片描述
将红框位置JAVA_HOME修改为本机安装jdk的路径
在这里插入图片描述
②:vi core-site.xml
插入以下代码:

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.56.131:9000</value>
</property>

<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop2.6.0/tmp</value>
</property>

<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
</property>

<property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
</property>

修改后如下图:

在这里插入图片描述
③:vi hdfs-site.xml
插入以下代码:

<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>

<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop-01:50090</value>
</property>

修改后如下图:
在这里插入图片描述
④:将 mapred-site.xml.template 重命名为 mapred-site.xml,并进行编辑,

mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

插入以下代码:

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>HostName:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>HostName:19888</value>
</property>

修改后如下图:
在这里插入图片描述
⑤:vi yarn-site.xml
插入以下代码:

<!-- reducer获取数据方式 -->
<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>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>HostName</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

修改后如下图:
在这里插入图片描述
⑥:vi slaves 将内容修改为本机主机名
在这里插入图片描述

  1. 配置hadoop环境变量
    输入:vi /etc/profile

在末行插入以下代码:

export HADOOP_HOME=/opt/hadoop2.6.0
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

如下图:
在这里插入图片描述
使之立即生效:source /etc/profile

  1. 格式化HDFS
hadoop namenode -format

若显示信息都为INFO级别无报错信息,则格式化执行成功,如下图:
在这里插入图片描述
在这里插入图片描述
:若之前已格式化过需要删除hadoop2.6.0目录下tmp文件夹

rm -rf tmp

三、启动和关闭

  • 启动hdfs和yarn:start-all.sh
  • 关闭hdfs和yarn:stop-all.sh
  • 启动hdfs:start-dfs.sh
  • 关闭hdfs:stop-dfs.sh
  • 启动yarn:start-yarn.sh
  • 关闭yarn:stop-yarn.sh
  • 启动历史服务:mr-jobhistory-daemon.sh start historyserver
  • 关闭历史服务:mr-jobhistory-daemon.sh stop historyserver

四、测试hadoop是否创建成功

  1. 启动hdfs、yarn、历史服务
start-all.sh
mr-jobhistory-daemon.sh start historyserver

输入:jps
出现以下进程信息说明启动成功
在这里插入图片描述

  1. 网页端测试:
    ①:.输入:http://192.168.56.131:50070   若能出现如下页面说明hdfs启动成功

在这里插入图片描述
②:.输入:http://192.168.56.131:8088   若能出现如下页面说明yarn启动成功
在这里插入图片描述
③:.输入:http://192.168.56.131:19888:   若能出现如下页面说明历史服务启动成功
在这里插入图片描述

  1. 错误信息解决
    启动hadoop: start-all.sh 时会提示警告信息:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

如下图所示:
在这里插入图片描述
解决方法:

hadoop-native-64-2.6.0.tar 安装包解压安装到hadoop2.6.0安装目录的lib目录和lib目录下的native目录即可(解压安装两次)
执行以下代码:

cd /software
tar -xvf hadoop-native-64-2.6.0.tar -C /opt/hadoop2.6.0/lib
tar -xvf hadoop-native-64-2.6.0.tar -C /opt/hadoop2.6.0/lib/native/
cd /opt/hadoop2.6.0/
start-all.sh

解压安装后再启动hadoop并无报错警告,如下图:
在这里插入图片描述

五、搭建hadoop集群:(完全分布式)

  1. 以hadoop-01为主机复制两台虚拟机hadoop-02、hadoop-03,创建hadoop集群(hadoop-01虚拟机需先进行关闭才能复制)

在这里插入图片描述
在这里插入图片描述

  1. 分别启动三台虚拟机,启动后暂时不要连接MobaXter,对于复制的两台虚拟机hadoop-02、hadoop-03需重新配置ip地址主机名,不然会冲突
    对于子节点hadoop-02
    输入:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    将hadoop-2 的ip地址修改为:192.168.56.132
    在这里插入图片描述
    重启网络:systemctl restart network
    修改主机名:hostnamectl set-hostname hadoop-02
    重启机器:reboot
    对于子节点hadoop-03需重复上述操作,将ip地址改为:192.168.56.133
    主机名改为:hadoop-03
  2. 三台虚拟机分别连接MobaXter
  3. 修改主机列表:
    hadoop-01为操作对象
vi /etc/hosts

添加另外两台虚拟机的ip地址,主机名,如下图:
在这里插入图片描述
另外两台虚拟机都需要分别进行上述操作

  1. 搭建集群,配置免密登录
    hadoop-01为操作对象
    ①:由于之前创建hadoop-01主机时配置过免密登录,需要先删除私钥文件,再回到家目录
cd /root/.ssh
rm -rf id_rsa
cd 

②:生成私钥,需连按两次回车键:

ssh-keygen -t rsa -P ""

如下图:
在这里插入图片描述
③:复制私钥到公钥:

cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys

④:.配置与其他虚拟机的远程免密登录:(本机除外,集群其他节点都需要分别添加一次)

ssh-copy-id -i .ssh/id_rsa.pub -p22 root@hadoop-02
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@hadoop-03

会提示是否要添加(yes/no),输入yes
再输入相应虚拟机的密码,
会提示密钥添加1,Number of key(s) added: 1
如下图所示:
在这里插入图片描述
至此主机hadoop-01远程免密登录配置完成,对于虚拟机hadoop-02、hadoop-03需分别进行上述操作
:若root@虚拟名报错,提示找不到名称,可以试试roo@ip地址
⑤:测试连接,虚拟机相互切换,若虚拟机间切换不需要输入密码直接可以切换,说明配置成功:
切换虚拟机代码:

ssh -p 22 root@hadoop-02
ssh -p 22 root@hadoop-01
ssh -p 22 root@hadoop-03
ssh -p 22 root@hadoop-01
ssh -p 22 root@hadoop-03
ssh -p 22 root@hadoop-02
ssh -p 22 root@hadoop-03
ssh -p 22 root@hadoop-01

如下图所示:
在这里插入图片描述

  1. 修改haoop的配置文件
    1)以hadoop-01为操作对象
    ①:进入hadoop安装目录下的etc目录下的hadoop目录:
 cd /opt/hadoop2.6.0/etc/hadoop

②:修改hdfs配置文件,将dfs.replication属性的值改为集群的机器数目;
将dfs.namenode.secondary.http-address属性的值改为一个子节点的主机名:

 vi hdfs-site.xml

在这里插入图片描述
③:修改slaves文件,添加所有节点的主机名:

vi slaves

如下图:
在这里插入图片描述
④:分别远程发送文件hdfs-site.xmlslaves至子节点hadoop-02、hadoop-03(由于其他虚拟机已存在该文件,也会起覆盖效果)

scp hdfs-site.xml root@hadoop-02:/opt/hadoop2.6.0/etc/hadoop/hdfs-site.xml
hdfs-site.xml
scp hdfs-site.xml root@hadoop-03:/opt/hadoop2.6.0/etc/hadoop/hdfs-site.xml
hdfs-site.xml
scp slaves root@hadoop-02:/opt/hadoop2.6.0/etc/hadoop/slaves
slaves
scp slaves root@hadoop-03:/opt/hadoop2.6.0/etc/hadoop/slaves
slaves 

如下图所示:
在这里插入图片描述
2)以hadoop-02为操作对象
①:进入hadoop安装目录下的etc目录下的hadoop目录:

 cd /opt/hadoop2.6.0/etc/hadoop

②:编辑mapred-site.xml文件,将下图中红框位置主机名更改为本机主机名

vi mapred-site.xml

在这里插入图片描述
对于虚拟机hadoop-03需重复上述操作

  1. 格式化
    由于hadoop-01虚拟机之前启动过hdfs、yarn服务,hadoop的安装目录hadoop2.6.0目录下的存放临时文件目录tmp已产生信息,需要删除,复制过的虚拟机hadoop-02、hadoop-03也都需要进行删除
cd /opt/hadoop2.6.0/
rm -rf tmp
hadoop namenode -format

虚拟机haoop-02、hadoop-03需重复上述操作

  1. 启动测试
    ①:对于虚拟机hadoop-01:
start-all.sh
jps

出现以下进程信息说明主机配置成功
在这里插入图片描述
②:对于hadoop-02,不需要启动,直接输入jps
出现以下进程信息说明子节点配置成功
在这里插入图片描述
SecondaryNameNode为备份节点
③:对于hadoop-03,不需要启动,直接输入jps
出现以下进程信息说明子节点配置成功
在这里插入图片描述
④:进行上文网页测试

至此hadoop集群搭建完成!

猜你喜欢

转载自blog.csdn.net/and52696686/article/details/106959734