世界杯门票_托马斯穆勒世界杯进球数 - noh16.com

世界杯门票_托马斯穆勒世界杯进球数 - noh16.com

shape
  • Home
  • 乌拉圭世界杯冠军
  • 搭建Hadoop集群(超详细版)

搭建Hadoop集群(超详细版)

  • 2025-05-27 03:22:26
  • admin

用三台云服务器搭建hadoop完全分布式集群

硬件准备集群配置集群规划Hadoop、Zookeeper、Java、CentOS版本

基础环境配置关闭防火墙修改主机名主机映射时间同步查看主机时间选择时区时间同步协议NTP

定时任务crontab配置ssh免密

安装jdk创建安装目录和软件包存放目录修改环境变量:查看java版本,确认安装成功:

Zookeeper安装安装Zookeeper:配置系统环境变量:标识节点启动集群

Hadoop安装修改hadoop-env.sh修改yarn-env.sh修改主要配置修改core-site.xml修改hdfs-site.xml修改yarn-site.xml修改mapred-site.xml修改slaves

启动集群启动Zookeeper初始化NameNode初始化HA状态启动HDFS启动YARN查看集群启动HDFS查看集群启动YARN后查看集群

硬件准备

集群配置

本次利用云服务器搭建Hadoop集群, 在开始之前,你需要3台云服务器,可以在同一家购买也可以在不同家购买。此次教程采用百度云产品,可以换不同账号新手免费试用几个月,具体配置如下:

服务器名称配置磁盘容量master2cpu 内存4GB40Gslave11cpu 内存2GB60Gslave21cpu 内存2GB60G

集群规划

服务器IP180.76.231.240180.76.53.4106.12.160.115主机名masterslave1slave2NameNode是否否SecondaryManager是否否DateNode是是是RecourceManager是否否Nodemanager是是是

Hadoop、Zookeeper、Java、CentOS版本

HadoopZookeeperJavaCentOS2.7.73.4.141.8.0_1718.4 x86_64(64bit)

基础环境配置

关闭防火墙

systemctl stop firewalld

systemctl status firewalld

修改主机名

hostnamectl set-hostname master

hostname

主机映射

3个虚拟机均需要修改hosts文件

vi /etc/hosts

使其生效

source /etc/hosts

注意,因为是云服务器,会有两个ip,一个是内网IP,一个是外网IP,我们在设置hosts时,对于要设置的服务器,IP为内网,而对于其他服务器,要设置外网IP。 测试三台机器,是否ping通

ping master

ping slave1

ping slave2

时间同步

查看主机时间

date

选择时区

tzselect

echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile && source /etc/profile

时间同步协议NTP

yum install -y ntp//三台机器安装ntp

master作为ntp服务器,修改ntp配置文件

vim /etc/ntp.conf//master执行

屏蔽掉默认的server,设置master作为时钟源,设置时间服务器的层级为10。

#注释掉server 0 ~ n,新增

server 127.127.1.0

fudge 127.127.1.0 stratum 10

重启ntp服务(master上执行)

/bin/systemctl restart ntpd.service

slave1,slave2操作

ntpdate master

定时任务crontab

crontab -e

输入i,添加定时任务

*/30 8-17 * * */usr/sbin/ntpdate master //早8晚五时间段每隔半个小时同步

*/10 * * * */usr/sbin/ntpdate master //每隔10分钟同步一次

*/30 10-17 * * */usr/sbin/ntpdate master //早十晚五时间段每隔半个小时同步

查看定时任务列表

crontab –l

配置ssh免密

生成公钥和私钥:

ssh-keygen -t rsa //三台都要

连续按3次Enter键,会在当前用户家目录下生成隐藏目录.ssh,里面包含私钥id_rsa和公钥id_rsa.pub

将公钥复制到要免密登录的服务器上:ssh-copy-id 服务器名

ssh-copy-id master

ssh-copy-id slave1

ssh-copy-id slave2

会让你确认是否要连接,输入yes 再输入对方主机的密码即可。在这里,我选择将各台服务器都相互免密登录,大家在实际过程中可按需求选择要免密的主机。 验证免密效果,分别测试免密效果:ssh 想要登录的主机名

ssh master

ssh slave1

ssh slave2

退出:

exit

安装jdk

在官网下载好相关文件,利用xftp传入主机

创建安装目录和软件包存放目录

创建文件夹 在主机master先创建两个文件夹:/opt/module 和/opt/softs,我所有软件都安装在/opt/module下,软件安装包均放在/opt/softs下,命令为:

mkdir /opt/module/

mkdir /opt/softs/

利用xftp连接上传相关软件到/opt/softs

解压至/opt/module

tar -zxvf jdk-8u171-linux-x64.tar.gz

‐C /opt/modle/

将文件传入主机slave1和slave2

scp -r /opt/softs slave1:/opt/softs

scp -r /opt/softs slave2:/opt/softs

scp -r /opt/module slave1:/opt/module

scp -r /opt/module slave2:/opt/module

修改环境变量:

vi /etc/profile 添加内容如下:

export JAVA_HOME=/opt/module/jdk1.8.0_171

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

使其生效:

source /etc/profile

删除slave1和slave2的/etc/profile文件:

rm -rf /etc/profile

将文件传入主机slave1和slave2

scp -r /etc/profile slave1:/etc/profile

scp -r /etc/profile slave2:/etc/profile

查看java版本,确认安装成功:

java -version

Zookeeper安装

安装Zookeeper:

tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module/

配置系统环境变量:

vi /etc/profile

添加如下信息

export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.14

export PATH=$ZOOKEEPER_HOME/bin:$PATH

使得配置的环境变量生效:

source /etc/profile

修改配置文件 进入zookeeper的安装目录下的 conf目录 ,拷贝配置样本并进行修改:

cd /opt/module/zookeeper-3.4.14/conf

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

修改dataDir,增加dataLogDir如下:

dataDir=/opt/module/zookeeper-3.4.14/zookeeper-cluster/data

dataLogDir=/opt/module/zookeeper-3.4.14/zookeeper-cluster/log

#server.1 这个1是服务器的标识,可以是任意有效数字,标识这是第几个服务器节点,这个标识要写到dataDir目录下面myid文件里

server.1=sleve1:2777:3888

server.2=sleve2:2777:3888

server.3=master:2777:3888

标识节点

分别在三台主机的 dataDir 目录下新建 myid 文件:

mkdir -vp /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/

写入对应的节点标识。Zookeeper 集群通过 myid 文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出 Leader 节点。 slave1上执行

echo "1" > /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/myid

slave2上执行

echo "2" > /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/myid

master上执行

echo "3" > /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/myid

启动集群

进入各台服务器${ZOOKEEPER_HOME}/bin,然后执行zkServer.sh start 启动集群,并用zkServer.sh status查看状态:(这里也可以不进入bin目录启动因为在/etc/profile设置了系统环境变量,但是如果每次在不同目录下启动每次启动会生成一个启动日记文件:zookeeper.out文件,zookeeper.out也可以用来查看启动时的错误)

cd $ZOOKEEPER_HOME/bin

查看当前目录:

pwd

zkServer.sh start

zkServer.sh status

常见问题解决措施: 1 检查是否创建data目录 2 检查conf/zoo.cfg文件中是否配置了正确的数据缓存路径(data文件夹位置) 3 检查data中是否创建了myid文件,其内容是否正确 如果myid文件中的数字不和zoo.cfg中的数字对应,也会造成错误! 4 检查conf/zoo.cfg文件中是否配置了服务/投票/选举端口,形式为: server.x(x为myid中的id)=ip地址:端口号:端口号 举例: server.1=192.168.70.143:2881:3881 5 是否关闭了防火墙(需要关闭,或者开放相关端口) 6 检查data目录下是否有*.pid文件,若有将其全部删除 7 端口占用:

netstat -nltp | grep 2181//查看指定端口

jps//查看java进程端口

kill -9 37884// 彻底杀死进程

8.主机映射问题,在配置zoo.cfg时最好是直接写ip地址,不写主机名称 9.启动顺序,需要按配置文件启动 具体错误查看zookeeper.out文件

Hadoop安装

进入/opt/softs/目录:

cd /opt/softs/

安装hadoop:

tar -zxvf hadoop-2.7.7.tar.gz -C /opt/module//表示将hadoop安装到/opt/module/

配置系统环境变量:

vim /etc/profile

添加如下信息

export HADOOP_HOME=/opt/module/hadoop-2.7.7

export PATH=$PATH:${HADOOP_HOME}/bin

export PATH=$PATH:${HADOOP_HOME}/sbin//可选,这里导入后面可以不进入sbin目录启动服务

使得配置的环境变量生效:

source /etc/profile

进入 ${HADOOP_HOME}/etc/hadoop 目录下,修改几个配置文件:

cd ${HADOOP_HOME}/etc/hadoop

修改hadoop-env.sh

指定JDK的安装位置

export JAVA_HOME=/opt/module/jdk1.8.0_171

修改yarn-env.sh

进入${HADOOP_HOME}/etc/hadoop下配置:

cd ${HADOOP_HOME}/etc/hadoop

vim yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_171

修改主要配置

由于其方便性,这里使用notepad++修改 除了直接在文档修改,我们还可以利用notepad++的插件通过FTP实现远程编辑项目的文档。采用这个方法虽然一次只能编辑一个文档。 notepad++是一款开源免费软件,到处都有得下载 安装NppFTP插件 选择 「插件」 --> 「Plugin Manager」 --> 「Show Plugin Manager」,在弹出的窗口中找到 「NppFTP」 ,打上勾并点击 「Install」,之后一路「Yes」 就可以了。 安装完毕之后,在 「插件」 菜单中即可看到 「NppFTP」 。我们也可以将这个插件以窗口的形式显示在主窗口侧边。 选择 「插件」 --> 「NppFTP」 --> 「Show NppFTP Window」 下面就可以通过Notepad++的NppFTP插件来连接虚拟机了。点击NppFTP插件栏的小齿轮选择 「profile settings」: 在「profile settings」 里,点击 「add new」 创建一个新的连接,然后右侧填入相应的信息,再点击 「close」 退出。 点击NppFTP插件栏左侧的闪电那个图标,选择刚刚创建的连接,即可连接到虚拟机。之后再打开需要编辑的文档就可以尽情的玩耍了。 进入/opt/module/hadoop-2.7.7/etc/hadoop目录

修改core-site.xml

fs.defaultFS

hdfs://master:8020

io.file.buffer.size

131072

hadoop.tmp.dir

/home/hadoop/tmp

ha.zookeeper.quorum

master:2181,slave1:2181,slave2:2181

ha.zookeeper.session-timeout.ms

10000

若中文出现乱码现象,点击[编码],使用UTF-8编码

修改hdfs-site.xml

dfs.replication

1

dfs.namenode.name.dir

/home/hadoop/namenode/data

dfs.datanode.data.dir

/home/hadoop/datanode/data

dfs.nameservices

mycluster

dfs.blocksize

134217728

dfs.namenode.http-address

master:50070

dfs.namenode.secondary.http-address

master:50090

dfs.namenode.shared.edits.dir

qjournal://master:8485;slave1:8485;slave2:8485/mycluster

dfs.journalnode.edits.dir

/home/hadoop/journalnode/data

dfs.ha.fencing.methods

sshfence

dfs.ha.fencing.ssh.private-key-files

/home/hadoop/.ssh/id_rsa

dfs.ha.fencing.ssh.connect-timeout

30000

dfs.client.failover.proxy.provider.mycluster

org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

dfs.ha.automatic-failover.enabled

true

修改yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.log-aggregation-enable

true

yarn.log-aggregation.retain-seconds

86400

yarn.resourcemanager.ha.enabled

true

yarn.resourcemanager.cluster-id

my-yarn-cluster

yarn.resourcemanager.hostname

master

yarn.resourcemanager.address

master:8032

yarn.resourcemanager.scheduler.address

master:8030

yarn.resourcemanager.resource-tracker.address

master:8031

yarn.resourcemanager.admin.address

master:8033

yarn.resourcemanager.webapp.address

master:8088

yarn.resourcemanager.zk-address

master:2181,slave1:2181,slave2:2181

yarn.resourcemanager.recovery.enabled

true

yarn.resourcemanager.store.class

org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore

修改mapred-site.xml

生成mapred-site.xml:

cp mapred-site.xml.template mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

master:10020

mapreduce.jobhistory.webapp.address

master:19888

修改slaves

配置所有节点的主机名或 IP 地址,每行一个,所有从属节点上的 DataNode 服务和NodeManager 服务都会被启动。

master

slave1

slave2

再将slave1和slave2的文件修改

启动集群

启动Zookeeper

启动集群之前需要先启动zookeeper

cd $ZOOKEEPER_HOME/bin

zkServer.sh start

zkServer.sh status

初始化NameNode

首先进入${HADOOP_HOME}/sbin

cd ${HADOOP_HOME}/sbin//若前面导入环境变量,可不用进入

在namenode节点上初始化集群,在master上进行,命令为:

hdfs namenode -format

初始化HA状态

在namenode节点上初始化集群,在master上进行,命令为:

hdfs zkfc -formatZK

启动HDFS

在namenode节点上初始化集群。进入master的 ${HADOOP_HOME}/sbin (若前面导入环境变量无需进入)目录下,启动 HDFS。此时 master 和的 NameNode 服务和3台服务器上的 DataNode 服务都会被启动:

./start-dfs.sh

start-dfs.sh//若前面导入环境变量可直接用这个命令

启动YARN

在namenode节点上初始化集群。进入到 master 的${HADOOP_HOME}/bin 目录下,启动 YARN。此时 master上的ResourceManager 服务和3台服务器上的 NodeManager 服务都会被启动:

./start-yarn.sh

start-yarn.sh//若前面导入环境变量可直接用这个命令

查看集群

启动HDFS查看集群

通过在每台机器上输入命令:

jps

查看集群各服务开启情况。如下图,发现所有服务正常开启。

访问:http://180.76.231.240:50070/

启动YARN后查看集群

访问:http://180.76.231.240:8088/

<<<
Previous Post
世界杯小组赛有加时赛吗?世界杯小组赛积分规则

Copyright © 2088 世界杯门票_托马斯穆勒世界杯进球数 - noh16.com All Rights Reserved.

友情链接