目录

一、模板虚拟机搭建

二、克隆虚拟机

三、安装jdk

四、安装Hadoop

五、本地运行模式

六、完全分布式:集群纷发脚本scp、rsync、xsync

七、ssh无密登录配置

八、集群配置

九、群起集群

十、集群崩溃处理办法

十一、历史服务器配置

十二、日志聚焦功能设置


一、模板虚拟机搭建

  1. 安装VMware :注册码可以百度(也可以自己买正版)
  2. 安装centos:打开VMware>新建虚拟机>选择自定义>下一步>下一步(这里用默认设置就好)>这里选择稍后安装操作系统,选好下一步>这里选择Linux系统  版本选择centos 7 64位,选好后下一步>虚拟机名称可以取hadoop100(你后面学会了,也可自己取其他的),位置:选择d盘新建文件夹hadoop100方便管理,下一步>这里配置2,2,4,下一步>右边箭头指向2gb,下一步>使用网络地址转换,下一步>下一步>下一步>下一步(这里都为默认值)>最大磁盘大小改为:50gb,下一步>这里位置改为d盘与前面的放在一个文件夹里,方便管理,下一步>完成>就在这个页面双击cd/dvd进去>使用ISO映像文件,浏览打开centos文件映像>确定>开启此虚拟机(过程比较慢)>选择中文,继续>点击日期时间,位置:上海,完成>点击软件选择,选择桌面版,完成>安装位置,我要自己分配,完成,点击加号,下拉框/boot,1g,添加,文件系统改为ext4,点击+,/swap,/swap,4g,添加,点击+,/,45g,完成>点击网络和主机名,主机名改为hadoop100,上边按钮开启,完成>开始安装>点击root密码,输入自己的密码,完成>创建用户>输入完成后,完成(过程有点长)>重启>点击许可证,接受,完成>完成配置。
  3. 配置VMware的IP地址:打开VMware>点我的计算机>点编辑(最上方)>虚拟网络搭配器>点击VMnet8>更改设置>再次点击VMnet8>子网配置成:192.168.10.0>NAT设置>改成:192.168.10.2                                 配置win10的IP地址:打开网络共享中心>更改适配器设置>点机vmnet8右键属性>选择inter4协议版本>默认网关:192.168.10.2,DNS服务器:192.168.10.2,备用dns服务器:8.8.8.8,确定>打开虚拟机>登陆root账号>vim /etc/sysconfig/network-scripts/ifcfg-ens33>BOOTPROTO="static"              在后面添加:IPADDR=192.168.10.100           GATEWAY=192.168.10.2            DNS1=192.168.10.2      按esc+:+wq  保存退出>vim /etc/hostname>里面是hadoop100就不用改了>主机名称映射:vim /etc/hosts>按o插入>
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108

reboot(重启)>登陆root账号>ifconfig(看里面IP地址)>ping www.baidu.com(能ping通就成功)

  1. 安装xshell 7>主机和名称输入:192.168.10.100>点击用户身份验证>用普通账号登陆>完成>接受并保存>hostname(显示hadoop100成功)>我的电脑——c盘里找到etc文件夹下的hosts文件复制到桌面在最后添加>
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
  1. 安装xftp(用户名和公司可以随便写)>打开xshell在最上面有个绿色的包一样的,点击它,就可以像虚拟机传输文件了。
  2. 模板虚拟机准备:先保证网络畅通(ping命令能ping通)>额外安装一个软件库(在命令窗口输入:yum install -y epel-release)>关闭防火墙(systemctl stop firewalld)和防火墙自启动(systemctl disable firewalld.service)>vim /etc/sudoers(配置root权限,下滑需要用ctrl+下键)>
  3. 如何查看虚拟机中Hadoop在哪 虚拟机hadoop如何启动日志_vim


  4.  改完后需要按esc+:+wq!强制保存退出  >cd /opt/>ll>exit>cd /opt/>ll>rm   -rf   rh/>sudo  rm            -rf   rh/>ll>sudo  mkdir   module(创建一个文件夹,未来任何一个软件就安在这里面)>ll>sudo  mkdir    software>sudo  chown   nancheng:nancheng   module/  software/>ll      2.卸载对应的jdk:rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

二、克隆虚拟机

  1. 先关闭主虚拟机,右键>管理>克隆。
  2.  配置每台虚拟机的主机名:vim  /etc/sysconfig/network-scripts/ifcfg-ens33>将主机名改成对应的主机名>vim  /etc/hostname>改名。
  3. 测试每台主机能不能ping通外网。
  4. 配置VMware:右键>新建(主机名和用户验证)。
  5. 测试:hostname,能显示名字则为成功。
  6. (注:1.删除虚拟机 :右键>管理>从磁盘中删除。2.添加虚拟机(如果不小心将图标删除了):右键>打开>=文件中的位置。)

三、安装jdk

        打开VM>连接hadoop102>cd/opt/  >ll   >cd  software/   >上传jdk 资料包    >tar  -zxvf    jdk文件名 -C /opt/module/   >ll  >cd   opt./module   >ll  >cd jdk……>ll  >sudo vim /etc/profile   >sudo  cd /etc/profile.d   >cd /etc/profile.d/sudo  vim my _env.sh(这个是文件名,可以自己取名)(在里面写:#JAVA_HOME=(在打开一个hadoop102:cd  /opt/module/  > ll >pwd(复制下面的路径+/jdk的名字)

#JAVA_HOME
export JAVA_HOME=粘贴 
export PATH=$PATH:$JAVA_HOME/bin

 >esc+:+wq>source /etc/profile  >java (能运行就说明成功)。

四、安装Hadoop

         打开Xshell7连接hadoop102>cd  /opt/software>ll>tar  -zxvf  hadoop文件名  -C  /opt/module/>cd  ..>cd  madule>cd  hadoop-3.1.3(自己hadoop的文件名)\ll>pwd(复制下面的连接)>sudo vim /etc/profile.d/my_env.sh>

#HADOOP_HOME
export HADOOP_HOME=粘贴刚刚复制的内容
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

>source /etc/profile(有时候可以省略这一步)>hadoop(显示就成功);配置好后用ll查看里面有那些内容。

(注:修改系统文件:要么登陆管理员账户要么用sudo。)

五、本地运行模式

        本地配置:在cd hadoop-3.1.3文件中>mkdir wccinput >ll>cd wcinput/>ll>vim word.txt>

ss ss
cls cls
banzhang
bobo
yangge

>cd ..>ll>pwd>cd bin/>ll>cd ..>ll(如果对路径不熟悉的话)>bin/hadoop jar share/(按tab键)>hadoop/(tab键)>mapreduce/(按tab建两次)>h(tab)>e(tab)>wordcount(后续所有的mapreduce程序都必须指定输入路径和输出路径,并且输出路径不能存在)空格加两次tab>wcinput/   ./wcoutput(这个可以自己取名,文件夹不能存在) >回车执行>ll >cd wcoutput>ll>cat 文件名(查看数据)

六、完全分布式:集群纷发脚本scp、rsync、xsync

  1. scp:(hadoop102):cd /opt/module/>scp -r 文件名/ 目的地用户名@主机名:路径(/opt/module)>yes>输入密码            (Hadoop103):scp -r 对方的用户名@主机名:对方文件所在的路径(opt/module/hadoop-3.1.3) 目标地址 ./               (hadoop103)scp -r 文件所在服务器的用户名@主机名:文件所在路径/* 目标服务器的用户名@主机名:/路径
  2. rsync:rsync -av 原数据文件名/ 同步到那个服务器:路径……(hadoop-3.1.3)

cd /home/nancheng>touch a.txt(创建一个文件)>mkdir bin>cd bin/>pwd>cd ..>ll>cd bin/>vim xsync(在里面添加如下代码):

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
 echo Not Enough Arguement!
 exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
 echo ==================== $host ====================
 #3. 遍历所有目录,挨个发送
 for file in $@
 do
 #4. 判断文件是否存在
 if [ -e $file ]
 then
 #5. 获取父目录
 pdir=$(cd -P $(dirname $file); pwd)
 #6. 获取当前文件的名称
 fname=$(basename $file)
 ssh $host "mkdir -p $pdir"
 rsync -av $pdir/$fname $host:$pdir
 else
 echo $file does not exists!
 fi
 done
done

 >chmod 777 文件名(给它可执行权限)> cd ..>ll>xsync bin/(同步bin目录)>sudo ./bin/xsync /etc/profile.d/my_env.sh(分发环境变量)。

        103和104:

               cd /home/nancheng>ll>sudo vim /etc/profile.d/my_env.sh>ll>source /etc/profile

七、ssh无密登录配置

          cd /home/nancheng>pwd>ls -al(能够查看到所有的隐藏文件)>cd .ssh/>ssh-keygen -t rsa(按4次回车)>ll>cat 文件名(可以查看密钥的配置)>

 (每一台都要配置)

八、集群配置

cd /opt/module/hadoop文件名>ll >cd etc/hadoop/>.l>vim core-site.xml>按o(右键粘贴)

<!-- 指定 NameNode 的地址 -->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://hadoop102:8020</value>
 </property>
 <!-- 指定 hadoop 数据的存储目录 -->
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/opt/module/hadoop-3.1.3/data</value>
 </property>

>ll>vim hdfs-site.xml>按o粘贴

<!-- nn web 端访问地址-->
<property>
 <name>dfs.namenode.http-address</name>
 <value>hadoop102:9870</value>
 </property>
<!-- 2nn web 端访问地址-->
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop104:9868</value>
 </property>

>ll>vim yarn-site.xml>删掉里面的内容>粘贴(

<!-- 指定 MR 走 shuffle -->
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定 ResourceManager 的地址-->
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>hadoop103</value>
 </property>
 <!-- 环境变量的继承 -->
 <property>
 <name>yarn.nodemanager.env-whitelist</name>
 
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
 </property>

)>ll>vim mapred-site.xml>粘贴(

<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>

)>cd ..>ll>pwd>xsync hadoop/

查看配置是否完成:

(103)cd /opt/module/hadoop-3.1.3/>ll>cd etc/>ll>cat core-site.xml

九、群起集群

  1. 配置workers:     cd etc/hadoop/>ll>vim workers>
hadoop102
hadoop103
hadoop104

xsync workers>cd ..>cd ..

  1. hdfs namenode -format>ll(初始化后里面会多data和logs路径)>cd data/>ll>cd dfs/>ll>cd name/>ll>cd current>ll>vim VERSION(namespaceid是当前服务器的版本号)>cd /opt/module/>ll>cd sbin/>cd ..>ll>sbin/start-dfs.sh>jps                 (103和104)hadoop-3.1.3路径下>jps (查看配置)                 (103) sbin/(TAB键)》start-yarn.sh>jps

十、集群崩溃处理办法

  1. cd /opt/module/hadoop-3.1.3/>ll>jps
  2. sbin/stop-dfs.sh(杀死进程)>jps(102,103,104)>ll
  3. 删除data和logs(rm -rf data/ logs/)(102、103、104)
  4. 格式化:hdfs namenode -format
  5. 启动集群:sbin/start-dfs.sh>sh

十一、历史服务器配置

        (hadoop102,hadoop-3.1.3目录下)ll>cd etc/hadoop/>vim mapred-site.xml>

<!-- 历史服务器端地址 -->
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>hadoop102:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop102:19888</value>
</property>
>xsync mapred-site.xml>cd ..>cd ..>ll>jps>sbin/start-yarn.sh>jps>cd bin/>ll>cd ..>cd ..>bin/mapred --daemon start historyserver >jps(里面会多一个进程Jobhistoryserver)>hadoop fs -mkdir /input>hadoop fs -put wcinput/word.txt /input>ll>hadoop jar share/hadoop/mapreduce/hadoop-mapreduce>examples-3.1.3.jar wordcount /input /output

十二、日志聚焦功能设置

(102,hadoop文件下):cd etc/hadoop/>vim yarn-site.xml>

<!-- 开启日志聚集功能 -->
<property>
 <name>yarn.log-aggregation-enable</name>
 <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property> 
 <name>yarn.log.server.url</name> 
 <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
 <name>yarn.log-aggregation.retain-seconds</name>
 <value>604800</value>
</property>

>xsync yarn-sit.xml

(103)cd /opt/module/hadoop……/>jps>mapred --daemon stop historyserver>sbin/stop-yarnj.sh>sbin/start-yarn.sh>jps>mapred --daemon start historyserver>hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3 jar wordcount /input /output2