spark基础知识之搭建环境<一>

xiaoxiao2021-02-28  93

                           spark基础知识之搭建环境<一>

本文详细讲解如何搭建hadoop、zookeeper、hbase和spark的集群环境,这里我是在本地虚拟机上搭建的集群,但是和实际环境的配置差不多。我会从零开始搭建并且尽量写得详细,所以还会讲到很多配置linux环境的东西,希望大家不要烦,务必按照步骤一步步做下去。 本文主要讲了以下内容:

Linux系统的一些基础配置   安装jdk   配置SSH免登陆   hadoop的安装和配置   zookeeper集群的安装配置   hbase的安装和配置   spark的安装和配置

1 使用Vmware安装Linux系统

这个很easy,软件和操作步骤请自行搜索,我安装的ubuntu系统,三个主机的名称分别是master、slave1、slave2,用户名统一都是trigl,后面设置ssh免登录需要用户名是相同的否则就会出错。后面的很多配置这三台主机都是相同的,直接复制配置文件即可,这里教大家一下不同主机之间传输文件(文件夹)的命令:

? 1 scp -r 本主机文件路径 其他主机用户名@其他主机IP:文件父目录

如将master的jdk的tar包传给slave1,命令如下:

? 1 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文件:

? 1 sudo vi /etc/hosts

添加下面内容:

? 1 2 3 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、新建应用的安装目录

? 1 sudo mkdir -p /data/install

2、更改该安装目录所属用户和组 例如将目录归属为trigl用户和trigl用户组:

? 1 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 目录并解压:

? 1 tar -xvf jdk-7u75-linux-x64.tar.gz

3、配置环境变量 首先进入编辑Linux配置环境变量的文件:

? 1 sudo vi /etc/profile

在里面添加如下内容:

? 1 2 3 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、使环境变量立刻生效:

? 1 source /etc/profile

7 配置SSH免登陆

关于为什么需要配置SSH免登陆,我这里仅给出具体的配置方式

1、生成SSH的公钥,命令如下,三台主机都要执行一次:

? 1 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

? 1 2 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文件中

? 1 2 3 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/下面

? 1 2 scp authorized_keys trigl @slave1 :~/.ssh scp authorized_keys trigl @slave2 :~/.ssh

5、验证 验证master连接slave1:

? 1 ssh slave1

如果没有让输入密码且成功切换到slave1的终端,说明配置成功,验证连接slave2类似

8 hadoop的安装和配置

1、下载hadoop 首先到Apache官网(http://www.apache.org/dyn/closer.cgi/hadoop/common/)复制下载地址,然后进入 /data/install/apache 目录下面执行以下命令直接进行下载:

? 1 wget http: //mirror.bit.edu.cn/apache/hadoop/common/stable/hadoop-2.7.3.tar.gz

下载完成后进行解压:

? 1 tar -xvf hadoop- 2.7 . 3 .tar.gz

2、配置hadoop 进入hadoop的配置目录:

? 1 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

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <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

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <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,内容改为如下:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

? 1 2 slave1 slave2

hadoop-env.sh和yarn-env.sh

? 1 export JAVA_HOME=/data/install/java/jdk1. 7 .0_45

配置文件修改完以后,将master下hadoop文件夹复制到slave1和slave2中,记得将配置文件里面的域名master修改为slave1和slave2

? 1 2 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数据):

? 1 2 3 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:

? 1 2 /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

? 1 2 /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/下载安装包并解压:

? 1 wget http: //apache.fayea.com/zookeeper/stable/zookeeper-3.4.9.tar.gz

2、配置

(1)建立数据目录

? 1 mkdir /data/install/apache/zookeeper- 3.4 . 9 /data

(2)进入conf目录创建并修改zoo.cfg文件

? 1 cp zoo_sample.cfg zoo.cfg

修改以后的内容为:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # 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添加如下内容

? 1 2 export ZOOKEEPER_HOME=/home/hadoop/platform/zookeeper- 3.4 . 5 export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

别忘了source一下让环境变量生效

? 1 source /etc/profile

3、启停zookeeper

? 1 2 /data/install/apache/zookeeper- 3.4 . 9 /bin/zkServer.sh start /data/install/apache/zookeeper- 3.4 . 9 /bin/zkServer.sh stop

输入jps检测一下:

查看各个主机的状态:

? 1 sh bin/zkServer.sh status

这里如果报错:

? 1 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/下载稳定版安装包并解压:

? 1 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

? 1 2 3 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

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <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

? 1 2 slave1 slave2

3、启停hbase

? 1 2 /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的一些基本命令

名称命令表达式创建表create ‘表名称’, ‘列名称1’,’列名称2’,’列名称N’添加记录put ‘表名称’, ‘行名称’, ‘列名称:’, ‘值’查看记录get ‘表名称’, ‘行名称’查看表中的记录总数count ‘表名称’删除记录delete ‘表名’ ,’行名称’ , ‘列名称’删除一张表disable ‘表名称’ drop ‘表名称’查看所有记录scan “表名称”

首先进入hbase shell

? 1 ./bin/hbase shell

(1)创建表

? 1 creat 'test' , 'address'

(2)添加记录

? 1 2 put 'test' , 'row1' , 'address:province' , 'zhejiang' put 'test' , 'row2' , 'address:city' , 'hangzhou'

(3)查看记录

? 1 get 'test' , 'row1'

(4)查看表中的记录总数

? 1 count 'test'

(5)删除记录

? 1 delete 'test' , 'row1' , 'address'

(6)删除一张表

? 1 2 disable 'test' drop 'test'

(7)查看所有记录

? 1 scan 'test'

11 spark的安装和配置

1、下载 首先在http://spark.apache.org/downloads.html下载指定hadoop版本的安装包,然后解压缩

2、配置

创建并修改conf目录下的配置文件 spark-env.sh,slaves

spark-env.sh

? 1 cp spark-env.sh.template spark-env.sh

修改内容为:

? 1 2 3 4 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

? 1 cp slaves.template slaves

修改内容为:

? 1 2 slave1 slave2

3、启停spark

? 1 2 /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/


以上,就完成了整个集群环境的搭建。

转载请注明原文地址: https://www.6miu.com/read-41021.html

最新回复(0)