(1)单台虚拟机:内存4G,硬盘50G,安装必要环境
1.2修改克隆虚拟机的静态IPsudo yum install -y epel-release
sudo yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
2.修改主机名 2.1修改主机名称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="1a4829c2-b5f3-4e62-9801-c3d89011479f"
DEVICE="ens33"
onBOOT="yes"
NAME="ens33"
IPADDR=192.168.1.101
PREFIX=24
GATEWAY=192.168.1.2
DNS1=192.168.1.2
2.2配置主机名称映射,打开/etc/hostssudo hostnamectl --static set-hostname hadoop101
sudo vim /etc/hosts
3.修改window10的主机映射文件(hosts文件)127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.100 hadoop100
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103
192.168.1.104 hadoop104
192.168.1.105 hadoop105
192.168.1.106 hadoop106
192.168.1.107 hadoop107
192.168.1.108 hadoop108
~
3.1进入C:WindowsSystem32driversetc路径
3.2拷贝hosts文件到桌面
3.3打开桌面hosts文件并添加如下内容
4.关闭防火墙192.168.1.100 hadoop100
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103
192.168.1.104 hadoop104
192.168.1.105 hadoop105
192.168.1.106 hadoop106
192.168.1.107 hadoop107
192.168.1.108 hadoop108
5.创建atguigu用户sudo systemctl stop firewalld
sudo systemctl disable firewalld
6.重启虚拟机sudo useradd atguigu
sudo passwd atguigu
7.配置atguigu用户具有root权限reboot
修改/etc/sudoers文件,找到下面一行(91行),在root下面添加一行(set nu可以显示行号)
7.2克隆两台虚拟机 8.在/opt目录下创建文件夹 8.1在/opt目录下创建module、software文件夹visudo
8.2修改module、software文件夹的所有者atguigusudo mkdir module
sudo mkdir software
9.安装JDK 和Hadoop 9.1卸载现有JDKsudo mkdir /opt/module /opt/software
sudo chown atguigu:atguigu /opt/module /opt/software
9.2将JDK和Hadoop拷贝在/opt/software 9.3解压JDK和Hadoop到/opt/module目录下rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
9.4配置环境变量tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
新建/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh
10 编写集群分发脚本xsync#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
~
1)需求:循环复制文件到所有节点的相同目录下
(2)需求分析:
(a)rsync命令原始拷贝:
rsync -av /opt/module root@hadoop103:/opt/
(b)期望脚本:
xsync要同步的文件名称
(c)说明:在/home/atguigu/bin这个目录下存放的脚本,atguigu用户可以在系统任何地方直接执行。
(3)脚本实现
(a)在/home/atguigu目录下创建xsync文件
cd /home/atguigu
vim xsync
在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
(b)修改脚本 xsync 具有执行权限
chmod +x xsync
(c)将脚本移动到/bin中,以便全局调用
sudo mv xsync /bin/
d)测试脚本
11.SSH免密登录配置 11.1免密登录原理 1.生成公钥和私钥:sudo xsync /bin/xsync
注意:
还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
还需要在hadoop103上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
1.2将公钥拷贝到要免密登录的目标机器上1.3 .ssh文件夹下(~/.ssh)的文件功能解释ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
known_hosts
记录ssh访问过计算机的公钥(public key)
id_rsa
生成的私钥
id_rsa.pub
生成的公钥
authorized_keys
存放授权过的无密登录服务器公钥
12. 集群配置 1. 集群部署规划xsync .ssh
注意:NameNode和SecondaryNameNode不要安装在同一台服务器
注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
hadoop102
hadoop103
hadoop104
HDFS
NameNode
DataNode
DataNode
SecondaryNameNode
DataNode
YARN
NodeManager
ResourceManager
NodeManager
NodeManager
进入hadoop配置文件
cd /opt/module/hadoop-3.1.3/etc/hadoop
核心配置文件
配置core-site.xml
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
HDFS配置文件fs.defaultFS hdfs://hadoop101:8020 hadoop.data.dir /opt/module/hadoop-3.1.3/data hadoop.proxyuser.atguigu.hosts * hadoop.proxyuser.atguigu.groups *
vim hdfs-site.xml
dfs.namenode.name.dir file://${hadoop.data.dir}/name dfs.datanode.data.dir file://${hadoop.data.dir}/data dfs.namenode.checkpoint.dir file://${hadoop.data.dir}/namesecondary dfs.client.datanode-restart.timeout 30 dfs.namenode.secondary.http-address hadoop103:9868
YARN配置文件
vim yarn-site.xml
MapReduce配置文件yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop102 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
workers配置mapreduce.framework.name yarn
将配置好的文件发送到所有集群vim workers
13.启动集群xsync hadoop
启动前需要初始化一下
hdfs namenode -format
在hadoop101启动hdfs
start-dfs.sh
在hadoop102启动yarn
start-yarn.sh
查看启动的程序
14. 配置日志的聚集日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
14.1配置yarn-site.xmlvim yarn-site.xml
15.配置历史服务器yarn.log-aggregation-enable true yarn.log.server.url http://hadoop102:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
vi mapred-site.xml
mapreduce.jobhistory.address hadoop102:10020 mapreduce.jobhistory.webapp.address hadoop102:19888
分发配置
xsync hadoop
在hadoop102启动历史服务器
16.创建一个脚本方便查看各个虚拟机启动的进程mapred –daemon start historyserver
vim jpsall.sh
#!/bin/bash
for i in hadoop101 hadoop102 hadoop103
do
echo "==== $i ===="
ssh $i "jps" | grep -v Jps
done
添加用户执行权限
chmod +x jpall.sh
将文件移动到/bin/目录下方便执行
sudo mv jpasll.sh /bin
执行命令jpsall.sh查看是否正确
17.集群时间同步欢迎分享,转载请注明来源:内存溢出
评论列表(0条)