云计算实验——Hadoop实验

云计算实验——Hadoop实验,第1张

云计算实验——Hadoop实验

文章目录 云计算实验——Hadoop实验实验环境一、安装Hoodap1.1安装虚拟机+centos71.2下载hadoop3.3.21.3上传到centos中1.4JDK环境搭建1.4hadoop环境变量1.5 设置ssh免密码登录1.6修改Hadoop配置文件1.7启动Hadoop1.7.1初始化1.7.2启动Hadoop集群 1.8 查看NameNode和Yarn1.9运行Hadoop自带的wordcount程序 参考:


实验环境

VMware workstation 16 player
centos7
搭建Hadoop3.3.2分布式集群

一、安装Hoodap 1.1安装虚拟机+centos7

1.2下载hadoop3.3.2

官网下载实在是太慢了,几k几k的下载速度,这里使用镜像下载
使用清华镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
点击下载 hadoop-3.3.2.tar.gz 2022-03-03 03:46 609M

1.3上传到centos中

这里使用共享文件上传

找到共享文件

解压文件

复制一份到目录/hadoop

1.4JDK环境搭建

这里参考:https://blog.csdn.net/weixin_38972910/article/details/115375082
首先卸载自带的jdk
rpm -qa | grep java | xargs rpm -e --nodeps

安装jdk
yum install java-1.8.0-openjdk* -y

验证jdk
java -version

环境变量
查看yum 安装的jdk位置
ls -l /etc/alternatives/java

打开vi /etc/profile
另附上/etc/profile中JAVA_HOME的配置:(必须在文件末加上)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64
export JRE_HOME= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = {JRE_HOME}/lib export PATH= JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH

1.4hadoop环境变量

跟着上面一步,也搭建环境变量(文件末加入)
HADOOP_HOME=/hadoop/hadoop-3.3.2
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin

退出vim编辑器
保存文件立即生效
source /etc/profile

查看hadoop环境变量是否成功
hadoop version

1.5 设置ssh免密码登录

因为Hadoop是分布式平台,需要多个机器之间协作,设置ssh免密码登录可以减少每次登陆主机输入密码的繁琐流程。

1)centos自带ssh

2)设置免密登录
生成密钥对 ssh-keygen -t rsa ,回车到底
将公钥的内容写入到authorized_keys文件中 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

免密登录
ssh localhost
若能免密登录,即设置成功。
1.6修改Hadoop配置文件

这里需要配置七个文件:core-site.xml , hdfs-site.xml , mepred-site.xml, yarn-site.xml,hadoop.env.sh、yarn-env.sh,slaves

打开 /hadoop/hadoop-3.3.2/etc/hadoop/ 文件夹:

a. 配置 hadoop-env.sh 文件

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64

b.配置 core-site.xml 文件

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <!-- 配置到hadoop目录下temp文件夹 -->
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
</configuration>


c.配置 hdfs-site.xml 文件

<configuration>
    <property>
	<!--指定hdfs保存数据副本的数量,包括自己,默认为3-->
	<!--伪分布式模式,此值必须为1-->
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <!-- name node 存放 name table 的目录 -->
        <value>file:/usr/local/hadoop/tmp/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <!-- data node 存放数据 block 的目录 -->
        <value>file:/usr/local/hadoop/tmp/hdfs/data</value>
    </property>
</configuration>


d.配置 mapred-site.xml 文件

<configuration>
    <property>
	<!--指定mapreduce运行在yarn上-->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>


e.配置 yarn-site.xml 文件

<configuration>
    <property>
	<!--NodeManager获取数据的方式-->
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
    </property>
</configuration>

1.7启动Hadoop 1.7.1初始化

在terminal中输入

 hdfs namenode -format
(只初次启动需要)

1.7.2启动Hadoop集群

在terminal中输入 start-all.sh (或者分别输入 start-dfs.sh 和 start-yarn.sh)
使用 jps (JavaVirtualMachineProcessStatus) 命令查看Hadoop是否已启动,运行的java进程中应包含以下几种:

4050 Jps
3956 NodeManager
3653 SecondaryNameNode
3414 NameNode
3852 ResourceManager
3518 DataNode

start-all.sh 这里centos7会报错误

https://blog.csdn.net/weixin_49736959/article/details/108897129
解决方案:在/etc/profile末加入以下配置

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

以下成功了

1.8 查看NameNode和Yarn
http://localhost:9870/dfshealth.html#tab-overview
http://localhost:8088/cluster


1.9运行Hadoop自带的wordcount程序

a. 新建一个 words.txt 文件并输入几个单词

b. 在hdfs文件系统上创建input文件夹 hdfs dfs -mkdir /input

c. 将word.txt放入input文件夹 hdfs dfs -put words.txt /input

d. 查看是否已放入文件 hdfs dfs -ls /input

e. 运行wordcount程序 hadoop jar /hadoop/hadoop-3.3.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar wordcount /input /output
(Note:输出目录必须是一个不存在的目录,输出结果无法存放在已有目录中)

f. 查看程序输出 hdfs dfs -ls /output

g. 打开输出文件 hdfs dfs -cat /output/part-r-00000

参考: https://blog.csdn.net/weixin_43723625/article/details/106105568https://blog.csdn.net/qq_40374604/article/details/121153821https://blog.csdn.net/weixin_44324669/article/details/104653154https://blog.csdn.net/qq_42855570/article/details/115180674https://blog.csdn.net/weixin_49736959/article/details/108897129https://blog.csdn.net/qq_49723651/article/details/120962585https://blog.csdn.net/weixin_38972910/article/details/115375082https://blog.csdn.net/weixin_39709920/article/details/122546047

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/926377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存