spark基础知识之搭建环境<一>
来源:互联网 发布:云南风暴网络 编辑:程序博客网 时间:2024/06/05 05:11
spark基础知识之搭建环境<一>
本文详细讲解如何搭建hadoop、zookeeper、hbase和spark的集群环境,这里我是在本地虚拟机上搭建的集群,但是和实际环境的配置差不多。我会从零开始搭建并且尽量写得详细,所以还会讲到很多配置linux环境的东西,希望大家不要烦,务必按照步骤一步步做下去。
本文主要讲了以下内容:
1 使用Vmware安装Linux系统
这个很easy,软件和操作步骤请自行搜索,我安装的ubuntu系统,三个主机的名称分别是master、slave1、slave2,用户名统一都是trigl,后面设置ssh免登录需要用户名是相同的否则就会出错。后面的很多配置这三台主机都是相同的,直接复制配置文件即可,这里教大家一下不同主机之间传输文件(文件夹)的命令:
scp -r 本主机文件路径 其他主机用户名@其他主机IP:文件父目录
如将master的jdk的tar包传给slave1,命令如下:
scp -r /data/install/java/jdk-7u45-linux-x64.tar.gz trigl
@192
.168.
79.133
:/data/install/java
2 安装xshell和xftp
xshell用于连接linux系统并输入命令,xftp用于向linux系统传输文件,安装比较简单,请自行搜索。
我安装了ubuntu系统后首次用xshell连接是连不上的,如图:
这是由于新装的系统没有ssh服务,使用下面命令下载安装:<喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;"> sudo apt-get install openssh-server
安装完成以后用xshell就可以连接上了
3 解决ubuntu自带VI编辑器不好用的问题
使用ubuntu自带的vi来编辑文件的时候,方向键会变成ABCD,解决方法如下:
编辑 /etc/vim/vimrc.tiny ,将“set compatible”改为“set nocompatible”,在这句话的下面加上“set backspace=2”,如下:
4 分别修改三台主机的hosts文件和主机名
1、修改hosts文件
编辑hosts文件:
sudo vi /etc/hosts
添加下面内容:
192.168
.
79.131
master
192.168
.
79.132
slave1
192.168
.
79.133
slave2
这样就配置好了域名,在后面配置需要ip时我们可以直接用域名来方便地替换ip。
2、修改主机名
分别修改三台主机 /etc/hostname 的内容为master、slave1、slave2
注意主机名和hosts文件是没有关系的,hosts文件用来表示域名和ip的对应关系,而主机名就是系统显示的名称
5 新建安装目录并更改所属用户和组
1、新建应用的安装目录
sudo mkdir -p /data/install
2、更改该安装目录所属用户和组
例如将目录归属为trigl用户和trigl用户组:
sudo chown -R trigl:trigl /data
对slave1和slave2做相同操作,更改用户和组以后对该目录就有了所有权限,后续输入命令不再需要加sudo了
6 安装jdk
hadoop等的搭建都依赖于jdk,所以需要先安装jdk
1、到官网下载jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html,我下载的是 jdk-7u75-linux-x64.tar.gz
2、下载好的tar包放在 /data/install/java 目录并解压:
tar -xvf jdk-7u75-linux-x64.tar.gz
3、配置环境变量
首先进入编辑Linux配置环境变量的文件:
sudo vi /etc/profile
在里面添加如下内容:
export JAVA_HOME=/data/install/java/jdk1.
7
.0_45
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
4、使环境变量立刻生效:
source /etc/profile
7 配置SSH免登陆
关于为什么需要配置SSH免登陆,我这里仅给出具体的配置方式
1、生成SSH的公钥,命令如下,三台主机都要执行一次:
ssh-keygen -t rsa
让输入内容直接回车即可,执行以后会在 /home/trigl/.ssh/(家目录/.ssh) 下生成id_rsa和id_rsa.pub文件
2、将主机slave1和slave2在上一步骤生成的id_rsa.pub文件传到主机master的 /home/trigl/.ssh/ 下面,为了防止覆盖,重命名为id_rsa.pub.slave1和id_rsa.pub.slave2
scp id_rsa.pub trigl
@master
:~/.ssh/id_rsa.pub.slave1
scp id_rsa.pub trigl
@master
:~/.ssh/id_rsa.pub.slave2
3、在主机master的 /home/trigl/.ssh/ 目录下分别将id_rsa.pub、id_rsa.pub.slave1和id_rsa.pub.slave2追加到authorized_keys文件中
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.slave1 >> authorized_keys
cat id_rsa.pub.slave2 >> authorized_keys
这样就生成了一个可以同时验证master、slave1和slave2的公钥文件
4、将上一步生成的authorized_keys文件分别传到slave1和slave2的/home/trigl/.ssh/下面
scp authorized_keys trigl
@slave1
:~/.ssh
scp authorized_keys trigl
@slave2
:~/.ssh
5、验证
验证master连接slave1:
ssh slave1
如果没有让输入密码且成功切换到slave1的终端,说明配置成功,验证连接slave2类似
8 hadoop的安装和配置
1、下载hadoop
首先到Apache官网(http://www.apache.org/dyn/closer.cgi/hadoop/common/)复制下载地址,然后进入 /data/install/apache 目录下面执行以下命令直接进行下载:
wget http:
//mirror.bit.edu.cn/apache/hadoop/common/stable/hadoop-2.7.3.tar.gz
下载完成后进行解压:
tar -xvf hadoop-
2.7
.
3
.tar.gz
2、配置hadoop
进入hadoop的配置目录:
cd /data/install/apache/hadoop-
2.7
.
3
/etc/hadoop/
需要修改的配置文件为:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves、hadoop-env.sh、yarn-env.sh
core-site.xml
<configuration>
<property>
<name>fs.
default
.name</name>
<value>hdfs:
//master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/install/apache/hadoop-
2.7
.
3
/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>
131702
</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/install/apache/hadoop-
2.7
.
3
/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/install/apache/hadoop-
2.7
.
3
/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>
1
</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:
9001
</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>
true
</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>
false
</value>
</property>
</configuration>
yarn-site.xml
<configuration> <property>
<name>yarn.nodemanager.auxservices.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:
8031
</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>
mapred-site.xml
通过cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml创建etc/hadoop/mapred-site.xml,内容改为如下:
<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>
slaves
slave1
slave2
hadoop-env.sh和yarn-env.sh
export JAVA_HOME=/data/install/java/jdk1.
7
.0_45
配置文件修改完以后,将master下hadoop文件夹复制到slave1和slave2中,记得将配置文件里面的域名master修改为slave1和slave2
scp -r /data/install/apache/hadoop-
2.7
.
3
trigl
@slave1
:/data/install/apache/
scp -r /data/install/apache/hadoop-
2.7
.
3
trigl
@slave2
:/data/install/apache/
3、运行hadoop
启动hadoop的命令都在master上执行
(1)初始化hadoop(清空hdfs数据):
rm -rf /data/install/apache/hadoop-
2.7
.
3
/hdfs/*
rm -rf /data/install/apache/hadoop-
2.7
.
3
/tmp/*
/data/install/apache/hadoop-
2.7
.
3
/bin/hdfs namenode -format
(2)启停hdfs:
/data/install/apache/hadoop-
2.7
.
3
/sbin/start-dfs.sh
/data/install/apache/hadoop-
2.7
.
3
/sbin/stop-dfs.sh
验证是否启动成功,在master输入 jps,应当存在namenode和secondary namenode
在slave1和slave2输入jps,应当存在datanode
进一步验证,访问:http://192.168.79.131:50070/dfshealth.html(192.168.79.131是master的ip),如图:
(3)启停yarn
/data/install/apache/hadoop-
2.7
.
3
/sbin/start-yarn.sh
/data/install/apache/hadoop-
2.7
.
3
/sbin/stop-yarn.sh
在master输入 jps,应当存在resourcemanager
在slave1和slave2输入jps,应当存在nodemanager
访问:http://192.168.79.131:8088/cluster
9 zookeeper集群的安装配置
1、下载
到http://apache.fayea.com/zookeeper/stable/下载安装包并解压:
wget http:
//apache.fayea.com/zookeeper/stable/zookeeper-3.4.9.tar.gz
2、配置
(1)建立数据目录
mkdir /data/install/apache/zookeeper-
3.4
.
9
/data
(2)进入conf目录创建并修改zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
修改以后的内容为:
# The number of milliseconds of each tick
tickTime=
2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=
10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=
5
# the directory where the snapshot is stored.
#
do
not use /tmp
for
storage, /tmp here is just
# example sakes.
dataDir=/data/install/apache/zookeeper-
3.4
.
9
/data
# the port at which the clients will connect
clientPort=
2181
# the maximum number of client connections.
# increase
this
if
you need to handle more clients
#maxClientCnxns=
60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http:
//zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=
3
# Purge task interval in hours
# Set to
"0"
to disable auto purge feature
#autopurge.purgeInterval=
1
server.
0
=master:
2888
:
3888
server.
1
=slave1:
2888
:
3888
server.
2
=slave2:
2888
:
3888
这里还需要在数据目录/data/install/apache/zookeeper-3.4.9/data下面新建名为myid的文件,各个主机对应的内容是不同的,master的内容是1,slave1的内容是2,slave2的内容是3,分别对应server.x中的x
(3)设置环境变量:/etc/profile添加如下内容
export ZOOKEEPER_HOME=/home/hadoop/platform/zookeeper-
3.4
.
5
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
别忘了source一下让环境变量生效
source /etc/profile
3、启停zookeeper
/data/install/apache/zookeeper-
3.4
.
9
/bin/zkServer.sh start
/data/install/apache/zookeeper-
3.4
.
9
/bin/zkServer.sh stop
输入jps检测一下:
查看各个主机的状态:
sh bin/zkServer.sh status
这里如果报错:
bin/zkServer.sh:
81
: /data/install/apache/zookeeper-
3.4
.
9
/bin/zkEnv.sh: Syntax error:
"("
unexpected (expecting
"fi"
)
10 hbase的安装和配置
1、下载
首先到http://apache.fayea.com/hbase/stable/下载稳定版安装包并解压:
wget http:
//apache.fayea.com/hbase/stable/hbase-1.2.2-bin.tar.gz
2、配置
主要修改conf目录下的三个文件:hbase-env.sh、hbase-site.xml、regionservers
hbase-env.sh
export JAVA_HOME=/data/install/java/jdk1.
7
.0_45
export HBASE_MANAGES_ZK=
true
export HBASE_LOG_DIR=/data/install/apache/hbase-
1.2
.
2
/logs
hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs:
//master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>
true
</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>
180000
</value>
<description>Time difference of regionserver from master</description>
</property>
</configuration>
regionservers
slave1
slave2
3、启停hbase
/data/install/apache/hbase-
1.2
.
2
/bin/start-hbase.sh
/data/install/apache/hbase-
1.2
.
2
/bin/stop-hbase.sh
master输入jps:
slave1和slave2输入jps:
访问:http://192.168.79.131:16010
4、hbase的一些基本命令
drop ‘表名称’查看所有记录scan “表名称”
首先进入hbase shell
./bin/hbase shell
(1)创建表
creat
'test'
,
'address'
(2)添加记录
put
'test'
,
'row1'
,
'address:province'
,
'zhejiang'
put
'test'
,
'row2'
,
'address:city'
,
'hangzhou'
(3)查看记录
get
'test'
,
'row1'
(4)查看表中的记录总数
count
'test'
(5)删除记录
delete
'test'
,
'row1'
,
'address'
(6)删除一张表
disable
'test'
drop
'test'
(7)查看所有记录
scan
'test'
11 spark的安装和配置
1、下载
首先在http://spark.apache.org/downloads.html下载指定hadoop版本的安装包,然后解压缩
2、配置
创建并修改conf目录下的配置文件 spark-env.sh,slaves
spark-env.sh
cp spark-env.sh.template spark-env.sh
修改内容为:
export JAVA_HOME=/data/install/java/jdk1.
7
.0_45
export HADOOP_HOME=/data/install/apache/hadoop-
2.7
.
3
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HBASE_HOME=/data/install/apache/hbase-
1.2
.
2
slaves
cp slaves.template slaves
修改内容为:
slave1
slave2
3、启停spark
/data/install/apache/spark-
2.0
.
0
-bin-hadoop2.
7
/sbin/start-all.sh
/data/install/apache/spark-
2.0
.
0
-bin-hadoop2.
7
/sbin/stop-all.sh
在master上输入jps:
在slave1和slave2上输入jps:
访问:http://192.168.79.131:8080/
以上,就完成了整个集群环境的搭建。
- spark基础知识之搭建环境<一>
- Spark学习之(一) HDFS 集群环境搭建
- Spark学习笔记一 环境搭建
- xmpp学习之环境搭建(Openfire+spark环境搭建)
- Openfire之Spark开发环境搭建
- spark之hadoop2.6环境搭建笔记
- 学习spark之基础环境搭建
- Spark成长之路(1)-搭建环境
- hadoop之spark完全分布式环境搭建
- 基础知识(一)matlab与c++混合编程之环境搭建
- 基础知识(一)matlab与c++混合编程之环境搭建
- Spark入门三部曲之第二步Spark开发环境搭建
- Spark学习笔记之-Spark Standalone(环境搭建)
- Spark学习之(二)Spark 集群环境搭建(standalone)
- Spark开发-spark环境搭建
- Spark on Yarn+Hbase环境搭建指南(一)准备工作
- hadoop spark 大数据集群环境搭建(一)
- SparkML (一) Spark的环境搭建与运行
- 接口测试的概念
- OS X下IntelliJ IDEA运行JAVA程序
- 012 Python语法之文件操作
- 链表插入排序
- 使用gifcam软件截取gif程序运行动画让你的博客更形象生动
- spark基础知识之搭建环境<一>
- Linux系统中FastDfs安装步骤
- 初识线程
- win7 无法给系统保留的100M空间分配盘符时,用下面的方法就好
- HTML基础课程及标签笔记 (第三章)
- Redis-事务控制
- Object类型分析!
- LintCode python 小白-硬币-博弈论,动态规划
- Centos6.5下安装jdk1.8