一. 实验目的以及实验环境
在Linux或者Windows下安装Hadoop并运行其中任意实例,本次试验简单运行一个wordcount 实例,选择的安装环境是在VMware Fusion 8.5.3虚拟机上,使用ubuntu来安装。以下是两个版本的截图。
二. 实验步骤以及运行结果截图
1.首先下载vmware虚拟机并安装
2.接着下载Linux套件,本实验使用ubuntu。前两个步骤不是本实验的重点,在此不做详细论述
3.配置jdk,首先在Java官网下载官方的jdk,尽量不要使用ubuntu自带的openjdk,可能会出现一些安装包不完整的情况,导致最后的Hadoop启动失败。将官网中下载的jdk放在主文件夹下,就是Home中。在/usr/local文件夹下创建一个java文件用来放置jdk
cd /usr/local
sudo mkdir java
上述两个语句就在/usr/local下创建了一个Java文件夹
将jdk放在Java文件夹下
sudo mv jdk-8u171-linux-x64.tar.gz/usr/local/java
解压
sudo tar zxvf./jdk-8u171-linux-x64.tar.gz
解压完成以后,在Java文件夹下就有了一个jdk1.8.0_171文件。然后设置jdk环境变量,这里采用全局设置的方法
sudo vi~/.bashrc
打开之后在末尾添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
之后在终端检测是否配置成功,输入
java -version
到此时jdk已经配置完毕
4.配置SSH。首先确认电脑网络连接没有问题
安装ssh:
sudo apt-getinstall ssh
然后配置免密码登陆本机,首先生成密钥对
ssh-keygen –trsa 然后一直按enter,将生成的密钥对保存在.ssh/id_rsa文件中
然后切到.ssh目录下,这是一个隐藏文件,使用ls –al 可以查看此文件,然后把密钥追加到授权的key里面去 cp id_rsa.pub authorized_keys 到此时就安装配置完成,然后执行ssh localhost 可以实现无密码连接,有提示说明配置成功
5.安装Hadoop. 经过上述jdk以及ssh的安装和配置,终于可以下载安装Hadoop了。在官网下载Hadoop源文件,并放在Home的Hadoop文件夹下,同样进行解压
sudo tar xzvfhadoop-3.1.0.tar.gz
解压完成之后有了一个hadoop-3.1.0文件夹,进入此文件夹下配置环境
cd etc/Hadoop
vi Hadoop-env.sh
打开此文件之后在末尾添加
exportJAVA_HOME=/usr/local/java/jdk1.8.0_171
exportHADOOP_HOME=/home/jin/hadoop/hadoop-3.1.0
exportPATH=$PATH:/home/jin/hadoop/hadoop-3.1.0/bin
接下来配置core-site.xml
vi core-site.xml添加:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/jin/hadoop/Hadoop-3.1.0/hadoop_tmp</value>
<description>A base for other temporarydirectories.</description>
</property>
</configuration>
配置mapred-site.xml
vimapred-site.xml 添加
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
配置hdfs-site.xml
vi hdfs-site.xml添加
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
至此已经完全配置完毕,接下来就可以运行Hadoop了
6.Hadoop运行
首先格式化namenode
bin/hadoopnamenode –format
然后启动hadoop
sbin/start-all.sh
然后jps检查一下,发现datanode没有启动,此时需要把设置的/home/jin/hadoop/hadoop-3.1.0/hadoop_tmp/dfs/data/current/VERSION文件的clusterID修改为dfs/name/current/VERSION内的clusterID,然后重启hadoop .设置完成之后查看进程jps
此时发现5个守护进程全部启动
7.运行wordcount
首先在hadoop-3.1.0下创建一个文件夹input,进入目录input
echo “helloworld”> test1.txt
将字符串hello world 输出到test1中,首先在hdfs中创建input文件目录
hadoop fs –mkdir/input
然后把test1放到hdfs的input目录下面
hadoop fs –put test1.txt /input
查看文件是否正确传入到/input目录下
hadoop fs –ls /input
上图可以看出文件已经存在于hdfs的input目录下。
最后即可执行
hadoop jar /home/jin/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jarwordcount /input /output
注意此过程只执行一次,如果再次执行会报output已经存在的错误,然后可以用以下两条指令来查看运行结果
hadoop fs –ls/output
hadoop fs –cat/output/part-r-00000
结果就是对test1中的单词进行计数统计