原生Hadoop全分布式大数据平台构建
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。在为了避免这类问题的发生,而且也要兼顾安全问题(设置SSH免密码登陆后,SSH这台计算就不需要密码即可登陆,存在安全隐患),使用公钥和私钥方式解决SSH免密码登陆问题,而且只在一边做,另一边不做,这样也达到了安全的问题
大数据运维实践
大数据平台构建与应用
原生Hadoop全分布式大数据平台构建
大数据 刘新兵
二〇二六年四月
Linux环境设置
安装Hadoop集群时要确保以下几个方面
1.本机与虚拟机之间是否可以通信(Ping)。如果不行检查下面
1.1本机防火墙关闭(开启情况是本机可以ping虚拟机,虚拟机不能ping本机)
1.2虚拟机是克隆的情况(按照Linux文档中,修改ip地址等方法)
1.3虚拟机设置--网卡是否是仅主机模式或者桥接模式:仅主机模式需要检查VMware1网卡设置与虚拟机网卡设置是否匹配。桥接模式是为了让虚拟机可以连接外网,只需要改该虚拟机网卡信息即可(网关)
2.虚拟机与虚拟机之间是否可以通信(Ping)。
//关闭本机网络管理
# /etc/init.d/NetworkManager stop
# chkconfig NetworkManager off
//清空和关闭防火墙
# iptables -F
# chkconfig iptables off
# service iptables save
(4)关闭firewall系统防火墙:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示 notrunning,开启后显示running)
//更改主机名称
6.x: vi /etc/sysconfig/network
7.x: hostnamectl set-hostname 主机名
//更改主机与ip映射
# vi /etc/hosts
//安装JDK
# tar -xvf jdk-7u79-linux-x64.tar.gz
# mv jdk1.7.0_79/ jdk
//修改系统环境变量
# vi /etc/profile
export JAVA_HOME=/home/bigdata/jdk/
export HADOOP_HOME=/home/bigdata/hadoop/
export HIVE_HOME=/home/bigdata/hive/
export ZOOKEEPER_HOME=/home/bigdata/zookeeper/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export PATH=$PATH:$JAVA_HOME/bin:/home/bigdata/protoc/bin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:
//使修改后的系统生效
# source /etc/profile
//设置免密码ssh 方式一 选其一
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
# scp ~/.ssh/authorized_keys slave1:/root/.ssh/
# scp ~/.ssh/authorized_keys slave2:/root/.ssh/
//设置免密码ssh 方式二 选其一
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub master@root
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1@root
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2@root
//设置免密码ssh 方式三 选其一 (推荐)
ssh-keygen -t rsa
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
使用scp传输文件:
scp -r ./hadoop-3.1.3/ root@hadoop03:/opt/
Hadoop集群下的全分布式平台构建
集群规划如下:
|
主机名称 |
IP地址 |
功能角色 |
|
hadoop01-master |
192.168.146.145 |
NameNode、DataNode |
|
hadoop02-slave1 |
192.168.146.146 |
DataNode |
|
hadoop03-slave2 |
192.168.146.147 |
DataNode |
|
所有机子都需要配置 1.JDK 2.SSH免登陆 3.Hadoop集群配置八大文件 |
||
SSH免登陆
计算机A每次SSH远程连接计算机B时,都需要输入密码。当有些软件需要频繁使用SSH连接其他计算机时,这个时候需要人工填写计算机B的密码,这个会造成大量无用操作,不利于程序的使用。
在为了避免这类问题的发生,而且也要兼顾安全问题(设置SSH免密码登陆后,SSH这台计算就不需要密码即可登陆,存在安全隐患),使用公钥和私钥方式解决SSH免密码登陆问题,而且只在一边做,另一边不做,这样也达到了安全的问题。一般是那台机器需要SSH远程其他机器,就在这台机器上设置SSH免登陆操作。
"公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。
ssh 无密码登录要使用公钥与私钥。linux下可以用ssh-keygen生成公钥/私钥对.
//在master机下生成公钥/私钥对。
# ssh-keygen -t rsa
//追加到key文件当中
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
//将master机子上的key给其他机子上发送一份
# scp ~/.ssh/authorized_keys slave1:/root/.ssh/
# scp ~/.ssh/authorized_keys slave2:/root/.ssh/
配置阿里云国内yum源
1、创建CentOS-Base.repo 或 CentOS-7.repo
|
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. [base] name=CentOS-$releasever - Base - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 |
2、清理并更新缓存
yum clean all && yum makecache
- 验证
yum list
对防火墙的操作 开启:systemctl start firewalld
关闭:systemctl stop firewalld
写入系统开机自启服务项:systemctl enabled firewalld
取消开机自启: systemctl disable firewalld
查看防火墙的状态:firewall-cmd --state
配置ntp时间服务
#master主节点中:
|
# yum -y install ntp //安装ntp时间服务 # vi /etc/ntp.conf // 修改配置文件 注释或者删除以下4行 server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst 添加以下两行: server 127.127.1.0 fudge 127.127.1.0 stratum 10 #systemctl enable ntpd // 设置服务开机自启动 #systemctl start ntpd // 设置服务立即启动 |
# slave从节点中:
|
# yum -y install ntpdate // 安装 # ntpdate master.hadoop // 时间同步 # systemctl enable ntpdate // 设置启动 |
Hadoop集群搭建
修改hadoop-env.sh文件
将hadoop-env.sh文件中的
export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME="/home/bigdata/jdk"
1修改core-site.xml文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://node-1:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
2修改hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoopdata/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>node-1:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>node-2:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
3修改mapred-site.xml文件
命令如下:
# mv mapred-site.xml.template mapred-site.xml
#vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node-1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node-1:19888</value>
</property>
4修改yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node-1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node-1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node-1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node-1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node-1:8088</value>
</property>
5 修改/etc/hadoop/slaves
将所有需要配置成slave类型的机器的机器名写在其内部即可.
注意:每个机器名占一行。
master
slave1
slave2
#vi /etc/hadoop/master
Master文件存的是的secondarynamenode列表
slave1
//将配置好的jdk文件夹和Hadoop文件夹发送给slave1和slave2机子
# scp -r jdk/ slave1:/home/bigdata/jdk
# scp -r jdk/ slave2:/home/bigdata/jdk
# scp -r /home/bigdata/hadoop slave1:/home/bigdata/
# scp -r /home/bigdata/hadoop slave2:/home/bigdata/
3.x版本中需配置hadoop-env.sh如下:
|
export JAVA_HOME=/opt/jdk1.8 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" |
3.x版本中需配置workers主机列表,如下:
|
hadoop01 hadoop02 hadoop03 |
//启动Hadoop集群,只在主节点中做(hadoop01)
//启动之前先格式化,只需要一次即可
#hadoop namenode -format 2.x使用
#hdfs namenode -format 3.x使用
#bin/hdfs namenode -format
//启动namenode、datanode、ResourceManager、NodeManager节点
# start-dfs.sh
|
|
# start-yarn.sh
|
|
|
|
Job-server启动:mr-jobhistory-daemon.sh start historyserver
附:静态IP配置
由于虚拟机IP经常改变,使用Xshell连接不成功,询最新IP,然后再使用Xshell进行连接,这样就有点麻烦。如果修改DHCP的最长租用时间,即使修改到最大值,到期后,还是会改变IP。所以,还是直接配置静态IP,这样就不会出现IP改变的情况。
1、查看VMware网络配置信息

网络配置信息如下:
IP地址范围:192.168.186.128 - 192.168.186.254
子网掩码:255.255.255.0
网关:192.168.186.2
2、修改配置文件
配置文件所在目录为/etc/sysconfig/network-scripts,一般以ifcfg-开头,如ifcfg-ens33、ifcfg-eth0等。
查看配置文件内容(/etc/sysconfig/network-scripts/ifcfg-ens33):
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=f50ffcfa-6f5f-420b-a931-a02389b998ab
DEVICE=ens33
ONBOOT=yes
修改以下参数:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.186.129
NETMASK=255.255.255.0
GATEWAY=192.168.186.2
DNS1=192.168.186.2
查看完整内容:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp
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=f50ffcfa-6f5f-420b-a931-a02389b998ab
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.186.129
NETMASK=255.255.255.0
GATEWAY=192.168.186.2
DNS1=192.168.186.2
3、重启网络
systemctl restart netwrok
4、查看IP
ip addr
安装Nginx服务
yum install -y epel-release
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐





所有评论(0)