IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Centos7中完全分布式hadoop-2.7.3集群的安装与配置 -> 正文阅读

[大数据]Centos7中完全分布式hadoop-2.7.3集群的安装与配置

一、安装操作系统并配置IP

  1. 在VMware虚拟机中安装三台Centos7,分别作为Master,Slave1,Slave2,并配置root用户。
  2. 配置三台机器的静态IP地址,本次示例IP分别为:
    Master: 192.168.157.128
    Slave1: 192.168.157.129
    Slave2: 192.168.157.130
    (关于设置静态ip连不上网的问题,https://blog.csdn.net/tearofthemyth/article/details/112800999 Mac VMware Fusion CentOS7配置静态IP)
  3. 修改主机名及配置hosts文件(三台机器)
    hostnamectl set-hostname master
    hostnamectl set-hostname slave1
    hostnamectl set-hostname slave2

    vi /etc/hosts
    192.168.157.128 master master.root
    192.168.157.129 slave1 slave1.root
    192.168.157.130 slave2 slave2.root

二、关闭防火墙(三台机器)

systemctl stop firewalld #关闭防火墙
systemctl status firewalld #查看防火墙状态

三、配置时间同步

  1. 首先配置好Master时区,在Master上输入命令tzselect,选择时区,依次按提示输入5,9,1,1
  2. yum install –y ntp #三台机器上安装ntp
  3. vi /etc/ntp.conf #Master上修改配置文件
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
  4. /bin/systemctl restart ntpd.service #Master上重启ntp服务
  5. ntpdate master #在Slave1、Slave2上输入命令

四、配置SSH免密

  1. 在Master上执行以下操作:
    cd ~
    ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
    cd .ssh/

    cat id_dsa.pub >> authorized_keys #
    ssh master #ssh内环
    exit #登出
    ssh master #再次登陆ssh
    exit
  2. 在Slave1、Slave2上分别执行以下操作:
    scp master:~/.ssh/id_dsa.pub ./master_dsa.pub
    cat master_dsa.pub >> authorized_keys
  3. 在Master上执行以下操作来验证免密登录:
    ssh slave1
    exit
    ssh slave2
    exit

五、安装JDK

  1. 首先,在三台机器上创建java工作目录
    mkdir -p /usr/java #创建java工作目录(三台机器)
  2. 在三台机器上配置jdk
    以下操作仅在master上进行:
    tar -zxvf /home/lan/jdk-8u171-linux-x64.tar.gz -C /usr/java #解压安装包
    cd /usr/java
    cd jdk1.8.0.171/
    pwd
    vi /etc/profile #修改环境变量配置文件profile
    在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 下面添加:
    /usr/java/jdk1.8.0_281

    #java
    export JAVA_HOME=/usr/java/jdk1.8.0_171
    export CLASSPATH=$ JAVA_HOME/lib/
    export PATH=$ PATH:$JAVA_HOME/bin
    export PATH JAVA_HOME CLASSPATH

    完成后wq,退出保存,之后再执行:
    scp -r /etc/profile slave1:/etc/ #分发环境变量至Slave1、Slave2
    scp -r /etc/profile slave2:/etc/
    (这里分发环境变量就是为了给slave1和slave2 都配置jdk,但是要记住一定要给slave1和slave2也下载jdk,而不仅仅是给它们分发环境变量。否则slave1、slave2中的jdk配置无效,下面的zookeeper也会出错。)
  3. source /etc/profile #使环境变量生效(三台机器)
  4. java -version #查看java版本号
    这里出现的java版本号有可能是虚拟机自带的jdk,需要修改成我们自己下载的jdk。
    https://blog.csdn.net/dlc_996/article/details/104414585
    在这里插入图片描述

六、Zookeeper安装

  1. 首先,在三台机器上创建zookeeper工作目录
    mkdir -p /usr/zookeeper #创建zookeeper工作目录(三台机器)
  2. 以下操作仅在Master上操作
    1)tar -zxvf /home/lan/zookeeper-3.4.10.tar.gz -C /usr/zookeeper #解压
    2)cd /usr/zookeeper/zookeeper-3.4.10/conf/
    scp zoo_sample.cfg zoo.cfg
    #拷贝zoo_sample.cfg并命名为zoo.cfg
    3)接下来修改zoo.cft文件(画下划线的为需要修改或增加的):
    #The number of milliseconds of each tick
    tickTime=2000
    #The number of ticks that the initial
    #synchronization phase can take
    initLimit=10
    #The number of ticks that can pass between
    #sending a request and getting an acknowledgement
    syncLimit=5
    #the directory where the snapshot is stored.
    #do not use /tmp for storage, /tmp here is just
    #example sakes.
    dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
    #the port at which the clients will connect
    clientPort=2181
    #the maximum number of client connections.
    #increase this if you need to handle more clients
    #maxClientCnxns=60
    #

    #Be sure to read the maintenance section of the
    #administrator guide before turning on autopurge.

    #
    #http://zookeeper.apache.org/doc/current/zookeeperAdmin.html
    #sc_maintenance
    #

    #The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    #Purge task interval in hours
    #Set to “0” to disable auto purge feature
    #autopurge.purgeInterval=1
    dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
    server.1=master:2888:3888
    server.2=slave1:2888:3888
    server.3=slave2:2888:3888

    4)之后返回zookeeper-3.4.10文件夹,创建zkdata和zkdatalog两个文件夹。
    cd …
    mkdir zkdata
    mkdir zkdatalog

    5)进入zkdata文件夹,创建文件myid,用于表示是几号服务器。master主机中,设置服务器id为1:
    vi myid
    1
    6)接下来修改环境变量文件,在java增加的下边添加:
    #zookeeper
    export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
    export PATH=$ PATH:$ZOOKEEPER_HOME/bin

    7)修改后,分发到Slave1和Slave2上:
    scp -r /etc/profile slave1:/etc/
    scp -r /etc/profile slave2:/etc/
    scp -r /usr/zookeeper slave1:/usr/zookeeper
    scp -r /usr/zookeeper slave2:/usr/zookeeper
  3. 使三台机器的环境变量生效
    source /etc/profile #在三台机器上输入命令,使环境变量生效。
  4. 之后需要修改Slave1和Slave2的myid文件
    cd /usr/zookeeper/zookeeper-3.4.10/zkdata #在Slave1上操作
    vi myid
    2
    cd /usr/zookeeper/zookeeper-3.4.10/zkdata #在Slave2上操作
    vi myid
    3
  5. 启动zookeeper集群(三台机器)
    cd /usr/zookeeper/zookeeper-3.4.10/
    bin/zkServer.sh start
    bin/zkServer.sh status

七、Hadoop安装

1.为Master创建工作目录,并解压
mkdir -p /usr/hadoop
tar -zxvf /home/lan/hadoop-2.7.3.tar.gz -C /usr/hadoop

2.修改环境变量文件:
vi /etc/profile
在zookeeper下增加以下内容:
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$ CLASSPATH:$ HADOOP_HOME/lib
export PATH=$ PATH:$HADOOP_HOME/bin

3.配置hadoop组件
1)cd /usr/hadoop/hadoop-2.7.3/etc/hadoop
2)vi hadoop-env.sh #编辑hadoop-env.sh文件
#The jsvc implementation to use. Jsvc is required to run secure datanodes
export JAVA_HOME=/usr/java/jdk1.8.0_171
#that bind to privileged ports to provide authentication of data transfer
#protocol. Jsvc is not required if SASL is configured for authentication of
#data transfer protocol using non-privileged ports.
#export JSVC_HOME=${JSVC_HOME}

3)vi core-site.xml #编辑core-site.xml文件

```
<configuration>
<property>
  <name>fs.default.name</name>
   <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
   <value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for orher temporary directories</description>
</property>
<property>
  <name>io.file.buffer.size</name>
   <value>131072</value>
</property>
<property>
  <name>fs.checkpoint.perio</name>
   <value>60</value>
</property>
<property>
  <name>fs.checkpoint.size</name>
   <value>67108864</value>
</property>
</configuration>
```

4)vim yarn-site.xml #编辑yarn-site.xml文件

```
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
  <value>master:18040</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>master:18030</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>master:18088</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>master:18025</value>
</property>
<property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>master:18141</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- Site specific YARN configuration properties -->
</configuration>

```

5)vi hdfs-site.xml #编辑hdfs-site.xml文件

```
<configuration>
<property>
 <name>dfs.replication</name>
  <value>2</value>
 </property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
  <final>ture</final>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
  <final>ture</final>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:9001</value>
</property>
<property>
  <name>dfs.webhdfs.enabled</name>
  <value>ture</value>
</property>
<property>
  <name>dfs.permissions</name>
  <value>flase</value>
</property>
</configuration>

```

6)由于Hadoop没有mapred-site.xml文件,需要拷贝mapred-site.xml.template后再修改mapred-site.xml文件内容。
cp mapred-site.xml.template mapred-site.xml #拷贝mapred-site.xml文件
vim mapred-site.xml #编辑mapred-site.xml文件

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>

7)vim slaves #编辑slaves文件
master
slave1
slave2

8)vi master #创建并编辑master文件
master

4.以上在Master上已经搭建好hadoop,接下来分发到Slave1和Slave2上:
scp -r /etc/profile slave1:/etc/ #分发环境变量文件
scp -r /etc/profile slave2:/etc/
scp -r /usr/hadoop slave1:/usr/ #分发hadoop目录
scp -r /usr/hadoop slave2:/usr/
5.使环境变量生效
三台机器分别source /etc/profile
至此,三台机器hadoop已安装完毕。
6.在Master上格式化Namenode
cd /usr/hadoop/hadoop-2.7.3/etc/hadoop
hadoop namenode –format

当出现“Exiting with status 0”的时候,表明格式化成功。之后需要开启集群:
cd /usr/hadoop/hadoop-2.7.3/
sbin/start-all.sh

master启动情况:master
slave1、2启动情况:
在这里插入图片描述

这里我遇到的错误:

错误1:slave1、2节点没有nodemanager

  1. 可能是因为yarn-site.xml文件中配置错误(之前我把mapreduce打成了mapseduce)
  2. 也有可能是因为:
    在这里插入图片描述

错误2:访问50070界面的DataNode information没有从节点

是因为NameNode的9000端口没有打开。使用:
firewall-cmd --zone=public --add-port=9000/tcp --permanent打开9000端口。
9000端口已开放:
在这里插入图片描述
参考知识1:
在这里插入图片描述
参考知识2:
在这里插入图片描述
访问50070界面,配置成功:
在这里插入图片描述

错误3:无法访问8080界面

配置文件不同,访问的端口也不同,端口地址可以如下查看,我应该是访问8088端口。
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:45:16  更:2021-07-25 11:47:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/30 21:30:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码