Spark环境搭建(中)——Hadoop安装
1. 下载Hadoop
1.1 官网下载Hadoop
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz
打开上述链接,进入到下图,可以随意下载一个完整的hadoop-2.9.0版本,如下图所示:
2. 安装Hadoop
把hadoop-2.9.0.tar.gz文件进行操作,分三大步骤:
- 配置前的准备,包括上传到主节点,解压缩并迁移到/opt/app目录,在hadoop目录下创建tmp、name和data目录;
- 配置,包括hadoop-env.sh、yarn-env.sh(前两者为启动文件的JAVA_HOME和PATH配置)、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、Slaves(后面5个文件为核心组件和集群配置),共7个文件需要配置。配置完成需要向另外的集群机器节点分发hadoop程序;
- 启动部署,包括格式化NameNode、启动HDFS、启动YARN。
2.1 准备
2.1.1 上传并解压Hadoop安装包
1. 把hadoop-2.9.0.tar.gz通过Xfpt工具上传到主节点的/opt/uploads目录下
2. 在主节点上解压缩,如果解压缩出来的文件拥有者和用户组不是hadoop,则需要使用sudo chown -R hadoop:hadoop hadoop-2.9.0命令
# cd /opt/uploads/
# tar -zxvf hadoop-2.9.0.tar.gz
有时解压出来的文件夹,使用命令 ll 查看用户和用户组有可能不是hadoop时,即上图绿框显示,则需要使用如下命令更换为hadoop用户和用户组:
# sudo chown hadoop:hadoop hadoop-2.9.0
3. 把hadoop-2.9.0目录移到/opt/app目录下
# mv hadoop-2.9.0 /opt/app/
# ll /opt/hadoop
2.1.2 在Hadoop目录下创建子目录
以hadoop用户在/opt/app/hadoop-2.9.0目录下创建tmp、name和data目录。tmp为缓存文件,name用于NameNode存放文件,data用于DataNode存放文件
# cd /opt/app/hadoop-2.9.0/
# mkdir tmp && mkdir name && mkdir data
# ll
2.2 配置7大文件
2.2.1 配置hadoop-env.sh
1. 以hadoop用户打开配置文件hadoop-env.sh
# cd /opt/app/hadoop-2.9.0/etc/hadoop
# vi hadoop-env.sh
2. 加入配置内容,设置JAVA_HOME和PATH路径
export JAVA_HOME=/usr/lib/java/jdk1.8.0_151
export PATH=$PATH:/opt/app/hadoop-2.9.0/bin
3. 编译配置文件hadoop-env.sh,并确认生效
# source hadoop-env.sh
# hadoop version
2.2.2 配置yarn-env.sh
1. 以hadoop用户在/opt/app/hadoop-2.9.0/etc/hadoop打开配置文件yarn-env.sh
# cd /opt/app/hadoop-2.9.0/etc/hadoop 如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# vi yarn-env.sh
2. 加入配置内容,在如下位置设置JAVA_HOME路径
export JAVA_HOME=/usr/lib/java/jdk1.8.0_151
3. 编译配置文件yarn-env.sh,并确认生效
source yarn-env.sh
2.2.3 配置core-site.xml
1. 以hadoop用户,使用如下命令打开core-site.xml配置文件
# cd /opt/app/hadoop-2.9.0/etc/hadoop/ 如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# vi core-site.xml
2. 在配置文件中,按照如下内容进行配置
配置的点有fs默认名字、默认FS、IO操作的文件缓冲区大小、tmp目录、代理用户hosts、代理用户组,共6点。
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>fs:defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/app/hadoop-2.9.0/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
2.2.4 配置hdfs-site.xml
1. 使用如下命令打开hdfs-site.xml配置文件
# cd /opt/app/hadoop-2.9.0/etc/hadoop/ 如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# vi hdfs-site.xml
2. 在配置文件中,按照如下内容进行配置
hdfs-site.xml配置的点有namenode的secondary、name目录、data目录、备份数目、开启webhdfs,共5点
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/app/hadoop-2.9.0/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/app/hadoop-2.9.0/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
【注意】:namenode的hdfs-site.xml是必须将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS、LISTFILESTATUS等需要列出文件、文件夹状态的命令,因为这些信息都是由namenode来保存的。
2.2.5 配置mapred-site.xml
1. 默认情况下不存在mapred-site.xml文件,可以从模板拷贝一份。然后,使用vi命令打开mapred-site.xml配置文件
# cd /opt/app/hadoop-2.9.0/etc/hadoop/ 如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# cp mapred-site.xml.template mapred-site.xml
# vi hdfs-site.xml
2. 在配置文件中,按照如下内容进行配置
mapred-site.xml配置的点有mapreduce的框架、jobhistory的地址、jobhistory的webapp地址,共3点。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop1:19888</value>
</property>
</configuration>
2.2.6 配置yarn-site.xml
1. 使用如下命令打开yarn-site.xml配置文件
# cd /opt/app/hadoop-2.9.0/etc/hadoop/ 如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# vi hdfs-site.xml
2. 在配置文件中,按照如下内容进行配置
yarn-site.xml配置的点有①nodemanager的aux-services及其类;②resourcemanager的地址、其sheduler地址、其resource-tracker地址、其admin地址以及webapp地址,共7点。
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:8088</value>
</property>
</configuration>
2.2.7 配置Slaves文件
1. 使用# vi slaves打开从节点配置文件
# cd /opt/app/hadoop-2.9.0/etc/hadoop/ 如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# vi slaves
2. 在配置文件中加入如下内容:
hadoop1
hadoop2
hadoop3
2.2.8 向各节点分发Hadoop程序
1. 在hadoop1机器/opt/app/hadoop-2.9.0使用如下命令把hadoop文件夹复制到hadoop2和hadoop3机器
# cd /opt/app
# scp -r hadoop-2.9.0 hadoop@hadoop2:/opt/app/
# scp -r hadoop-2.9.0 hadoop@hadoop3:/opt/app/
2. 在从节点查看是否复制成功
2.3 启动部署
启动部署,包括格式化NameNode、启动HDFS、启动YARN。
2.3.1 格式化NameNode
# cd /opt/app/hadoop-2.9.0
# ./bin/hdfs namenode -format
2.3.2 启动HDFS
1. 使用如下命令启动HDFS:
# cd /opt/app/hadop-2.9.0/sbin 如果不在/opt/app/hadoop-2.9.0/sbin目录下,则使用该命令
# ./start-dfs.sh
2. 验证HDFS启动
此时在hadoop1上面运行的进程有:NameNode、SecondaryNameNode和DataNode
hadoop2和hadoop3上面运行的进程有:NameNode和DataNode
【注意】:jps命令出现—— xxxx--process information unavailable解决方法(有可能出现)
解决方法:根目录/tmp中找到hsperfdata_前缀的目录,并找出PID(即xxxx)对应的文件并且删除即可。如果/tmp文件不重要的话,全部删除也行。
2.3.3 启动YARN
1. 使用如下命令启动YARN
# cd /opt/app/hadoop-2.9.0/sbin 如果不在/opt/app/hadoop-2.9.0/sbin目录下,则使用该命令
# ./start-yarn.sh
2. 验证YARN启动
此时在hadoop1上运行的进程有:NameNode、SecondaryNameNode、DataNode、NodeManager和ResourceManager
hadoop2和hadoop3上面运行的进程有:NameNode、DataNode和NodeManager
参考资料:
http://www.ttlsa.com/linux/jps-process-information-unavailable/ jps命令出现xxxx--process information unavailable解决方法
http://www.cnblogs.com/shishanyuan/p/4701646.html 石山园大神的讲解
Spark环境搭建(中)——Hadoop安装的更多相关文章
- Spark入门到精通--(第八节)环境搭建(Hadoop搭建)
上一节把Centos的集群免密码ssh登陆搭建完成,这一节主要讲一下Hadoop的环境搭建. Hadoop下载安装 下载官网的Hadoop 2.4.1的软件包.http://hadoop.apache ...
- Hive On Spark环境搭建
Spark源码编译与环境搭建 Note that you must have a version of Spark which does not include the Hive jars; Spar ...
- 分布式计算框架-Spark(spark环境搭建、生态环境、运行架构)
Spark涉及的几个概念:RDD:Resilient Distributed Dataset(弹性分布数据集).DAG:Direct Acyclic Graph(有向无环图).SparkContext ...
- Spark学习进度-Spark环境搭建&Spark shell
Spark环境搭建 下载包 所需Spark包:我选择的是2.2.0的对应Hadoop2.7版本的,下载地址:https://archive.apache.org/dist/spark/spark-2. ...
- LNMP环境搭建:Nginx安装、测试与域名配置
Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...
- Tesseract环境搭建及编译安装
Tesseract环境搭建及编译安装 Tesseract源码都是C++源码:对于不咋会C++的人来说,这真是...虽然说语言有相通性,但是...哎!!!!! 分享出来,也希望对大家有所帮助. 环境:w ...
- Python环境搭建和pycharm安装
Python环境搭建和pycharm安装 本人安装环境为Windows10系统,下载的Python版本为3.4社区版本,可参考 1.下载Python3.4版本 官网:https://www.pytho ...
- LNMP环境搭建之php安装,wordpress博客搭建
LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...
- Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类
Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...
- 大数据学习系列之六 ----- Hadoop+Spark环境搭建
引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...
随机推荐
- discuz管理员登录进入后台管理马上跳转到登录界面
昨天尝试了一下这个discuz论坛,感觉还可以.今天刚刚用管理员账户进入后台管理,准备改一改界面熟悉一下,过不了10秒钟.老是马上就退出来了.我想起来了,昨天是在阿里云服务器上面直接登录这个管理员账号 ...
- 为Python添加中文关键字
狗屎咖啡 2 个月前 原址: https://zhuanlan.zhihu.com/p/31159526 swizl/cnpython 1. 大部分语法,可以按下面方法加同义的中文token第1步. ...
- @Autowired内部实现原理
@Autowiredprivate CustomerDao customerDao; public void addCustomer() { customerDao.add ...
- 深入.NET数据类型(1)
一.值类型和引用类型 所有的值类型和引用类型的引用都存在"栈"中 1.值类型 命名空间:System.ValueType 值类型数据储存所在的内存区域成为栈 值类型主要包括基本数据 ...
- Head First设计模式之解释器模式
一.定义 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子. 主要解决:对于一些固定文法构建一个解释句子的解释器. 何时使用:如果一种特定类型的问题发生的频率足 ...
- Head First设计模式之中介者模式
一.定义 又称为调停者模式,定义一个中介对象来封装系列对象之间的交互.中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互. 二.结构 组成: ● 抽象中介者(M ...
- 2017春 前端自动化(二) 页面自动刷新、sass与css转换的使用、pxToRem直观转换
2017春 前端自动化(二) 页面自动刷新.sass与css转换的使用.pxToRem直观转换 引言: 此文要演示:浏览器页面自动刷新:移动端px与rem的转换,简单直观化:使用sass自动生 ...
- VI命令汇总
ia/Ao/Or + ?替换 0:文件当前行的开头$:文件当前行的末尾G:文件的最后一行开头:n :文件中第n行的开头 dd:删除一行3dd:删除3行yy:复制一行3yy:复制3行p:粘贴u:undo ...
- Cent OS 6.5下源码安装php7.2
1.安装php需要的扩展 # yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg ...
- 通用后台管理系统UI-AdminLTE:构造动态菜单栏
AdminLTE是一款基于bootstrap的后台管理系统的通用模板UI,它的样式美观且较为符合大多数后台管理系统的需求,典型的上|左右|下的布局形式.并且提供了一整套我们开发的时候可能用到的UI样式 ...