标题实验一:以下操作在SecureCRT里面完成

1.关闭防火墙
firewall-cmd --state 显示防火墙状态running/not running
systemctl stop firewalld 临时关闭防火墙,每次开机重新开启防火墙
systemctl disable firewalld 禁止防火墙服务。

2.传输JDK和HADOOP压缩包
SecureCRT 【File】→【Connect SFTP Session】开启sftp操作
put jdk-8u121-linux-x64.tar.gz
put hadoop-2.7.3.tar.gz
传输文件从本地当前路径(Windows)到当前路径(Linux)

3.解压JDK、HADOOP
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module 解压安装
tar -zxvf hadoop-2.7.3.tar.gz -C /opt/module 解压安装

4.配置JDK并生效
vi /etc/profile文件添加:
export JAVA_HOME=/opt/module/jdk1.8.0_121
export PATH=hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_大数据PATH
Esc :wq!保存并退出。不需要配置CLASSPATH。
source /etc/profile配置生效
javac检验是否成功
或者在/.bashrc文件里添加JAVA_HOME,可以对不同用户设置不同配置权限。

5.配置HADOOP并生效
vi /etc/profile文件添加:
export HADOOP_HOME=/opt/module/hadoop-2.7.3
export PATH=hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hadoop_02HADOOP_HOME/sbin:$PATH
Esc :wq!保存并退出。
source /etc/profile配置生效
hadoop检验是否成功

5.单机模式配置hadoop -env.sh
vi /opt/module/hadoop-2.7.3/etc/hadoop/hadoop-env.sh文件修改
显示行号 Esc :set number 取消行号Esc :set nonumber
修改第25行export JAVA_HOME=/opt/module/jdk1.8.0_121
Esc :wq!保存并退出
本地模式没有HDFS和Yarn,配置JDK后MapReduce能够运行java程序。

6.运行自带程序wordcount
cd /opt/module/hadoop-2.7.3/share/hadoop/mapreduce 转入wordcount所在路径。
运行touch in.txt,创建In.txt文件,作为输入文件。
(如果in.txt是空文件,运行vi in.txt,输入内容作为被统计词频的输入文件)
输出目录/output必须不存在,程序运行后自动创建。
运行wordcount:
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/
运行成功之后,进入/output目录,打开文件part-r-00000查看计数结果。
Hadoop伪分布式模式配置
只有一台虚拟机bigdata128,既是namenode又是datanode。
5个配置文件:

  1. core-site.xml
    先创建临时文件夹:sudo mkdir -p /opt/module/hadoop-2.7.3/tmp
    1、vi ${HADOOP_HOME}/etc/hadoop/core-site.xml
    打开文件后,光标移到< /configuration>这对标签下,
    按 i 然后复制下面相应的红字内容,然后esc :wq!保存退出
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata128:9000</value>
</property>	
<!--配置HDFS数据块和元数据保存的目录,一定要修改-->

<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.3/tmp</value>
</property> 
2、hdfs-site.xml
vi ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
<!--注释配置数据块的冗余度,默认是3-->			 
<property>		 
	     <name>dfs.replication</name>		 
	     <value>1</value>		 
</property>		
<!--secondaryNameNode的主机地址--> 
<property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>bigdata128:50090</value>
</property>
3、	mapred-site.xml
1、vi ${HADOOP_HOME}/etc/hadoop/mapred-site.xml
	2、打开后文件是空的,复制下面内容到里面即可	 (内容过多,复制后有可能内容会不全,记得检查一下)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<!-- Put site-specific property overrides in this file. -->
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
4、	yarn-site.xml

vi ${HADOOP_HOME}/etc/hadoop/yarn-site.xml
添加配置如下:
<!--配置Yarn的节点-->			 
<property>			 
	  <name>yarn.resourcemanager.hostname</name> 
	  <value>bigdata128</value> 
</property>	 
<!--NodeManager执行MR任务的方式是Shuffle洗牌-->			 
<property>	 
	  <name>yarn.nodemanager.aux-services</name> 
	  <value>mapreduce_shuffle</value> 
</property>	 
5、Slaves文件里使用默认localhost,或者添加 bigdata128(既是NameNode又是DataNode)
注:如果Slaves文件为空,就没有DataNode和NodeManager。
在Hadoop-2.7.3目录下输入:
ls 查看目录
vi slaves
输入
localhost
bigdata128
esc :wq!保存并退出
格式化:hdfs namenode –format (如果不是第一次格式化,格式化之前先删除/opt/module/hadoop-2.7.3/下面的tmp、logs两个目录)时间较长,记得多等

启动:   start-all.sh(如果启动之前已经启动过,启动之前先停止stop-all.sh)
查看伪分布式配置是否成功:
②	执行ll,查看/opt/module/hadoop-2.7.3/tmp/dfs目录,如下图所示,则正确。
②执行jps,如下图所示,NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager如果全部启动,伪分布式配置成功。
web控制台访问:http://192.168.163.132:50070 、http://192.168.163.132:8088 
页面正常显示,则成功。

在这里插入代码片

五、运行wordcount

hdfs dfs -put in.txt /adir 上传本地当前路径下的in.txt文件 到hdfs的/adir目录下。

运行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/。

在http://192.168.163.132:50070 查看/user/root/output/part-r-00000文件里的词频统计结果

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hadoop_03


Hadoop完全分布式模式配置

关闭虚拟机和软件,找到虚拟机所在文件夹

并复制虚拟机文件夹在当前目录下 名字可改可不改 改了原来的虚拟机就不可用需要重新打开

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hadoop_04

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hdfs自动解压zip_05


[打开三个虚拟机更改主机名:第二台虚拟机更改为bigdata129第三台为bigdata130

hostnamectl set-hostname bigdata129

hostnamectl --pretty

hostnamectl –static

reboot –f 重启就改好了

]

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hdfs自动解压zip_06


hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_xml_07


像前一个一样新建两个连接,ip默认是在原虚拟机ip最后加1,如果连接不上可以在虚拟机上查看 ip addr

在crt选择原虚拟机(128那台)进行下面的操作

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hdfs_08


共3个虚拟机,前述伪分布式的bigdata128作为master,克隆另外两个虚拟机slaves:

输入 vi slaves 修改配置文件

配置hosts文件

vi /etc/hosts

3个虚拟机都修改\etc\hosts,注释已有内容,添加集群3个虚拟机的ip及对应主机名:

192.168.163.128 bigdata128

192.168.163.129 bigdata129

192.168.163.131 bigdata131

3个虚拟机都删除\opt\module\hadoop-2.7.3\d的tmp、logs目录:

rm –rf \opt\module\hadoop-2.7.3\tmp rm –rf \opt\module\hadoop-2.7.3\logs

(若无法删除,先进入hadoop目录 cd /opt/module/hadoop-2.7.3 然后再删除 rm –rf tmp 复制有可能出错建议手打)

Logs也一样 三台虚拟机都删除

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hadoop_09


格式化master: hdfs namenode -format

启动master: start-all.sh

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_hadoop_10


启动正常jps显示3台主机如上如下

启动正常创建目录如下

hdfs自动解压zip hadoop解压文件命令tar-zxvf不执行_xml_11