Hadoop初体验
使用HDFS
1.从Linux本地上传一个文本文件到hdfs的/目录下
#在/export/data/目录中创建a.txt文件,并写入数据
cd /export/data/
touch a.txt
echo "hello" > a.txt
#将a.txt上传到HDFS的根目录
hadoop fs -put a.txt /
2.通过页面查看
通过NameNode页面.进入HDFS:http://node1:9870/
运行mapreduce程序
在Hadoop安装包的share/hadoop/mapreduce下有官方自带的mapreduce程序。我们可以使用如下的命令进行运行测试。(示例程序jar:hadoop-mapreduce-examples-3.1.4.jar计算圆周率)
yarn jar /export/server/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 2 50
关于圆周率的估算,感兴趣的可以查询资料蒙特卡洛方法来计算Pi值,计算命令中2表示计算的线程数,50表示投点数,该值越大,则计算的pi值越准确。
9.3 安装目录结构说明
9.3.1 Hadoop安装包目录结构
bin Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
etc Hadoop配置文件所在的目录,包括core-site,xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0新增的配置文件。
include 对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
lib 该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
libexec 各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
sbin Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
share Hadoop各个模块编译后的jar包所在的目录,官方自带示例。
9.3.2 Hadoop配置文件
9.3.2.1 hadoop-env.sh
文件中设置的是Hadoop运行时需要的环境变量。JAVA_HOME是必须设置的,即使我们当前的系统中设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机上执行,它也是把当前的执行环境当成远程服务器。
9.3.2.2 core-site.xml
hadoop的核心配置文件,有默认的配置项core-default.xml。
core-default.xml与core-site.xml的功能是一样的,如果在core-site.xml里没有配置的属性,则会自动会获取core-default.xml里的相同属性的值。
在该文件中的标签中添加以下配置,
在这里添加配置
9.3.2.3 hdfs-site.xml
HDFS的核心配置文件,主要配置HDFS相关参数,有默认的配置项hdfs-default.xml。
hdfs-default.xml与hdfs-site.xml的功能是一样的,如果在hdfs-site.xml里没有配置的属性,则会自动会获取hdfs-default.xml里的相同属性的值。
9.3.2.4 mapred-site.xml
MapReduce的核心配置文件,Hadoop默认只有个模板文件mapred-site.xml.template,需要使用该文件复制出来一份mapred-site.xml文件
9.3.2.5 yarn-site.xml
YARN的核心配置文件,在该文件中的标签中添加以下配置,
9.3.2.6 workers
workers文件里面记录的是集群主机名。一般有以下作用:
1.配合一键启动脚本如start-dfs.sh、stop-yarn.sh用来进行集群启动。这时候workers文件里面的主机标记的就是从节点角色所在的机器。