4.1 HADOOP集群搭建
4.1.1集群简介
HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 NameNode / DataNode YARN集群: 负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager (那mapreduce是什么呢?它其实是一个应用程序开发包) 本集群搭建案例,以5节点为例进行搭建,角色分配如下: hdp-node- NameNode SecondaryNameNode hdp-node- ResourceManager hdp-node- DataNode NodeManager hdp-node- DataNode NodeManager hdp-node- DataNode NodeManager 部署图如下: 4.1.2服务器准备
本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本: ü Vmware 11.0 ü Centos 6.5 64bit 4.1.3网络环境准备
ü 采用NAT方式联网 ü 网关地址:192.168.33.1 ü 3个服务器节点IP地址:192.168.33.101、192.168.33.102、192.168.33.103 ü 子网掩码:255.255.255.0 4.1.4服务器系统设置
ü 添加HADOOP用户 ü 为HADOOP用户分配sudoer权限 ü 同步时间 ü 设置主机名 n hdp-node- n hdp-node- n hdp-node- ü 配置内网域名映射: n 192.168.33.101 hdp-node- n 192.168.33.102 hdp-node- n 192.168.33.103 hdp-node- ü 配置ssh免密登陆 ü 配置防火墙 4.1. Jdk环境安装
ü 上传jdk安装包 ü 规划安装目录 /home/hadoop/apps/jdk_1.7.65 ü 解压安装包 ü 配置环境变量 /etc/profile 4.1. HADOOP安装部署
补充: HADOOP的版本选择 、APACHE官方版本 大版本: 0.20. .x .x 2.6. 2.7. 、商业发行版(商业版提供完善的管理系统、修bug可能领先于官方): Cloudera公司的CDH:5.7.x ü 上传HADOOP安装包 ü 规划安装目录 /root/apps/hadoop-2.6. ü 解压安装包 ü 修改配置文件 $HADOOP_HOME/etc/hadoop/ 最简化配置如下: vi hadoop-env.sh # The java implementation to use. export JAVA_HOME=/home/hadoop/apps/jdk1..0_51 vi core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hdp-node-01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/HADOOP/apps/hadoop-2.6./tmp</value> </property> </configuration> vi hdfs-site.xml <configuration> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/data/name,/path2/,/path3/,nfs://</value> </property> <!---namenode配置多个目录和datanode配置多个目录,有什么区别?----> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/data/data,/path2/</value> </property> <property> <name>dfs.replication</name> <value></value> </property> <property> <name>dfs.secondary.http.address</name> <value>hdp-node-:</value> </property> </configuration> vi mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> vi yarn-site.xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> vi salves hdp-node- hdp-node- hdp-node- 4.1. 启动集群
初始化HDFS bin/hadoop namenode -format 启动HDFS sbin/start-dfs.sh 启动YARN sbin/start-yarn.sh 4.1. 测试
、上传文件到HDFS
从本地上传一个文本文件到hdfs的/wordcount/input目录下 [HADOOP@hdp-node- ~]$ HADOOP fs -mkdir -p /wordcount/input [HADOOP@hdp-node- ~]$ HADOOP fs -put /home/HADOOP/somewords.txt /wordcount/input 、运行一个mapreduce程序
在HADOOP安装目录下,运行一个示例mr程序 cd $HADOOP_HOME/share/hadoop/mapreduce/ hadoop jar mapredcue-example-2.6..jar wordcount /wordcount/input /wordcount/output 集群使用初步
5.1 HDFS使用
、查看集群状态 命令: hdfs dfsadmin –report 可以看出,集群共有3个datanode可用 也可打开web控制台查看HDFS集群信息,在浏览器打开http://hdp-node-01:50070/ 、上传文件到HDFS ² 查看HDFS中的目录信息 命令: hadoop fs –ls / ² 上传文件 命令: hadoop fs -put ./ scala-2.10..tgz to / ² 从HDFS下载文件 命令: hadoop fs -get /yarn-site.xml 5.2 MAPREDUCE使用
mapreduce是hadoop中的分布式运算编程框架,只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序 5.2. Demo开发——wordcount
、需求 从大量(比如T级别)文本文件中,统计出每一个单词出现的总次数 、mapreduce实现思路 Map阶段: a) 从HDFS的源数据文件中逐行读取数据 b) 将每一行数据切分出单词 c) 为每一个单词构造一个键值对(单词,) d) 将键值对发送给reduce Reduce阶段: a) 接收map阶段输出的单词键值对 b) 将相同单词的键值对汇聚成一组 c) 对每一组,遍历组中的所有“值”,累加求和,即得到每一个单词的总次数 d) 将(单词,总次数)输出到HDFS的文件中 、 具体编码实现 ()定义一个mapper类 //首先要定义四个泛型的类型 //keyin: LongWritable valuein: Text //keyout: Text valueout:IntWritable public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{ //map方法的生命周期: 框架每传一行数据就被调用一次 //key : 这一行的起始点在文件中的偏移量 //value: 这一行的内容 @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { //拿到一行数据转换为string String line = value.toString(); //将这一行切分出各个单词 String[] words = line.split(" "); //遍历数组,输出<单词,1> for(String word:words){ context.write(new Text(word), new IntWritable()); } } } ()定义一个reducer类 //生命周期:框架每传递进来一个kv 组,reduce方法被调用一次 @Override protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { //定义一个计数器 int count = ; //遍历这一组kv的所有v,累加到count中 for(IntWritable value:values){ count += value.get(); } context.write(key, new IntWritable(count)); } } ()定义一个主类,用来描述job并提交job public class WordCountRunner { //把业务逻辑相关的信息(哪个是mapper,哪个是reducer,要处理的数据在哪里,输出的结果放哪里。。。。。。)描述成一个job对象 //把这个描述好的job提交给集群去运行 public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job wcjob = Job.getInstance(conf); //指定我这个job所在的jar包 // wcjob.setJar("/home/hadoop/wordcount.jar"); wcjob.setJarByClass(WordCountRunner.class); wcjob.setMapperClass(WordCountMapper.class); wcjob.setReducerClass(WordCountReducer.class); //设置我们的业务逻辑Mapper类的输出key和value的数据类型 wcjob.setMapOutputKeyClass(Text.class); wcjob.setMapOutputValueClass(IntWritable.class); //设置我们的业务逻辑Reducer类的输出key和value的数据类型 wcjob.setOutputKeyClass(Text.class); wcjob.setOutputValueClass(IntWritable.class); //指定要处理的数据所在的位置 FileInputFormat.setInputPaths(wcjob, "hdfs://hdp-server01:9000/wordcount/data/big.txt"); //指定处理完成之后的结果所保存的位置 FileOutputFormat.setOutputPath(wcjob, new Path("hdfs://hdp-server01:9000/wordcount/output/")); //向yarn集群提交这个job boolean res = wcjob.waitForCompletion(true); System.exit(res?:); } 5.2. 程序打包运行
将程序打包
准备输入数据
vi /home/hadoop/test.txt Hello tom Hello jim Hello ketty Hello world Ketty tom 在hdfs上创建输入数据文件夹: hadoop fs mkdir -p /wordcount/input 将words.txt上传到hdfs上 hadoop fs –put /home/hadoop/words.txt /wordcount/input 将程序jar包上传到集群的任意一台服务器上 使用命令启动执行wordcount程序jar包
$ hadoop jar wordcount.jar cn.itcast.bigdata.mrsimple.WordCountDriver /wordcount/input /wordcount/out 查看执行结果
$ hadoop fs –cat /wordcount/out/part-r-

大数据学习——HADOOP集群搭建的更多相关文章

  1. 大数据学习——hadoop集群搭建2.X

    1.准备Linux环境 1.0先将虚拟机的网络模式选为NAT 1.1修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=itcast ### ...

  2. 大数据平台Hadoop集群搭建

    一.概念 Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce.HDFS是一个分布式文件系统,类似mogilef ...

  3. 大数据中Hadoop集群搭建与配置

    前提环境是之前搭建的4台Linux虚拟机,详情参见 Linux集群搭建 该环境对应4台服务器,192.168.1.60.61.62.63,其中60为主机,其余为从机 软件版本选择: Java:JDK1 ...

  4. 大数据学习——Storm集群搭建

    安装storm之前要安装zookeeper 一.安装storm步骤 1.下载安装包 2.解压安装包 .tar.gz storm 3.修改配置文件 mv /root/apps/storm/conf/st ...

  5. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  6. 大数据中HBase集群搭建与配置

    hbase是分布式列式存储数据库,前提条件是需要搭建hadoop集群,需要Zookeeper集群提供znode锁机制,hadoop集群已经搭建,参考 Hadoop集群搭建 ,该文主要介绍Zookeep ...

  7. Java+大数据开发——Hadoop集群环境搭建(一)

    1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 NameNode / DataN ...

  8. Java+大数据开发——Hadoop集群环境搭建(二)

    1. MAPREDUCE使用 mapreduce是hadoop中的分布式运算编程框架,只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序 2. Demo开发--wo ...

  9. 大数据-HBase HA集群搭建

    1.下载对应版本的Hbase,在我们搭建的集群环境中选用的是hbase-1.4.6 将下载完成的hbase压缩包放到对应的目录下,此处我们的目录为/opt/workspace/ 2.对已经有的压缩包进 ...

随机推荐

  1. 优先队列 POJ 3253 Fence Repair

    题目传送门 题意:一块木板按照某个顺序切成a[1], a[2]...a[n]的长度,每次切都会加上该两段木板的长度,问选择什么顺序切能使得累加和最小 分析:网上说这是哈夫曼树.很容易想到先切掉最长的, ...

  2. h5-23-百度地图api

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  3. selenium处理的操作

  4. Ionic之增加样式会自动换行解决方案

    设置样式的时候,引用自身的样式,能正常显示,但是引用自定义样式显示的时候,竟然或自动换行,好尴尬. 原本代码: $('.codeSuccess').css({'display':'block'}); ...

  5. android开发学习 ------- git - 将代码回滚到任意版本

    不小心将一个东西错误提交到git - 远程仓库上 参考  https://www.cnblogs.com/wancy86/p/5848024.html 你的git可能关联了多个远程仓库,每个关联的代码 ...

  6. mybatis generator 整合lombok

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  7. 复习-PEP8规范(转)

    PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换 ...

  8. #pragma使用分析

    #pragma简介 #pragma用于指示编译器完成一些特定的动作 #pragma所定义的很多指示字是编译器特有的 #pragma在不同的编译器间是不可移植的 预处理器将忽略它不认识的#pragma指 ...

  9. java写跳一跳辅助程序

    ##起初是想使用按键精灵脚本程序控制,但还是选择熟悉的java.我这里使用了工具,造成延迟问题.也求教:java控制安卓的正确姿势, 参考了.NET玩跳一跳,思路都是一样的,只不过使用ADB控制安卓的 ...

  10. SpringBoot学习 (一) Eclipse中创建新的SpringBoot项目

    1. Eclipse中安装STS插件 (1)在线安装 Help--Eclipse Marketplace... 搜索“STS”,点击“install”安装    (2)本地安装 打开网页 http:/ ...