一、大数据简介及发展前景
二、Hadoop 简介、生态圈简介及核心介绍
三、 VMwareo 环境安装与 CentOS 安装
四、Hadoop 单机环境安装配置和实现单词计数功能
一、大数据简介及发展前景
1、大数据(Big Data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产
VeLocity(高速):处理速度快
二、Hadoop 简介、生态圈简介及核心介绍
Hadoop 实现了一个分布式文件系统(Hadoop distributed File System),简称 HDFS
Flume:一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统
HBase:能支持结构化数据大表存储的可扩展的、分布式的数据库
Mahout:一个可扩展的机器学习和数据挖掘库
Pig:它是一个工具 / 平台,用于分析较大的数据集,并将它们表示为数据流
Oozie:一个工作流引擎服务器,用于运行 Hadoop Map/Reduce 和 Hive 等任务工作流
1、Hadoop 是 Apache 软件基金会所开发的并行计算框架与分布式文件系统
1)HDFS2 架构:HDFS 的作用是负责对数据的分布式存储
2)YARN 架构:YARN 架构是一个资源调度和管理的平台
3)MapReduce 架构:MapReduce 架构依赖于磁盘 I/O 的批处理计算模型
三、 VMwareo 环境安装与 CentOS 安装
b、yum -y remove java-1.* 卸载已安装的 jdk。直到提示出现“Complete”,则卸载完成
tar -zxvf soft/jdk-8u112-linux- x64.tar.gz
(2)解压 jdk 压缩文件到 opt 目录,并将 jdk1.8.0_112 目录变为 jdk
g、vi /etc/profile.d/hadoop-eco.sh
在 hadoop-eco.sh 中添加相关内容后,保存并退出
i、source /etc/profile.d/hadoop-eco.sh
四、Hadoop 单机环境安装配置和实现单词计数功能
2、解压压缩文件
5、Hadoop配置文件:
(1)hadoop-env.sh 的配置:修改 JAVA_HOME 的地址为 exprot JAVA_HOME=/opt/jdk
(2)yarn-env.sh 的配置:修改 JAVA_HOME 的地址为 exprot JAVA_HOME=/opt/jdk
<configuration>
<value>hdfs://localhost:9000</value>
<!-- 指定 Hadoop 运行时产生文件的存储路径 -->
<value>file:///opt/hadoop-record/tmp</value>
</configuration>
<configuration>
<!-- 数据副本数量 -->
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoop-record/name</value>
<!-- datanode 数据存放地址 -->
<name>dfs.datanode.data.dir</name>
<value>file:///opt/hadoop-record/data</value>
</configuration>
<configuration>
<!--mapreduce 运行的平台,默认 Local-->
<name>mapreduce.framework.name</name>
</configuration>
<configuration>
<name>yarn.resourcemanager.hostname</name>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</configuration>
hdfs namenode -format //对name节点格式化
启动:
start-dfs.sh
单词技术功能实现
Mapper类的实现
package com.hadoop.wc;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
public class WCdMapper extends Mapper<LongWritable, Text,Text,LongWritable> {
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String[] fields = value.toString().split("\t");
for (String f:fields){
context.write(new Text(f),new LongWritable(1));
}
}
}
Reducer类的实现
package com.hadoop.wc;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import java.io.IOException;
public class WCdReduce extends Reducer<Text, LongWritable,Text,LongWritable> {
@Override
protected void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException {
long time=0;
for (LongWritable value:values){
time+=value.get();
}
context.write(new Text(key),new LongWritable(time));
}
}
Driver类的实现
package com.hadoop.wc;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
public class WCdDriver {
public static void main(String[] args) {
Configuration conf = new Configuration();
try {
Job job = Job.getInstance(conf);
job.setJarByClass(WCdDriver.class);
job.setMapperClass(WCdMapper.class);
job.setReducerClass(WCdReduce.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(LongWritable.class);
job.setoutputKeyClass(Text.class);
job.setoutputValueClass(LongWritable.class);
Path input = new Path("/data");
Path output = new Path("/output");
output.getFileSystem(conf).delete(output,true);
FileInputFormat.setInputPaths(job,input);
FileOutputFormat.setoutputPath(job,output);
boolean result = job.waitForCompletion(true);
System.exit(result?0:1);
} catch (IOException e) {
e.printstacktrace();
} catch (InterruptedException e) {
e.printstacktrace();
} catch (ClassNotFoundException e) {
e.printstacktrace();
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。