基础环境:
1、win10、hadoop3.0 jdk1.8.0
2、Ubuntu16、hadoop3.0、jdk1.8.0
Hadoop 下载地址:http://hadoop.apache.org/releases.html
安装:
windows:
1、运行\hadoop-3.0.0\etc\hadoop>hadoop-env.cmd 配置环境变量
问题:提示JAVA_HOME is incorrectly set.
Please update ***\hadoop-3.0.0\etc\hadoop\hadoop-env.cmd
解决:查看hadoop-env.cmd 中set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_101
因为路径中存在空格,导致识别错误,使用PROGRA~1替换Program Files 即C:\PROGRA~1\Java\jdk1.8.0_101 测试通过
2、配置Hadoop环境变量
HADOOP_HOME=D:\work\hadoop\hadoop-3.0.0
path=%HADOOP_HOME%\bin;
测试:hadoop version
结果:Hadoop 3.0.0
Source code repository https://git-wip-us.apache.org/repos/asf/hadoop.git -r c25427ceca461ee979d30edd7a4b0f50718e6533
Compiled by andrew on 2017-12-08T19:16Z
Compiled with protoc 2.5.0
From source with checksum 397832cb5529187dc8cd74ad54ff22
This command was run using /D:/work/hadoop/hadoop-3.0.0/share/hadoop/common/hadoop-common-3.0.0.jar
Ubuntu:
同windows一样设置JAVA、HADOOP环境变量
1、修改etc/hadoop/core-site.xml 添加
fs.defaultFS
hdfs://ubuntu:8020
用来指定hdfs服务,添加下面指定Hadoop的临时文件目录
hadoop.tmp.dir
/data/hadoop/data/tmp
2、修改etc/hadoop/hdfs-site.xml
dfs.replication
1
该配置是用来dfs.replication配置的是HDFS存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1。
3、格式化HDFS
hdfs namenode -format
然后在上面配置的临时文件目录里面则会产生一个dfs目录。
4、启动namenode
hdfs -daemon start namenode
5、启动datanode
hdfs -daemon start datanode
6、启动 secondaryNameNode
hdfs -daemon start secondaryNameNode
全部启动以后通过jps查看,可以查看一下java进程
jps
namenode
datanode
secondartNameNode
如果有那个进程不存在,则去$HADOOP_HOME/logs下面去查看日志,找到启动失败原因
7、HDFS上传下载测试
a、在hdfs上面创建目录
hdfs hdf -mkdir /test
b、本地创建一个文件hdfsTest.input,然后上传到上面的目录
hdfs hdf -put hdfsTest.input /test
c、查看上传的文件内容
hdfs hdf -cat /test/hdfsTest.input
d、查看目录列表,和shell中的ls命令结果相仿
hdfs hdf -ls /test
e、下载上传的文件
hdfs hdf -get /test/hdfsTest.input /temp
8、搭建yarn
修改etc/hadoop/mapred-site.xml,添加
mapreduce.framework.name
yarn
mapreduce.reduce.env
HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME}
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME}
mapreduce.map.env
HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME}
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
ubuntu
yarn.nodemanager.aux-services配置了yarn的默认混洗方式,选择为mapreduce的默认混洗算法。
yarn.resourcemanager.hostname指定了Resourcemanager运行在哪个节点上,本次使用单节点虚拟,所以使用本机的名称ubuntu。
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
9、启动resourcemanager 和nodemanager
yarn -daemon start resourcemanager
yarn -daemon start nodemanager
通过jps 查看验证启动结果,启动成功后访问 http://ubuntu:8088/ 查看yarn监控页面,通过 http://ubuntu:8042/查看node数据
10、Mapreduce job 测试
hadoop中自带有一些简单的示例,放在share/hadoop/mapreduce/目录下面
首先创建测试数据文件和结果输出目录,然后运行示例
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcount ./wordcountdemo/input ./wordcountdemo/output
执行成功后查看数据目录,可以看到两个文件_SUCCESS 和part-r-00000
前面是执行的状态,后面是执行结果文件