Hadoop伪分布式集群安装部署
一、 准备环境
1, 安装简介
Java-- jdk-8u121-linux-x64.tar.gz
Hadoop--hadoop-2.7.4.tar.gz (jdk1.7会报错)
本系列教程所有jar包,请关注微信公众号 :Spark高级玩法,输入software获取。
二, 修改主机名
2.1查看主机名
hostname
2.2 修改/etc/sysconfig/network文件
修改前
修改后
2.3 立即生效
假如只是完成了步骤2.2,实际上只是修改了静态配置,重启的时候才会生效,要想立即生效,可以输入
2.4 修改/etc/hosts
3, 安装java
主要就是配置一下JAVA_HOME。在这之前,由于采用的系统往往都带有openjdk,所以要先卸载。
rpm -qa |grep java
rpm -e --nodeps [java]
然后,配置JAVA_HOME及命令系统环境变量
Java的解压路径
配置环境变量,vi /etc/profile
三、 安装hadoop
配置伪分布式集群,学习来用实际上很简单。跟着下面的步骤,保证能成功。
1, 配置hadoop-env.sh,yarn-env.sh,mepre-env.sh
主要是在这三个文件的开头加上JAVA_HOME,不配置的话他们会自动从环境变量里面获取。配置为了显示指定JAVA版本环境。
export JAVA_HOME=/opt/modules/jdk1.8.0_121
默认情况下是这样的:
2,配置core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.7.4/data/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Luffy.OnePiece.com:8020</value>
</property>
这里之所以要配置,hostname而不是ip,主要是我们的ip,尤其是虚拟机的ip,会变动,所以为了避免频繁梗概配置文件,就采用hostname。
hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中。先创建该目录:mkdir -p /opt/modules/hadoop-2.7.4/data/tmp/
3,配置hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
简单的学习,伪分布式只需要将副本数配置为1(只有一个datanode实例).
4,配置mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
Mapreduce的运行模式,常用的就是yarn(生产),local(测试)两种模式。
5,配置yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Luffy.OnePiece.com</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
yarn.nodemanager.aux-services 这个属性,常用的还有spark_shuffle,后面讲到Spark的安装配置的时候我们会讲到。
6,配置slaves
此文件,可以配置也可以不配,不配的话需要逐台去启动从节点。
我们配置未前面说的修改后的主机名
Luffy.OnePiece.com
7,配置hadoop环境变量
其实,配置到6小步骤的时候,就可以启动伪分布式模式了,但是很多小白曾经在我博客上留言说,少配置了系统环境变量。就是由于命令sbin/yarn-daemon.sh start resourcemanager类似这些,都是需要使用绝对路径或者相对路径,而不是直接使用
yarn-daemon.sh。其实这样做的目的是方便多版本测试,否则你没测试一个版本都要重建环境变量(当然也可以使用同名链接的方式)。
vi /etc/profile
export HADOOP_HOME=/opt/modules/hadoop-2.7.4/
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
生效:
重启,或者再root模式下执行source /etc/profile
四、 测试wc
1, 启动hdfs
格式化,hdfs,然后启动hdfs相关的服务
$hdfs namenode -format
$hadoop-daemon.sh start namenode
$hadoop-daemon.sh start datanode
jps查看进程
这个时候可以访问我们的hdfs的50070端口,前提是windows和linux网络是通畅的,使用主机名的话也要讲主机和ip映射C:WindowsSystem32driversetcHOSTS文件
在浏览器输入Luffy.OnePiece.com:50070
2,启动yarn
$yarn-daemon.sh start resourcemanager
$yarn-daemon.sh start nodemanager
3,跑wordcount案例
准备好数据
运行
yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar wordcount input/ output
console输出
Yarn的Web界面
结果
五,总结
hadoop伪分布式适合我们平时验证性学习,实际上也可以帮助我们快速学习入门其它的框架比如hive,hbase,spark等。搭建集群,我们学习用的机器一般是不允许的,所以此时采用hadoop伪分布式模式
推荐阅读:
5,Spark源码系列之foreach和foreachPartition的区别
- 机器学习决策树:sklearn分类和回归
- 机器学习决策树:提炼出分类器算法
- 机器学习:XGBoost 安装及实战应用
- Ryu:如何在LLDP中添加自定义LLDPDU
- 机器学习|kaggle数据挖掘和求解的基本步骤
- mybatis_generator_逆向工程的使用笔记
- 纳税服务系统总结
- 纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】
- 纳税服务系统三(优化处理)【异常处理、抽取BaseAction】
- 机器学习|快速排序思想求topk
- 纳税服务系统二(用户模块)【POI、用户唯一性校验】
- 纳税服务系统四(角色模块)【角色与权限、角色与用户】
- 纳税服务系统五(登陆与系统拦截)【配置系统、子系统首页、登陆与拦截】
- 纳税服务系统六(信息发布管理模块)【Ueditor、异步信息交互、抽取BaseService、条件查询、分页】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- (四)python3 只需3小时带你轻松入门—— 流程控制
- (五)python3 只需3小时带你轻松入门—— 逻辑运算符
- (六)python3 只需3小时带你轻松入门——循环
- (七)python3 只需3小时带你轻松入门——List与dict
- Rstudio支持可视化的Markdown编辑了?
- (八)python3 只需3小时带你轻松入门——List 与 dict 的常用操作
- (九)python3 只需3小时带你轻松入门——函数自定义
- (十)python3 只需3小时带你轻松入门——模块与包
- (十一)python3 只需3小时带你轻松入门——面向对象
- 一文读懂KEGG数据库
- (创建模式 上)设计模式——工厂、抽象工厂 C++/Python3实现
- 【新手宝典】一篇博文带萌新建站并了解建站体系流程和对萌新友好的便捷方式,这篇博文很有可能是你的启蒙文
- 一种不需要敲代码的Python 画图方法
- 【一】Windows API 零门槛编程指南——MessageBox 基本使用及基础讲解
- 【二】Windows API 零门槛编程指南——CreateWindow 窗口创建 “万字长篇专业术语全解”