上机操作题(30分)
ABC公司要在企业内部搭建大数据处理分析平台。请按照如下要求完成如下环境搭建。
主机名 IP
Host1192.168.1.1/24 Host2 192.168.1.2/24 Host3 192.168.1.3/24
要求:(1)三台主机安装Centos7操作系统,IP配置和主机名如上。
(2)主机间可互相通信。
(3)三台主机间可以通过SSH免密登录。
以下是步骤:
192.168.1.1 Host1
192.168.1.2 Host2
192.168.1.3 Host3
这样可以将IP地址与主机名进行绑定,方便在集群中进行通信。
yum install java-1.8.0-openjdk-devel wget ntp -y
这些软件和工具将用于后续的环境搭建。
wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
tar -xzvf hadoop-3.3.0.tar.gz
mv hadoop-3.3.0 /usr/local/hadoop
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后运行以下命令使配置生效:
source /etc/profile
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Host1:9000</value>
</property>
</configuration>
然后编辑/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件,添加如下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/nameNode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/dataNode</value>
</property>
</configuration>
这里将数据副本数设置为3,同时指定了NameNode和DataNode的存储路径。
hdfs namenode -format
start-dfs.sh
这样就可以启动Hadoop集群并格式化NameNode。
wget https://www.apache.org/dyn/closer.cgi/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz
tar -xzvf spark-3.1.2-bin-hadoop3.2.tgz
mv spark-3.1.2-bin-hadoop3.2 /usr/local/spark
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
然后运行以下命令使配置生效:
source /etc/profile
start-all.sh
这样就可以启动Hadoop和Spark集群,完成大数据处理分析平台的搭建。
以上步骤仅为题1示例,需要根据具体情况进行调整和修改。
不知道你这个问题是否已经解决, 如果还没有解决的话:解决方案:
在三台主机上安装Centos7操作系统并配置IP和主机名,这个具体步骤可以参考网络上的教程或者系统自带的帮助文档。
实现主机间可互相通信和SSH免密登录:
首先,在每一台主机上都执行以下命令生成公钥私钥:
ssh-keygen -t rsa
然后,在每一台主机上都执行以下命令将公钥文件传输到其他主机,例如在node1上将公钥文件传输到node2:
ssh-copy-id -i ~/.ssh/id_rsa.pub mpiuser@node2
其中,mpiuser为目标主机的用户名,node2为目标主机的IP地址或主机名。这个命令会要求输入目标主机账号的密码,成功后在node1就可以免密登录node2了。
确保每个节点都可以免密登录其他节点。
(1) 关闭反向解析,在目标主机的/etc/ssh/sshd_config文件中加上:
UseDNS no
(2) 开放22端口,使得其他主机可以连接该主机,在目标主机上执行以下命令:
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo service firewalld restart
(3) 仅使用证书登录SSH,使得密码不会被窃取,在目标主机的/etc/ssh/sshd_config文件中加上:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
(4) 检查网络连接状态,在目标主机上执行以下命令:
ssh root@远程服务器IP地址 -p ssh端口号
如果能够成功连接则说明网络正常。
(5) 禁止用户以密码认证身份的方式登录,在目标主机的/etc/ssh/sshd_config文件中加上:
PasswordAuthentication no
然后重启SSH服务。
(6) 使用服务器的KeepAlive功能保持连接,在客户端的~/.ssh/config文件中加上:
Host *
ServerAliveInterval 60
如果有多个人管理服务器,可以在服务器的/etc/ssh/sshd_config中加上:
ClientAliveInterval 60
这样就可以实现主机间可互相通信和SSH免密登录,并且解决了一些常见的与SSH登录相关的问题。