文档章节

centos下配置hadoop,spark

l
 lvzhongjian
发布于 2016/07/01 00:23
字数 1642
阅读 213
收藏 11

 

    由于是在windows7上配置hadoop,因此需要使用虚拟机,这里我用的是vmware虚拟机,之后在虚拟机上安装centos,并安装jdk,怎么安装就不多说了。今天主要是讲hadoop的配置。

    1.安装SSH

    由于hadoop使用SSH进行通信,因此先要在centos系统上安装ssh,通过命令yum install openssh-server 就可以安装了。然后需要设置免密码登陆,通过ssh-keygen -t rsa -P "" 生成公钥与私钥。此时会有生成.ssh文件夹,并在其下会有id_rsa和id_rsa.pub这两个文件。然后将id_rsa.pub追加到.ssh/authorized_keys下。authorized_keys用于保存所有允许以当前身份登陆到ssh客户端的公钥内容。之后ssh localhost(第一次还会让你输入yes)看看是否能免密码登陆。

    2.安装hadoop单机模式

    从http://mirrors.cnnic.cn/apache/hadoop/common/stable/ 上下载最新版本的hadoop并解压。

    之后修改hadoop目录下,etc目录下的hadoop-env.sh,加入JAVA安装信息,也就是加入export JAVA_HOME=java路径。保存并用source命令让配置生效。这样Hadoop的单机模式就配置完毕了。为了方便调用命令可以把hadoop下的bin和sbin目录加入PATH。

    然后可以运行下自带的wordcount程序,首先创建input目录,并将etc下的文件都复制过去。用命令hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount input ouput

    3.伪分布式模式

    首先配置core-site.xml,主要是配置hdfs地址和端口号,在configuration节点下加入:

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>你的tmp文件夹路径</value>
</property>

    然后配置hdfs-site.xml文件,主要是配置replication,在configuration节点下加入:

<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.name.dir</name>
  <value>你的name文件夹路径</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>你的data文件夹路径</value>
</property>

    然后用命令hdfs namenode -format进行namenode格式化,结束后用start-dfs.sh启动hadoop,用jps查看守卫进程,应该有namenode,datanode和secondarynamenode。

    可以通过 http://localhost:50070/ Web 界面来查看 NameNode 和 Datanode 信息,还可在线查看 HDFS 中的文件。在“Utilities”菜单下“Browse the file system”中可看到在hdfs上建立的目录“/user/hadoop”等

    单机模式下运行“grep/WordCount”等例子读取的是本地数据,而伪分布式读取的则是 HDFS 上的数据。为了使用 HDFS,需要在 HDFS 中创建用户目录,增删改查文件和目录,具体命令如下:

  • hdfs dfs -mkdir input    //新建input目录,在/user/${USERNAME}目录下
  • hdfs dfs -put ./etc/hadoop/*.xml input   //将Ubuntu的ext4目录下的xml文件拷贝到hdsf的input目录下
  • hdfs dfs -ls input     //复制完成后,查看文件列表

    (注:伪分布式模式运行的MapReduce 作业的方式跟单机模式相同,但区别在于伪分布式读取的是HDFS中的文件,而不是本地的output和input目录;可以将单机模式步骤中创建的本地 input 文件夹,输出结果 output 文件夹都删掉来验证这一点

    然后运行wordcount。   

    启动 Hadoop 后,没有原来的JobTracker 和 TaskTracker,因为新版Hadoop使用了新的MapReduce V2框架,称为 YARN(Yet Another Resource Negotiator)。YARN 从MapReduce 中分离出来,负责资源管理与任务调度。

    通过 start-dfs.sh 启动Hadoop后,仅是启动了供MapReduce使用的HDFS环境,为了启动 YARN来负责资源管理与任务调度。需要修改配置文件 mapred-site.xml:

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

    再修改配置文件 yarn-site.xml:

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

    start-yarn.sh 启动yarn(需先启动HDFS/MR)

    mr-jobhistory-daemon.sh start historyserver  启动历史服务器,才能在Web中查看任务运行情况

    通过 jps命令查看到(NodeManager,ResourceManager,NameNode,DataNode)进程都启动了

    启动 YARN 之后,运行实例的方法还是一样,不过内存不够可能会导致失败。但资源管理方式和任务调度不同.启动 YARN的好处是通过Web界面http://localhost:8088/cluster可以查看任务运行情况。

    4.分布式集群模式

    首先再创建2个虚拟机,并按上述进行配置,hostname分别是Master,Node1,Node2。

    分别在3台机子上配置hosts,并用ping命令确保可以相互ping通。

    接下来需要配置SSH无密码登陆。我们将2个子节点的id_rsa.pub传给master,然后在master上将它们追加到authorized_keys。最后把master的authorized_keys付诸到2个子节点下。然后用ssh验证它们可以相互免密码登陆。

    接下来修改配置文件,core-site.xml如下:

<property>
  <name>fs.default.name</name>
  <value>hdfs://Master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>你的tmp文件夹路径</value>
</property>

    hdfs-site.xml:

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>Master:50090</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
<property>
  <name>dfs.name.dir</name>
  <value>你的name文件夹路径</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>你的data文件夹路径</value>
</property>

    slaves:

Node1
Node2

    mapred-site.xml:

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>Master:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>Master:19888</value>
</property>

    yarn-site.xml

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>Master</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

    所有机器配置好后,还需要将tmp,data和name下的文件都删除,以免错误。

    然后hdfs namenode -format格式化,最后启动。

    通过命令jps可以查看各个节点所启动的进程。正确的话,在Master节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程。在Slave节点可以看到 DataNode 和 NodeManager 进程。缺少任一进程都表示出错。

    然后就是将文件上传,并用wordcount测试。如果卡在mapreduce一直不动,可能是内存原因,可以加大内存或者改变yarn配置。

    总之,Hadoop基本配置就是上面这些啦!

    5.SPARK配置

    Spark的配置需要在hadoop配置完成的基础之上进行,并且需要scala。

    解压spark和scala以及将SPARK_HOME,SCALA_HOME和它们bin加入.bashrc就不多说了,下面讲一下Spark的配置,进入spark解压目录下的conf目录,将spark-env.sh.template拷贝成spark-env.sh,并加入以下配置信息:

export JAVA_HOME=你的java目录
export SCALA_HOME=你的scala目录
export SPARK_MASTER_IP=MasterIP
export HADOOP_CONF_DIR=你的hadoop配置文件的目录

    还需要在slaves文件下加入节点信息,加入Node1和Node2

    然后通过sbin下的start-all.sh启动即可。注意hadoop的bin下start-all.sh,因此不要执行错文件了。

    然后用jps应该在主节点看到Master,在子节点看到Worker了。

    这样Spark就配置完毕了。

© 著作权归作者所有

上一篇: Oracle中的HWM
下一篇: python3简单爬虫
l
粉丝 1
博文 14
码字总数 9646
作品 0
苏州
私信 提问
Spark on Yarn集群搭建

由于最近学习大数据开发,spark作为分布式内存计算框架,当前十分火热,因此作为首选学习技术之一。Spark官方提供了三种集群部署方案: Standalone, Mesos, Yarn。其中 Standalone 为spark本...

skanda
2017/08/30
30
0
Hadoop2.7.4+Spark2.2.0滴滴云分布式集群搭建过程

1.在滴滴云申请三台服务器(CentOS系统64位7.3) 2.修改hosts文件 修改三台服务器的hosts文件,vim /etc/hosts(需要权限加上sudo vim /etc/hosts),在原文件的基础最后面加上: 修改完成后保存...

14142135623731
2018/06/24
0
0
Spark On Yarn 搭建

实现步骤: 1)搭建好Hadoop(版本,2.7)集群 2)安装和配置scala(版本,2.11) 上传解压scala-2.11.0.tgz—>配置 /etc/profile文件 配置信息如下: 3)在NodeManager节点(01,02,03节点)...

仟昭
03/02
44
0
Hive on Spark 伪分布式环境搭建过程记录

进入hive cli是,会有如下提示: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) ......

PeakFang-BOK
2018/12/13
83
0
Spark 1.4.1 Standalone 模式部署安装配置

各节点执行如下操作(或在一个节点上操作完后 scp 到其它节点): 1、 解压spark安装程序到程序目录/bigdata/soft/spark-1.4.1,约定此目录为$SPARKHOME tar –zxvf spark-1.4-bin-hadoop2.6....

山疯
2015/08/12
495
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 如果是个帅小伙你愿意和他出去吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Ghost 》游戏《死亡搁浅》原声 《Ghost 》游戏(《死亡搁浅》原声) - Au/Ra / Alan Walker 手机党少年们想听歌,请使劲儿戳...

小小编辑
56分钟前
98
5
java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部