我所使用的主要工具版本:
Linux系统:CentOS7
jdk安装包:jdk-8u144-linux-x64.tar.gz
hadoop安装包:目前最新版的维护版本hadoop-3.1.3.tar.gz(3.1.3版本详情介绍http://hadoop.apache.org/docs/r3.1.3/)
目的:三种模式的集群搭建(第一,二种不算,主要是第三种)
本地运行模式(测试使用).伪分布式运行模式(类似完全分布式,但只有一个节点,测试使用),完全分布式模式
- 配置一台模板机,修改IP静态,主机名,主机名和IP映射,关闭防火墙
- 克隆模板机,至少三台(如果电脑配置不太好),一台做本地运行模式.伪分布式运行模式,另外三台做伪分布式
- 给模板机安装jdk,hadoop
- jdk环境变量:修改配置文件/etc/profile,添加环境变量JAVA_HOME,PATH
- 重启,java -version验证是否安装成功
- Hadoop环境变量: 修改配置文件hadoop-3.1.3/etc/hadoop/hadoop-env.sh ,添加jdk的JAVA_HOME环境变量
- 再修改配置文件/etc/profile,添加环境变量HADOOP_HOME,PATH
- 本地运行模式:(一台主机)
- 测试grep案例:
- 使用Hadoop安装包中的mapreduce测试jar包,grep方式筛选符合的正则表达式的内容进行统计(map的拆分和reduce的聚合):
- bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'config[a-z.]+'
- 产生的结果文件:
- 文件内容:
- 使用Hadoop安装包中的mapreduce测试jar包,grep方式筛选符合的正则表达式的内容进行统计(map的拆分和reduce的聚合):
- 测试wrdcount案例:
- 测试grep案例:
- 伪分布式模式:(一台机器)
- 启动HDFS并运行MapReduce程序:
- 指定副本数量:
- 修改配置文件hdfs-site.xml
- 配置HDFS的NameNode地址,产生的文件存储目录:
- 修改配置文件core-site.xml
- 后续:
- 指定副本数量:
- YARN上运行MapReduce程序:
- 配置YARN的ResourceManager的地址,reduce方式:
- 修改配置文件yarn-site.xml
- 在mapred-env.sh配置JAVA——HOME环境变量
- 将mapred-site.xml.template重命名为mapred-site.xml,指定MapReduce在YARN上运行
- 配置YARN的ResourceManager的地址,reduce方式:
- 启动HDFS并运行MapReduce程序:
问题解决:
- 采用最小化安装centos,有些命令找不到,比如ifconfig命令
yum provides ifconfig查看需要安装的包
yum install net-tools
- centOS7的主机名配置文件在/etc/hostname