Hadoop集群+Spark集群搭建(一篇文章就够了)

本文档环境基于ubuntu16.04版本

一、准备

1.1 软件版本

  • Ubuntu 16.04.6 (ubuntu-16.04.6-server-amd64.iso)
  • JDK 1.8 (jdk-8u201-linux-x64.tar.gz)
  • Hadoop 2.7.7 (hadoop-2.7.7.tar.gz)
  • Spark 2.1.0 (spark-2.1.0-bin-hadoop2.7.tgz)

1.2 网络规划

本文规划搭建3台机器组成集群模式,IP与计算机名分别为, 如果是单台搭建,只需填写一个即可

192.168.241.132 master
192.168.241.133 slave1
192.168.241.134 slave2

1.3 软件包拷贝

可将上述软件包拷贝到3台机器的opt目录下

  • JDK 1.8
  • Hadoop 2.7.7
  • Spark 2.1.0

1.4 SSH设置

修改/etc/ssh/sshd_config文件,将以下三项开启yes状态

PermitRootLogin yes
PermitEmptyPasswords yes
PasswordAuthentication yes

重启ssh服务

service ssh restart

这样root用户可直接登陆,以及为后续ssh无密码登录做准备。

1.5 绑定IP和修改计算机名

1.5.1 修改/etc/hosts,添加IP绑定,并注释127.0.1.1(不注释会影响hadoop集群)

root@master:/opt# cat /etc/hosts
127.0.0.1   localhost
#127.0.1.1  ubuntu
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

192.168.241.132 master
192.168.241.133 slave1
192.168.241.134 slave2

1.5.2 修改/etc/hostname,为绑定计算机名。(计算机名和上面hosts绑定名必须一致)

1.6 SSH无密码登陆(需提前安装ssh)

1.用rsa生成密钥,一路回车。

ssh-keygen -t rsa

2.进到当前用户的隐藏目录(.ssh)

cd ~/.ssh

3.把公钥复制一份,并改名为authorized_keys

cp id_rsa.pub authorized_keys

这步执行完后,在当前机器执行ssh localhost可以无密码登录本机了。
如本机装有ssh-copy-id命令,可以通过

ssh-copy-id root@第二台机器名

然后输入密码,在此之后在登陆第二台机器,可以直接

ssh[空格]第二台机器名

进行登录。初次执行会提示确认,输入yes和登陆密码,之后就没提示了。

1.7 JDK安装(三台机器可同步进行)

下载:jdk-8u201-linux-x64.tar.gz 包,放到/opt下解压

1.7.1 将解压后的文件夹重命名

mv jdk1.8.0_201 jdk

1.7.2 将JDK环境变量配置到/etc/profile中

export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

1.7.3 检查JDK是否配置好

source /etc/profile
java -version

提示以下信息代表JDK安装完成:

java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

1.8 其他配置

1.8.1 网络配置

修改为固定IP ,/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.241.132
netmask 255.255.255.0
gateway 192.168.20.1

重启网络

service networking restart

1.8.2 DNS配置

第一种方法,永久改

修改/etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)

nameserver 119.6.6.6

保存后执行

resolvconf -u

查看resolv.conf 文件就可以看到我们的设置已经加上

cat /etc/resolv.conf

重启resolv

/etc/init.d/resolvconf restart

第二种方法,临时改

修改 /etc/resolv.conf文件,增加

nameserver 119.6.6.6

重启resolv

/etc/init.d/resolvconf restart

二、Hadoop部署

2.1 Hadoop安装(三台机器可同步进行)

  1. 下载hadoop2.7.7(hadoop-2.7.7.tar.gz)
  2. 解压 tar -zxvf hadoop-2.7.7.tar.gz ,并在主目录下创建tmp、dfs、dfs/name、dfs/node、dfs/data
cd /opt/hadoop-2.7.7
mkdir tmp
mkdir dfs
mkdir dfs/name
mkdir dfs/node
mkdir dfs/data

2.2 Hadoop配置

以下操作都在hadoop-2.7.7/etc/hadoop下进行

2.2.1 编辑hadoop-env.sh文件,修改JAVA_HOME配置项为JDK安装目录

export JAVA_HOME=/opt/jdk

2.2.2 编辑core-site.xml文件,添加以下内容

其中master为计算机名,/opt/hadoop-2.7.7/tmp为手动创建的目录

<configuration>
 <property>  
  <name>fs.defaultFS</name>  
  <value>hdfs://master:9000</value>  
 </property>  
 <property>  
  <name>io.file.buffer.size</name>  
  <value>131072</value>  
 </property>  
 <property>  
  <name>hadoop.tmp.dir</name>  
  <value>file:/opt/hadoop-2.7.7/tmp</value>  
  <description>Abasefor other temporary directories.</description>  
 </property>  
 <property>  
  <name>hadoop.proxyuser.spark.hosts</name>  
  <value>*</value>  
 </property>  
<property>  
  <name>hadoop.proxyuser.spark.groups</name>  
  <value>*</value>  
 </property> 
</configuration>

2.2.3 编辑hdfs-site.xml文件,添加以下内容

其中master为计算机名,
file:/opt/hadoop-2.7.7/dfs/name和file:/opt/hadoop-2.7.7/dfs/data为手动创建目录

<configuration>
<property>  
  <name>dfs.namenode.secondary.http-address</name>  
  <value>master:9001</value>  
 </property>  
  <property>  
   <name>dfs.namenode.name.dir</name>  
   <value>file:/opt/hadoop-2.7.7/dfs/name</value>  
 </property>  
 <property>  
  <name>dfs.datanode.data.dir</name>  
  <value>file:/opt/hadoop-2.7.7/dfs/data</value>  
  </property>  
 <property>  
  <name>dfs.replication</name>  
  <value>3</value>  
 </property>  
 <property>  
  <name>dfs.webhdfs.enabled</name>  
  <value>true</value>  
 </property>  
</configuration>

复制mapred-site.xml.template并重命名为mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

2.2.4 编辑mapred-site.xml文件,添加以下内容

其中master为计算机名

<configuration>
<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>  
</configuration>

2.2.5 编辑yarn-site.xml文件,添加以下内容

其中master为计算机名

<configuration>
<!-- Site specific YARN configuration properties -->
<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>master:8032</value>  
  </property>  
  <property>  
   <name>yarn.resourcemanager.scheduler.address</name>  
   <value>master:8030</value>  
  </property>  
  <property>  
   <name>yarn.resourcemanager.resource-tracker.address</name>  
   <value>master:8035</value>  
  </property>  
  <property>  
   <name>yarn.resourcemanager.admin.address</name>  
   <value>master:8033</value>  
  </property>  
  <property>  
   <name>yarn.resourcemanager.webapp.address</name>  
   <value>master:8088</value>  
  </property>  
</configuration>

2.2.6 修改slaves文件,添加集群节点(多机添加多个)

添加以下

master
slave1
slave2

2.2.7 Hadoop集群搭建

hadoop配置集群,可以将配置文件etc/hadoop下内容同步到其他机器上,既2.2.1-2.2.6无需在一个个配置。

cd /opt/hadoop-2.7.7/etc
scp -r hadoop root@另一台机器名:/opt/hadoop-2.7.7/etc

2.3 Hadoop启动

1.格式化一个新的文件系统,进入到hadoop-2.7.7/bin下执行:

./hadoop namenode -format

2.启动hadoop,进入到hadoop-2.7.7/sbin下执行:

./start-all.sh

看到如下内容说明启动成功

root@master:/opt/hadoop-2.7.7/sbin# ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [master]
master: starting namenode, logging to /opt/hadoop-2.7.7/logs/hadoop-root-namenode-master.out
slave2: starting datanode, logging to /opt/hadoop-2.7.7/logs/hadoop-root-datanode-slave2.out
master: starting datanode, logging to /opt/hadoop-2.7.7/logs/hadoop-root-datanode-master.out
slave1: starting datanode, logging to /opt/hadoop-2.7.7/logs/hadoop-root-datanode-slave1.out
Starting secondary namenodes [master]
master: starting secondarynamenode, logging to /opt/hadoop-2.7.7/logs/hadoop-root-secondarynamenode-master.out
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop-2.7.7/logs/yarn-root-resourcemanager-master.out
slave2: starting nodemanager, logging to /opt/hadoop-2.7.7/logs/yarn-root-nodemanager-slave2.out
slave1: starting nodemanager, logging to /opt/hadoop-2.7.7/logs/yarn-root-nodemanager-slave1.out
master: starting nodemanager, logging to /opt/hadoop-2.7.7/logs/yarn-root-nodemanager-master.out

2.4 Hadoop集群检查

方法1:检查hadoop集群,进入hadoop-2.7.7/bin下执行

./hdfs dfsadmin -report

查看Live datanodes 节点个数,例如:Live datanodes (3),则表示3台都启动成功

root@master:/opt/hadoop-2.7.7/bin# ./hdfs dfsadmin -report
Configured Capacity: 621051420672 (578.40 GB)
Present Capacity: 577317355520 (537.67 GB)
DFS Remaining: 577317281792 (537.67 GB)
DFS Used: 73728 (72 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
-------------------------------------------------
Live datanodes (3):

方法2:访问8088端口,

http://192.168.241.132:8088/cluster/nodes

方法3:访问50070端口

http://192.168.241.132:50070/

三、Spark部署

3.1 Spark安装(三台机器可同步进行)

  1. 下载spark-2.1.0-bin-hadoop2.7.tgz,放到opt下解压。
  2. 将spark环境变量配置到/etc/profile中
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
export PATH=$JAVA_HOME/bin:$SPARK_HOME/bin:$PATH

3.2 Spark配置

1.进入spark-2.1.0-bin-hadoop2.7/conf复制spark-env.sh.template并重命名为spark-env.sh

cp spark-env.sh.template spark-env.sh

编辑spark-env.sh文件,添加以下内容

export JAVA_HOME=/opt/jdk
export SPARK_MASTER_IP=192.168.241.132
export SPARK_WORKER_MEMORY=8g
export SPARK_WORKER_CORES=4
export SPARK_EXECUTOR_MEMORY=4g
export HADOOP_HOME=/opt/hadoop-2.7.7/
export HADOOP_CONF_DIR=/opt/hadoop-2.7.7/etc/hadoop
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/jdk/jre/lib/amd64

2.把slaves.template拷贝为slaves,并编辑 slaves文件

cp slaves.template slaves

编辑slaves文件,添加以下内容(多机添加多个)

master
slave1
slave2

3.3 配置Spark集群

可以将配置文件spark-2.1.0-bin-hadoop2.7/conf下内容同步到其他机器上,既3.2无需在一个个配置。

scp -r conf root@另一台机器名:/opt/spark-2.1.0-bin-hadoop2.7

3.4 Spark启动

启动spark,进入spark-2.1.0-bin-hadoop2.7/sbin下执行

./start-all.sh

3.5 Spark集群检查

访问http://192.168.241.134:8080/

==注意:配置Spark集群,需要保证子节点内容和主节点内容一致。==

这样Hadoop集群和Spark集群就都搭建好了。

(转发请注明出处:https://www.zhangyongli.cc/ 如发现有错,请留言,谢谢)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容

  • 摘要:大数据门槛较高,仅仅环境的搭建可能就要耗费我们大量的精力,本文总结了作者是如何搭建大数据环境的(单机版和集群...
    杨赟快跑阅读 15,036评论 3 65
  • 4.2 修改hostname与hosts文件以master上机器为例,打开终端 可以先查看一下目前的ip是不是我设...
    点指兵兵_阅读 422评论 0 0
  • CentOS下Hadoop+Spark集群环境搭建 硬件环境 虚拟机*3 每台虚拟机配置:系统CentOS6.5 ...
    公众号_WU双阅读 3,325评论 0 6
  • 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的...
    piziyang12138阅读 1,968评论 0 3
  • CSS的名称叫做“层叠样式表”,就是改变HTML元素的样式。比如颜色、大小、边框这种。 更改字体颜色 我的主页 ...
    余鹿阅读 595评论 0 0