Hadoop搭建

在进行Hadoop的搭建前,应准备在VMware上创建三台虚拟机,以一台为主机,两台为节点,并在搭建过程中将主机名命名为:master, node1,node2,分配IP时尽量将三个IP连续在一起,如:192.168.200.20 192.168.200.21 192.168.200.22,再使用MobaXterm为工具进行操作。

注:如若在创建虚拟机时没有设置主机名,导致主机名还是默认的,可以使用命令:

hostnamectl set-hostname  主机名

注:以下操作除单独要求,皆要使用mobaxterm将三台虚拟机进行共同操作。

主机名解析

首先需要在 /etc/hosts 文件中添加如下内容,注:根据主机名的不同和IP的不同进行更改。

192.168.200.20 master
192.168.200.21 node1
192.168.200.22 node2

然后检验是否成功,使用ping命令:

  • ping master
  • ping node1
  • ping node2

如果没有出现报错就代表成功了。

时间同步

因为要保持三台虚拟机的时间是完全同步的,所以要使用以下代码:

systemctl start chronyd
systemctl enable chronyd

再使用代码进行验证:

date

禁用

禁用iptable和firewalld服务

在运行的中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则,使用代码:

# 1 关闭firewalld服务
 systemctl stop firewalld
 systemctl disable firewalld
# 2 关闭iptables服务
 systemctl stop iptables
 systemctl disable iptables

禁用selinux

selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的奇葩问题,在这里要对

/etc/selinux/config 文件进行编辑,修改SELINUX的值为disable:

SELINUX=disabled

禁用swap分区

swap分区指的是虚拟内存分区,它的作用是物理内存使用完,之后将磁盘空间虚拟成内存来使用,启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备,但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明

在文件 /etc/fstab 中注释掉swap分区一行:

/dev/mapper/centos-swap swap
# /dev/mapper/centos-swap swap

关闭防火墙

为了防止在Hadoop部署时出现防火墙的警告,在这里要使用代码将其关掉:

firewall-cmd --state    
systemctl stop firewalld.service  
systemctl disable firewalld.service 

ssh免密登录

为了在Hadoop部署时,在连接三台虚拟机时能够做到免密互相登录,使用代码ssh-keygen生成公共密钥(一键回车到底,但若出现选项y/n时输入y回车)

将密钥配置到三台虚拟机:

ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2

再进行测试,是否成功:

ssh master
ssh node1
ssh node2

如若三个代码分别输入时并未报错。成功登录,则成功。

 新建工作空间

新建三个文件

mkdir -p /export/server/
mkdir -p /export/data/
mkdir -p /export/text/

Java环境变量

在目录 /export/server/ (图中红圈中输入)下将jdk-8u241-linux-x64.tar.gz hadoop-3.3.0-Centos7-64-with-snappy.tar.gz这两个压缩包拖入其中:

 再把这两个压缩包解压:

tar -zxvf jdk-8u241-linux-x64.tar.gz
tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

解压完成之后进行重命名,在/export/server/这个路径下使用命令:

mv jdk-1.1.0 jdk

配置环境变量(进入/etc/profile)

vim /etc/profile
    
    export JAVA_HOME=/export/server/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

重新加载环境变量文件

source /etc/profile

验证jdk 是否安装成功:

java -version

文件配置

修改配置文件(cd /export/server/hadoop-3.3.0/etc/hadoop)

以下均以vim命令来配置

hadoop-env.sh配置

在该文件最后添加如下内容:

export JAVA_HOME=/export/server/jdk
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

core-site.xml配置

将如下内容添加入其中:

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
</property>

<!-- 设置Hadoop本地保存数据路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/export/data/hadoop-3.3.0</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

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

hdfs-site.xml配置
<!-- 文件系统垃圾桶保存时间 -->
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

将如下内容添加至该文件中间部分两个property中:

<!-- 设置SNN进程运行机器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9868</value>
</property>

注:代码中value后面根据三台虚拟机的主机部分的主机名进行修改。

mapred-site.xml配置

将如下内容添加至文件末尾:

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序历史服务地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>master:10020</value>
</property>
 
<!-- MR程序历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>master:19888</value>
</property>

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

yarn-site.xml配置

将如下内容添加至文件:

<!-- 设置YARN集群主角色运行机器位置 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 是否将对容器实施物理内存限制 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 开启日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://master:19888/jobhistory/logs</value>
</property>

<!-- 历史日志保存的时间 7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

 workers文件

将三个虚拟机的主机名写入:

master
node1
node2

将hadoop添加到环境变量

配置环境变量:

vim /etc/profile

根据自身的信息适当修改如下添加内容:

export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

重新加载环境变量文件:

source /etc/profile

进行验证:

hadoop -version

如若未出现报错,则成功。

Hadoop集群启动

注:以下操作应脱离MobaXterm的功能多线操作,只在master(主节点)下操作

格式化namenode:

hdfs namenode -format

启动脚本:

start-dfs.sh 



start-yarn.sh

如若未出错,则成功,那么就可以打开以下网页:

注:网页中的master可以改为主节点的IP地址

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NasaYIN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值