hadoop集群搭建
1.安装前准备
安装vm,后创建3台虚拟机;
不会使用vm的可以参考下:blog
安装完成我们设置下网关
启动三台虚拟机。
三台虚拟机配合固定ip地址
#修改主机名
hostnamectl set-hostname node1
#那么其他两台就是 node2 node3
#三台虚拟机都修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
进入修改IP地址的原文件
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="c89f0ee9-fef6-4846-bf06-eb40c180e071"
DEVICE="ens33"
ONBOOT="yes"
~
修改成:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #设置默认
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="c89f0ee9-fef6-4846-bf06-eb40c180e071"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.88.101" # node1的ip地址 难么node2就是102 node3就是103
NETMASK="255.255.255.0" #子网掩码
GATEWAY="192.168.88.2" #网关
DNS1="192.168.88.2" #dns解析
重新启动网关
systemctl restart network
Windows配置主机名的映射
#文件目錄
C:\Windows\System32\drivers\etc\host
#添加ip映射 以上面配置举例子
192.168.88.101 node1
192.168.88.102 node2(主机名称,自己取什么这里写什么)
192.168.88.103 node3
linux配合主机名的映射
#文件目录
vim /etc/hosts
#Windows以上的配置
192.168.88.101 node1
192.168.88.102 node2(主机名称,自己取什么这里写什么)
192.168.88.103 node3
配置ssh免密登录
#每台都使用指令生成秘钥 一路回车即可
ssh-keygen -t rsa -b 4096
#然后再每台机器执行
ssh-copy-id 主机名(node1)
#输入yes,然后自己的服务器密码
建议执行
此处已规范来讲的话需要,在公司中不建议你使用root去启动Hadoop或者其他项目等,所有此处建议创建新用户去启动。
2.安装jdk
查看指令全局配置:echo $PATH
-
创建文件夹 mkdir /opt/jdk
-
通过xftp6上传到 /opt/jdk下
-
cd /opt/jdk
-
解压 tar -zxvf xxx.tar.gz
-
mkdir /usr/local/java
-
mv /opt/jdk/jdk1.8.0_261 /usr/local/java 移动到指定位置
-
配置环境变量的配置文件 vim /etc/profile
-
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
-
export PATH=$JAVA_HOME/bin:$PATH
-
source /etc/profile 重新加载配置文件
-
测试
java -version
三台都需要配置。
配置第一台后可以使用指令
scp -r /usr/local/java/jdk1.8.0_261 node2:`pwd`/
# scp -r 文件目录 服务器名称:文件位置
3.设置
#在学习阶段尽量把防火墙关闭
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld #关闭自动启动
设置时间同步
yum install -y ntp
#更新时区
rm -f /etc/localtime;sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#同步啊里时间
ntpdate -u ntp.aliyun.com
#开启ntp服务开机自启
systemctl start ntpd
systemctl enable ntpd
4.安装Hadoop
搭建节点为:
上传到node1节点
cd ~
#创建文件夹
mkdir -p /export/server
#解压hadoop
tar -zxvf hadoop-3.3.6.tar.gz -C /export/server/
#构建软连接
ln -s /export/server/hadoop-3.3.6 hadoop
修改配置
#进入
/export/server/hadoop/etc/hadoop
#配置workers文件
vim workers
#填下内容
node1(自己上面配置的主机名)
node2
node3
配置 hadoop-env.sh
#上面完成后开始hadoop-env.sh配置
vim hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_261 #JDK环境位置
export HADOOP_HOME=/export/server/hadoop #指明hadoop安装位置
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop #指明hadoop配置文件目录
export HADOOP_LOG_DIR=$HADOOP_HOME/logs #运行日志
配置core-site.xml
<!-- 上面完成后开始 core-site.xml配置 -->
vim core-site.xml
<!-- 填下内容 -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>700</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/nn</value>
</property>
<property>
<name>dfs.namenode.hosts</name>
<value>nodel.node2.node3</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/dn</value>
</property>
</configuration>
解释:
创建配置文件夹
#在node1上创建
mkdir -p /data/nn
mkdir /data/dn
#在node2和node3上创建
mkdir -p /data/dn
mkdir -p /export/server
分发文件夹到其他虚拟机
cd /export/server
#分发node2
scp -r hadoop-3.3.6 node2:`pwd`/
ln -s /export/server/hadoop-3.3.6 hadoop #构建软连接
#分发node3
scp -r hadoop-3.3.6 node3:`pwd`/
ln -s /export/server/hadoop-3.3.6 hadoop #构建软连接
配置环境变量
#三台虚拟机都要配置
vim /etc/profile
#尾部追加
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#重载
source /etc/profile
授权上面所创建的hadoop用户
#三台虚拟机的用户都要授权
chown -R /exprot
chown -R /data
说明成功
格式化及启动
su -hadoop
hadoop namenode -format
#如果这里包java_home错误,请检查hadoop-env.sh里面的java配置目录是否正确
#---启动---
start-dfs.sh
#---关闭---
stop-dfs.sh
说明成功了
如果上面配置了Windows的ip映射我们可以访问:http://node1:9870/dfshealth.html,如果没有那就把node1换成(node1)ip地址。
问题:在下次启动时不时出现无法使用xshell连接,ifconfig无IP地址。
systemcel stop NetworkManage;
systemcel disableNetworkManage;
systemctl restart network
执行以上指令。