对于新手来言,新建用户用户组,并赋予适当的权限无疑是最大的问题。

没想到过了3,4天又出现同样的问题,此时,就感觉难受了,深究其原因,发现免密登录的认证文件~/.ssh/authorized_keys多了一组其他的认证公钥,感觉奇怪,然后百度了一下,结果发现了令人气氛的事情,居然是被植入挖矿程序了(疑似挖矿排查方法),甚是担心,然后就第三次重装系统,并打算重新搭建Hadoop集群,顺便记录一下搭建的过程。

语法:rsync-rvl$pdir/$fname$user@$host:$pdir/$fname-rvl:-r递归-v显示复制过程-l拷贝符号连接*三台虚拟机安装rsync(执行安装需要保证机器联网)root@linux121~yuminstall-yrsync集群分发脚本编写1).说明:在/usr/local/bin这个目录下存放的脚本,root用户可以在系统任何地方直接执行。

修改后结果如下root@hadoop-node1~cat/etc/hostnamehadoop-node1root@hadoop-node1~cat/etc/hosts127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6192.168.133.21hadoop-node1192.168.133.22hadoop-node2192.168.133.23hadoop-node3配置ssh免密登录1、在三台机器上分别执行下面的命令来生成密钥对如果文件夹不存在,则手动创建一下mkdir~/.sshcd~/.ssh输入下面的命令,连续敲三次回车,生成秘钥ssh-keygen-trsa2、分别在三台机器上个执行下面的命令,将公钥复制到需要免登录的目标机器上,这一步需要输目标机器的密码ssh-copy-idhadoop-node1ssh-copy-idhadoop-node2ssh-copy-idhadoop-node33、执行完成后就可以测试免密登录是否OK了测试免密登录到node2sshhadoop-node2编写文件同步脚本1、编写同步脚本cd~vimxsync将下面的内容完整粘贴进去,根据对应机器的host进行修改!/bin/bash1.判断参数个数if$-lt1thenechoNotEnoughArguement!exit;fi2.遍历集群所有机器forhostinhadoop-node1hadoop-node2hadoop-node3doecho——正在同步文件,目标主机:$host3.遍历所有目录,挨个发送forfilein$@do4.判断文件是否存在if-e$filethen5.获取父目录pdir=$(cd-P$(dirname$file);pwd)6.获取当前文件的名称fname=$(basename$file)ssh$host”mkdir-p$pdir”rsync-av$pdir/$fname$host:$pdirelseecho$filedoesnotexists!fidonedone2、修改文件权限chmod+xxsync3、将文件移动到`/bin`目录下mv~/xsync/bin/4、将脚本同步到其他机器上xsync/bin/xsync安装jdk和hadoop1、卸载openjdkrpm-qa|grep-ijava|xargs-n1rpm-e–nodeps2、到官网下载jdk和hadoop的tar包,下载完成后上传到所有服务器上,路径为`/opt/software`,同时创建再创建一个目录用于存放解压后的应用mkdir-p/opt/software/opt/module3、解压jdk和hadooptar-zxvfjdk-8u321-linux-x64.tar.gz-C/opt/module/tar-zxvfhadoop-3.3.2.tar.gz-C/opt/module/4、配置环境变量新建并编辑文件,文件名无所谓,只要是sh就行,至于为啥会这样,可以查看`/etc/profile`文件最后的那个`for`循环就可以知道了vim/etc/profile.d/my_env.sh将下面内容添加到文件中JAVA_HOMEexportJAVA_HOME=/opt/module/jdk1.8.0_321exportPATH=$PATH:$JAVA_HOME/binHADOOP_HOMEexportHADOOP_HOME=/opt/module/hadoop-3.3.2exportPATH=$PATH:$HADOOP_HOME/binexportPATH=$PATH:$HADOOP_HOME/sbinexportHDFS_NAMENODE_USER=rootexportHDFS_DATANODE_USER=rootexportHDFS_SECONDARYNAMENODE_USER=rootexportYARN_RESOURCEMANAGER_USER=rootexportYARN_NODEMANAGER_USER=root上面的环境变量中,最后的5行,如果不是使用root用户启动,不用加,估计官方也不建议使用root用户启动吧。

用三个虚拟机模拟三个节点来学习(虚拟主机无法体会多台计算机并行处理的优势,但操作步骤与实体主机相同)

设置网络设置两个网卡

修改配置文件设置服务器master**重命名虚拟机**进入设置,选择常规,选择基本,在名称中输入主节点名称,点击ok

**修改IP地址**(修改后不能上网)1.使用ifconfig命令查看IP端口名称与当前IP地址,掩码网关,广播地址。

执行下面的命令root@hadoopnode1.sshhdfsnamenode-format11.启动HDFS文件系统root@hadoopnode1~start-all.sh–在namenode主节点上执行该操作**分别在各个节点使用jps命令,查看运行状态**!在这里插入图片描述(https://img-blog.csdnimg.cn/20200113165032633.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MzczNzgz,size_16,color_FFFFFF,t_70)**仔细核对,确保jps内容的完整****关闭集群停止HDFS文件系统**root@hadoopnode1~stop-all.sh至此,hadoop集群搭建完成,需要的安装包:1.jdk压缩包2.hadoop压缩包请前往百度云上上下载相关安装包(密码:8op1)开始搭建hadoop集群一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的,并关闭全部虚拟机的防火墙1.因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称设为slave1修改主机名的命令:sudogedit/etc/hostname把原主机名ubuntu改为master(在从主机上则改为slave1)2.为了虚拟机之间能ping通,需要修改虚拟机的ip地址(这里以在master机器操作为例子,从节点的虚拟机也要进行一致的操作)命令:sudogedit/etc/hosts把/etc/hosts中yangcx-virtual-machine修改为刚刚改过的主机名master,同时将前面的ip地址改为实际的ip地址怎么知道自己虚拟机的ip地址?命令:ifconfig-a上图红框标记的就是虚拟机的真实ip地址,因此我们把/etc/hosts中的内容修改为:slave1的ip地址就是从虚拟机slave1的真实ip地址。