至于第四步,则可以通过`xsync`脚本将`my_env.sh`同步到所有主机,然后在所有虚拟机上挨个执行`source`命令即可。

脚本实现vimrsync-script!/bin/bash1获取命令输入参数的个数,如果个数为0,直接退出命令paramnum=$if((paramnum==0));thenechonoparams;exit;fi2根据传入参数获取文件名称p1=$1file_name=`basename$p1`echofname=$file_name3获取输入参数的绝对路径pdir=`cd-P$(dirname$p1);pwd`echopdir=$pdir4获取用户名称user=`whoami`5循环执行rsyncfor((host=121;host<124;host++));doecho-------------------linux$host--------------rsync-rvl$pdir/$file_name$user@linux$host:$pdirdone修改脚本rsync-script具有执行权限root@linux121bin$chmod777rsync-script*编写完可以测试一下脚本,测试看看是否能分发到其他服务器

脚本完成,开始分发jdk和hadoop。

在这里插入图片描述(https://img-blog.csdnimg.cn/20200113151656832.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MzczNzgz,size_16,color_FFFFFF,t_70)**2).进入.ssh文件夹,查看有两个文件,id_rsa.pub(公钥)和id_rsa(私钥)**root@hadoop1~cd./.sshroot@hadoop1.sshls-l总用量8-rw——-.1rootroot167910月1510:04id_rsa-rw-r–r–.1rootroot39410月1510:04id_rsa.pub**3).在此目录下,使用命令catid_rsa.pub>>authorized_keys命令,将公钥复制到文件authorized_keys(该文件缺省时自动生成。

配置hadoop-env.sh文件sudogedithadoop-env.sh将JAVA_HOME文件配置为本机JAVA_HOME路径3.配置yarn-env.shsudogedityarn-env.sh将其中的JAVA_HOME修改为本机JAVA_HOME路径(先把这一行的去掉)4.配置hdfs-site.xmlsudogedithdfs-site.xml在中加入以下代码dfs.replication1dfs.namenode.name.dirfile:/home/hadoop/hadoop-2.7.3/hdfs/nametruedfs.datanode.data.dirfile:/home/hadoop/hadoop-2.7.3/hdfs/datatruedfs.namenode.secondary.http-addressmaster:9001dfs.webhdfs.enabledtruedfs.permissionsfalse注意(其中第二个dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致;因为这里只有一个从主机slave1,所以dfs.replication设置为1)5.复制mapred-site.xml.template文件,并命名为mapred-site.xmlcpmapred-site.xml.templatemapred-site.xml配置mapred-site.xml,在标签中添加以下代码mapreduce.framework.nameyarn6.配置yarn-site.xmlsudogedityarn-site.xml在标签中添加以下代码yarn.resourcemanager.addressmaster:18040yarn.resourcemanager.scheduler.addressmaster:18030yarn.resourcemanager.webapp.addressmaster:18088yarn.resourcemanager.resource-tracker.addressmaster:18025yarn.resourcemanager.admin.addressmaster:18141yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.nodemanager.auxservices.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler7.配置slaves文件sudogeditslaves把原本的localhost删掉,改为slave18.配置hadoop的环境,就像配置jdk一样sudogedit/etc/profile根据hadoop文件夹的路径配置,以我的路径/home/hadoop/hadoop-2.7.3为例exportHADOOP_HOME=/home/hadoop/hadoop-2.7.3exportPATH=”$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH”exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop键入命令source/etc/profile使配置立即生效9.接下来,将hadoop传到slave1虚拟机上面去scp-rhadoop-2.7.1hadoop@slave1:~/注意:hadoop是虚拟机的用户名,创建slave1时设定的传过去后,在slave1上面同样对hadoop进行路径配置,和第8步一样9.初始化hadoophdfsname-format10.开启hadoop两种方法:start-all.sh先start-dfs.sh,再start-yarn.sh如果在mater上面键入jps后看到在slave1上键入jps后看到则说明集群搭建成功六:最后用自带的样例测试hadoop集群能不能正常跑任务使用命令hadoopjar/home/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jarpi1010用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数(与计算原理有关)最后出现结果则,恭喜你,hadoop集群搭建完成,搭建hadoop集群环境不仅master和slaves安装的hadoop路径要完全一样,也要求用户和组也要完全一致。

这边需要特别强调,服务器密码尽量设置复杂一点**!!!**网络上还是很多高手的,简单的密码容易让人破解,并利用自己服务器资源,可能会给自己学习或者工作带来不确定的麻烦***内容:搭建前准备:1).3台服务器(最低配置建议1核2G,同区域,同网段,linux系统(小弟使用的是centos7.6,建议centos7以上))有条件的童鞋建议使用自己的设备搭建3台同样配置虚拟机,比较方便学习,且省去了很多时间:学习大数据对大家的个人电脑配置有一定要求,至少应该满足如下配置*CPU>=I5*CPU>=4核*内存>=16G*存储>=500G因为需要3台虚拟机同时运行启动,加上自己学习的一些工具,因此个人设备需要至少以上的配置。

快速搭建一个hadoop集群>本文不讲原理,只记录一下快速搭建hadoop集群的过程。

在其余主机上都使用命令ssh-copy-id命令,将自己的authorized_keys文件内容复制到hadoop2节点的authorized_keys文件中.root@hadoop3.sshssh-copy-id-i~/.ssh/id_rsa.pubhadoop2若出现找不到hadoop2的地址相关报错,像这样!在这里插入图片描述(https://img-blog.csdnimg.cn/202001131604339.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MzczNzgz,size_16,color_FFFFFF,t_70)将hadoop2改成hadoop2的ip地址即可像这样!在这里插入图片描述(https://img-blog.csdnimg.cn/20200113160947613.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MzczNzgz,size_16,color_FFFFFF,t_70)涂黄的两句话为现在可以在hadoop3节点上试一下sshhadoop2看看能否成功比如将hadoop1的密钥传给hadoop2,则在hadoop1上可以用sshhadoop2登陆hadoop2节点!在这里插入图片描述(https://img-blog.csdnimg.cn/20200113161328384.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MzczNzgz,size_16,color_FFFFFF,t_70)**执行完如上操作,hadoop1、hadoop3、hadoop4的密钥都传到了hadoop2上,可以查看一下**!在这里插入图片描述(https://img-blog.csdnimg.cn/20200113161627213.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MzczNzgz,size_16,color_FFFFFF,t_70)**现在只需要将hadoop2中的authorized_keys文件复制到其余的远程主机上即可。