大数据开发入门:二、Centos8安装Hadoop框架并运行示例程序(伪分布式)
上一篇:大数据开发入门:一、VMware15.5 Pro安装Centos8及系统设置(全步骤)
一、新建WinSCP连接
1.先下载WinSCP并安装
version:5.13.2
链接:https://pan.baidu.com/s/19L-wzw01vpoiJu1nsg55-Q
提取码:bbaw
2.在虚拟机中输入命令su
进入根用户,然后输入命令chmod -R 777 /opt
给/opt文件夹授权,本教程以后的软件安装目录都在此处。
// 输入命令cd /
后转到根目录,然后输入命令ll
便可查看opt文件夹的权限情况。
3.新建站点
3.1首先一定要打开虚拟机,虚拟机配置信息在上一篇文章里介绍过。
3.2使用SFTP协议进行连接,主机名为虚拟机的IP地址,用户名和密码为虚拟机中你要登录的用户和密码。
// 如果在主机映射里设置了虚拟机IP地址与虚拟机主机名,此处的主机名也可以填写虚拟机主机名。
4.选择添加,把虚拟机的密钥保存到主机。添加后,以后便可自动登录。
5.连接建立成功
点击/进入根目录,然后点击opt目录并进入
6.将jdk和Hadoop压缩包利用WinSCP上传到虚拟机/opt目录下
二、安装jdk
1.在终端中输入命令exit
退出根用户,输入命令cd /opt
进入/opt文件夹,输入命令ls
,可以看到刚刚利用WinSCP上传到该文件夹的两个压缩包。
2.输入命令tar zxvf jdk-8u251-linux-x64.tar.gz
解压jdk-8u251-linux-x64.tar.gz,解压完毕后可以输入命令rm -rf jdk-8u251-linux-x64.tar.gz
删除没用的压缩包,节省系统空间。
// 解压后会在/opt目录下产生jdk1.8.0_251文件夹
3.输入命令ln -s jdk1.8.0_251 jdk
在/opt目录下创建jdk目录的软连接,注意这些操作都是用Hadoop用户完成的,不要使用根用户,否则以后运行程序会因为权限问题而出错。
/*
PS:
1.如果没用Hadoop用户进行解压,请使用命令chown
修改,使用方法和参数请自行搜索。
2.创建软链接好处在于以后维护jdk版本会方便很多,jdk版本更新后不必去修改profile等信息了,哪个软件更新,便修改该软件相应的软链接即可,profile等文件中,只存放软连接的地址。
*/
4.在终端中输入命令vi /opt/env.sh
创建env.sh脚本文件,并在脚本中按i
进入插入模式,插入如下信息。
#!/bin/bash
#HOME
export JAVA_HOME=/opt/jdk
#PATH
export PATH=.:$JAVA_HOME/bin:$PATH
按esc
键进入命令模式,输入命令:wq
保存并退出。
5.输入命令su
进入根用户,然后输入命令vi /etc/profile
修改profile
6.在文件最底部添加. /opt/env.sh
,然后用命令:wq
保存并退出
7.在终端里输入命令vi /etc/bashrc
,对bashrc进行同样的修改,修改后保存并退出。
8.输入命令reboot
重启系统,系统重启后设置生效,可以利用命令java -version
进行验证。
三、安装Hadoop框架
1.利用命令cd /opt
转到/opt目录
// 注意此时的用户应为Hadoop!!!
2.利用命令tar zxvf hadoop-2.7.7.tar.gz
解压hadoop,解压完毕后利用命令rm -rf hadoop-2.7.7.tar.gz
删除压缩包。
// 图片可参考安装jdk时的
3.输入命令ln -s hadoop-2.7.7 hadoop
创建hadoop目录的软链接。
// 可用命令ll
查看。
4.利用命令vi /opt/env.sh
修改env.sh脚本,往脚本里添加Hadoop的相关信息,具体信息如下。
export HADOOP_HOME=/opt/hadoop
在PATH里添加:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
添加完成后用命令:wq
退出。
5.利用命令cd /opt/hadoop/etc/hadoop/
移到hadoop配置文件夹下,其中我们需要修改core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml、yarn-site.xml配置文件。
配置文件中具体的配置信息可参考Hadoop官网的开发文档,本教程只提供一个常用的配置方案。
5.1快速修改
/*
利用WinSCP上传我已经修改好的文件,替换原有文件
Hadoop需要修改的相关文件下载:
链接:https://pan.baidu.com/s/1h7Bqib6eF-pZsL86tDMoaA
提取码:imtz
*/
5.2利用vim编辑器在Centos里进行修改
// 不建议使用这种方式
5.2.1修改core-site.xml文件,添加如下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Hadoop:9000</value>
<description>change hostname</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
</property>
</configuration>
5.2.2修改hadoop-env.sh,将jdk目录添加到文件相应位置。(如下图)
5.2.3修改hdfs-site.xml文件,添加如下内容
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Hadoop:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
5.3.4修改mapred-site.xml文件
首先运行命令cp mapred-site.xml.template mapred-site.xml
创建mapred-site.xml文件。
然后添加如下内容
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Hadoop:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Hadoop:19888</value>
</property>
</configuration>
5.3.5修改yarn-site.xml文件,添加如下内容
<configuration>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Hadoop:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Hadoop:8031</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>Hadoop:8032</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Hadoop:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Hadoop:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6.重启后env.sh配置生效,输入命令hadoop version
可查看hadoop版本
7.在终端中输入命令hdfs namenode -format
进行格式化,出现此字样意味着格式化成功。
8.输入命令start-dfs.sh && start-yarn.sh
,便可启动hdfs和yarn,其中hdfs是一种Hadoop文件系统,yarn是一种Hadoop资源管理器
9.输入命令jps
,就可以查看相关进程
四、执行Hadoop示例程序
1.创建wordcount.txt并上传到hdfs中
在/opt/hadoop目录下执行命令cp LICENSE.txt wordcount.txt
创建wordcout.txt。
执行命令hdfs dfs -mkdir /input
,在hdfs根目录创建/input文件夹。
执行命令hdfs dfs -put wordcount.txt /input
将创建好的wordcount.txt文件上传到/input文件夹。
执行命令hdfs dfs -ls /input
,可以查看/input文件夹下的文件。
2.执行命令hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar /input /output
,便可运行示例程序。
/*
命令解释:hadoop意味着使用hadoop框架,jar表示运行jar包程序,后边 /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar这一串是Hadoop示例程序的绝对位置(也可以使用相对位置),/input是hdfs文件系统中的程序输入目录,/output是程序执行后保存运行结果的目录。需要注意的是,/output目录不能提前存在,否则会程序执行失败,/output目录是经过程序运行才产生的,这里的命令只是给运行结果目录命名。
*/
3.在主机的浏览器中输入192.168.137.120:50070并访问,可以进入HDFS的web页面,在这里我们可以看到刚刚输出的结果,我们可以利用浏览器将结果下载到主机。