1.Linux安装配置
1.1创建模板虚拟机
网络类型选择【NAT模式】
可选用最小化安装
1.2网络配置
虚拟机网络配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
操作如下几行即可:
BOOTPROTO=dhcp改为BOOTPROTO=static
ONBOOT=no改为ONBOOT=yes
添加4行
IPADDR=192.168.150.200与物理机VMnet8虚拟网卡在同一网段
NETMASK=255.255.255.0与物理机VMnet8虚拟网卡子网掩码相同
GATEWAY=192.168.150.2与物理机VMnet8虚拟网卡网关相同
DNS1=114.114.114.114可与物理机相同
配置完则重启网卡:
service network restart
检查网络配置是否正确
ping baidu.com //ping外网 ping 192.168.1.103 //ping物理机
1.3安装epel-release
配置国内yum源
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' \ -i.bak \ /etc/yum.repos.d/CentOS-*.repo
更新yum并安装epel-release
yum update && yum -y install epel-release
1.4关闭模板机防火墙
systemctl stop firewalld && systemctl disable firewalld
1.5创建资源目录
建议指定一个目录用于后期软件的安装
mkdir -p /data/{module,software}
1.6安装rsync
其实可以不要,我后面没用上这个
rsync用于后期执行集群分发脚本
yum install -y rsync
启动并设置开机自启
systemctl start rsyncd && systemctl enable rsyncd
修改rsync配置文件
vi /etc/rsyncd.conf
可复制以下内容:
# 运行RSYNC守护进程的用户 uid = root # 运行RSYNC守护进程的组 gid = root #不使用chroot use chroot = no # 最大连接数为4 max connections = 4 # CentOS7中yum安装不需指定pid file 否则报错 # pid file = /var/run/rsyncd.pid # 指定锁文件 lock file=/var/run/rsyncd.lock # 指定日志文件 log file = /var/log/rsyncd.log exclude = lost+found/ transfer logging = yes # 超时时间 timeout = 900 # 同步时跳过没有权限的目录 ignore nonreadable = yes # 传输时不压缩的文件 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
1.7卸载自带JDK
检查是否安装了Java
rpm -qa | grep javarpm -qa | grep jdkrpm -qs | grep gcj
如果自带了openjdk则需要卸载
rpm -e XXX
卸载完再检查一下
1.8重启模板机
reboot
2.创建分布集群
2.1创建虚拟机
利用模板机克隆出三台虚拟机Node1、Node2、Node3
修改主机名:
echo "Node1" > /etc/hostname
UUID设置E
生成UUID
uuidgen >> /etc/sysconfig/network-scripts/ifcfg-ens33
删除ifcfg-ens33文件中第一个UUID值,并在生成的uuid前面加上“UUID=”,三个节点的uuid都要配置
配置静态IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.150.201与物理机VMnet8虚拟网卡在同一网段
NETMASK=255.255.255.0与物理机VMnet8虚拟网卡子网掩码相同
GATEWAY=192.168.150.2与物理机VMnet8虚拟网卡网关相同
DNS1=114.114.114.114可与物理机相同
最好给物理机的VMnet8虚拟网卡配置好相应的静态ip、子网掩码、网关和DNS
三个节点的静态IP都要配置且不能相同
修改映射文件
vi /etc/hosts
echo "192.168.150.201 Node1" >> /etc/hostsecho "192.168.150.202 Node2" >> /etc/hostsecho "192.168.150.203 Node3" >> /etc/hosts
重启三台虚拟机
reboot
3.安装JDK
上传jdk压缩包
统一放在/data/software目录下
解压
解压到/data/module目录下
tar -zxvf /data/software/jdk-8u311-linux-x64.tar.gz -C /data/module
添加环境变量
echo "export JAVA_HOME=/data/module/jdk1.8.0_311" >> /etc/profile echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile
4.安装hadoop
上传压缩包
统一放在/data/software目录下
解压
统一解压到/data/module目录下
tar -xzvf /data/software/hadoop-3.3.2.tar.gz -C /data/module
配置环境变量
echo "export HADOOP_HOME=/data/module/hadoop-3.3.2" >> /etc/profileecho "export PATH=\$HADOOP_HOME/bin:\$PATH" >> /etc/profileecho "export PATH=\$HADOOP_HOME/sbin:\$PATH" >> /etc/profile
使环境变量生效
source /etc/profile
5.完全分布式集群搭建
5.1设置免密登陆
三台机器分别创建公钥私钥对
ssh-keygen -t rsa
将3台虚拟机的公钥拷贝到Node1上
ssh-copy-id Node1
从Node1复制公钥到Node2和Node3
scp /root/.ssh/authorized_keys Node2:/root/.sshscp /root/.ssh/authorized_keys Node3:/root/.ssh
设置时间同步
安装chrony
yum install chrony systemctl start chronyd systemctl enable chronyd
修改时间服务器
vi /etc/chrony.conf
server ntp.aliyun.com iburst server cn.ntp.org.cn iburst
重启chrony
systemctl restart chronyd.service
5.2分发JDK和Hadoop
将Node1的JDK分发给Node2和Node3
scp -r /data/module/jdk1.8.0_311 Node2:/data/module/scp -r /data/module/jdk1.8.0_311 Node3:/data/module/
将Node1的Hadoop分发给Node2和Node3
scp -r /data/module/hadoop-3.3.2/ Node2:/data/module/scp -r /data/module/hadoop-3.3.2/ Node3:/data/module/
将环境变量分发给Node2和Node3
scp /etc/profile Node2:/etc/profilescp /etc/profile Node3:/etc/profile
使Node2和Node3的环境变量生效
在Node2和Node3机器上运行如下:
source /etc/profile
5.3配置主节点
修改hadoop-env.sh
echo "export JAVA_HOME=/data/module/jdk1.8.0_311 #HADOOP_SHELL_EXECNAME=root 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" >> /data/module/hadoop-3.3.2/etc/hadoop/hadoop-env.sh
修改core-site.xml
<configuration><!-- 指定NameNode的地址 --><property> <name>fs.defaultFS</name> <value>hdfs://Node1:9000</value></property><!-- 指定hadoop数据的存储目录--><property> <name>hadoop.tmp.dir</name> <value>/data/module/hadoop/data</value></property><!-- 配置HDFS网页登录使用的静态用户为master --><property> <name>hadoop.http.staticuser.user</name> <value>master</value></property></configuration>
修改hdfs-site.xml
<configuration><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.name.dir</name><value>${hadoop.tmp.dir}/nndata</value></property><property><name>dfs.datanode.data.dir</name><value>${hadoop.tmp.dir}/dndata</value></property><property><name>dfs.namenode.http-address</name><value>Node1:9870</value></property><property><name>dfs.namenode.secondary.http-address</name><value>Node2:9870</value></property></configuration>
修改yarn-site.xml
<configuration><!-- 指定MR走shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定ResourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>Node1</value></property><!-- 环境变量的继承--><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HA DOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME, HADOOP_MAPRED_HOME</value></property><!-- 如果要程序的运行日志信息上传到HDFS系统上,可配置日志聚集(选 择配置) --><!-- 开启日志聚集功能--><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 设置日志聚集服务器地址--><property><name>yarn.log.server.url</name><value>http://Node2:19888/jobhistory/logs</value></property><!-- 设置日志保留时间为7天--><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>
修改mapred-site.xml
<!-- 指定MapReduce程序运行在Yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 如果要看程序的历史运行情况,可以配置历史服务器(选择配置)--><!-- 历史服务器端地址--><property><name>mapreduce.jobhistory.address</name><value>Node2:10020</value></property><!-- 历史服务器web端地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>Node2:19888</value></property>
修改workers文件
echo "Node1 Node2 Node3" > /data/module/hadoop-3.3.2/etc/hadoop//workers
scp /data/module/hadoop-3.3.2/etc/hadoop/workers Node2:/data/module/hadoop-3.3.2/etc/hadoop/workersscp /data/module/hadoop-3.3.2/etc/hadoop/workers Node3:/data/module/hadoop-3.3.2/etc/hadoop/workers
分发配置文件
scp /data/module/hadoop-3.3.2/etc//hadoop/* Node2:/data/module/hadoop-3.3.2/etc/hadoop/scp /data/module/hadoop-3.3.2/etc//hadoop/* Node3:/data/module/hadoop-3.3.2/etc/hadoop/
5.5启动集群
hdfs namenode -format start-all.sh //stop-all.sh
5.6ZooKeeper安装
下载安装包到/data/software
解压到/data/module并重命名为zookeeper
创建数据目录和日志目录
mkdir /data/module/zookeeper/{data,logs}
创建myid文件
touch /data/module/zookeeper/data/myid
配置ZooKeeper运行参数
复制一个配置文件
cp /data/module/zookeeper/conf/zoo_sample.cfg /data/module/zookeeper/conf/zoo.cfg
追加配置内容如下:
#dataDir: 数据文件目录
dataDir=/usr/local/servers/zookeeper/data
#dataLogDir: 日志文件目录
dataLoDir=/usr/local/servers/zookeeper/logs
admin.serverPort=9099
server.1=Node1:2888:3888
server.2=Node2:2888:3888
server.3=Node3:2888:3888
分发zookeeper给Node2和Node3
scp /data/module/zookeeper Node2:/data/modulescp /data/module/zookeeper Node3:/data/module
写myid文件
echo 1 > /data/module/zookeeper/data/myid
Node1写入1 Node2写入2 Node3写入3
启动ZooKeeper
/data/module/zookeeper/bin/zkServer.sh start
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5021.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~