vlambda博客
学习文章列表

「大数据」(七十二)Spark之安装配置

【导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[72]篇文章,欢迎阅读和收藏】

1 准备工作

1.1 机器配置

1.2 软件信息

2 服务器配置

2.1 集群机器配置

( 1 ) 修改主机名

将机器 100.100.1.47 作为 Spark Master 节点,其余两台机器做为 Spark Slave 节点,编辑 /etc/HOSTNAME 文件,将原本的主机名更改为 sparkmaster ,另外两台机器分别更名为 sparkslaves1 、 sparkslaves2 ;

集群的三台机器上都编辑 /etc/hosts 文件,在文件末端加上三行配置

100.100.1.47 sparkmaster

100.100.1.48 sparkslaves1

100.100.1.49 sparkslaves2

( 3 ) 配置生效

三台机器都修改完毕后重启,或者执行命令 /etc/rc.d/boot.localnet start ,使配置生效。

2.2 配置互信

( 1 ) 生成密钥对

在 sparkmaster 机器上执行 ssh – keygen – t dsa 命令,将在 /root/.ssh/ 目录下生成密钥对的两个文件:id_dsa 和 id_dsa.pub ,在生成密钥对的过程中,遇到 Enter file in which to save the key ( /root/.ssh/id_dsa ):和 Enter passphrase(empty for no passphrase) :时,都直接回车,采用括号中默认的方式;

( 2 )密钥重命名

进入 /root/.ssh/ 目录,查看是否有名为 authorized_keys 的文件。如果存在,在文件末尾添加 id_dsa.pub 中的内容;如果不存在,直接将 id_dsa.pub 复制到此目录下,并命名为 authorized_keys ;

( 3 )密钥发送到集群机器

在 sparkslaves1 和 sparkslaves2 的 /root/ 目录下新建 .ssh 文件夹,利用 cp 命令在 sparkmaster 机器上将 authorized_keys 复制到外层可访问目录下,如:/home/ ,在 sparkmaster 机器上通过 scp 命令,将 authorized_keys 发送到 sparkslaves1 和 sparkslaves2 机器中的 /home/ 目录下,再将 authorized_keys 拷贝到 /root/.ssh/ 目录下;


( 4 )测试互信是否配置成功

在 sparkmaster 机器上输入 ssh sparkslaves1 和 ssh sparkslaves2 ,若直接登陆且无需输入密码,即表示配置成功。

3 软件安装

3.1 安装 Java

集群的三台机器都需要安装 Java 和 Scala , Hadoop 是用 Java 开发的, Hadoop 中 MapReduce 的运行需要使用 JDK ,所以 JDK 是必须安装的。Spark 是使用 Scala 编写的所以要在各个节点上安装 Scala ,安装前确保 Java 也已经安装完毕。

( 1 )安装 Java

将下载的 jdk-7u79-linux-x64.tar 在安装目录 /root/ 下解压生成 /jdk1.7.0_79 目录, scala-2.11.6 在 /root/ 下解压生成 /scala-2.11.6 目录;

( 2 )配置环境变量

在 /etc/profile 文件末尾加上下述配置信息

export JAVA_HOME=/root/jdk1.7.0_79

export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

export SCALA_HOME=/root/ scala-2.11.6

export PATH=$PATH:$SCALA_HOME/bin

( 3 )配置生效

重新编译 profile 文件,使配置生效

source /etc/profile

3.2 安装与配置 Hadoop

Hadoop 的框架最核心的设计就是:HDFS 和 MapReduce 。HDFS 为海量的数据提供存储,而 MapReduce 为海量的数据提供计算。

( 1 )安装 Hadoop

将下载的 hadoop-2.6.0.tar 在 sparkmaster 机器安装目录 /home/ 下解压,生成 / hadoop-2.6.0 目录;

( 2 )需要配置的文件

Hadoop 配置文件在 /home/ hadoop-2.6.0/etc/hadoop 目录中,主要有 slaves 、 hadoop-env.sh 、 core-site.xml 、 hdfs-site.xml 、 mapred-env.sh 、 yarn-site.xml 文件

( 3 )配置 slaves 文件

100.100.1.48

100.100.1.49

( 4 )配置 hadoop-env.sh 文件

修改 Java 安装目录为:

export JAVA_HOME=/root/jdk1.7.0_79

( 5 )配置 core-site.xml 文件

在 <configuration> 起始和结束标签之间添加下述内容

<property>

<name>fs.default.name</name>

<value>hdfs:// 100.100.1.47:9000</value>

</property>

( 6 )配置 hdfs-site.xml 文件

在 <configuration> 起始和结束标签之间添加下述内容

<property>

<name>dfs.name.dir</name>

<value>/usr/local/hadoop/name</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/mnt/hadoop1/data </value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

( 7 )配置 mapred-site.xml 文件

在 <configuration> 起始和结束标签之间添加下述内容

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

( 8 )配置 yarn-site.xml 文件

在 <configuration> 起始和结束标签之间添加下述内容

<property>

<name>yarn.resourcemanager.hostname</name>

<value>100.100.1.47</value>

</property>

( 9 )发送配置完成的 Hadoop 到集群机器上

scp -r /home/ hadoop-2.6.0 [email protected]:/home

scp -r /home/ hadoop-2.6.0 [email protected]:/home

( 10 )初始化 namenode

在 sparkmaster 机器上,进入 /home/ hadoop-2.6.0/bin/ 目录下,执行下述代码

./hadoop namenode -format

( 11 )启动 Hadoop

在 sparkmaster 机器上,进入 /home/ hadoop-2.6.0/ 目录下,执行下述代码

sbin/start-all.sh

( 12 )测试 Hadoop

在浏览器中输入 http://100.100.1.47:50070 ,查看集群状态是否正常。

3.3 安装与配置 Spark

Spark 是继 Hadoop 之后的新一代大数据分布式处理框架,是一个高效的分布式计算系统。

( 1 )安装 Spark

将下载的 spark-1.4.0-bin-hadoop2.6 在 sparkmaster 机器安装目录 /home/ 下解压,生成 / spark-1.4.0-bin-hadoop2.6 目录;

( 2 )需要配置的文件

Spark 配置文件在 /home/ spark-1.4.0-bin-hadoop2.6 目录中,需要配置的文件有 slaves 、 spark-env.sh 、 log4j.properties ,进入目录若没有对应的文件,将带有 .template 后缀名的文件,复制为上述文件。

( 3 )配置 slaves 文件

100.100.1.48

100.100.1.49

( 4 )配置 spark-env.sh 文件

export SPARK_MASTER_IP=100.100.1.47

export SPARK_MASTER_PORT=7077

( 5 )配置 log4j.properties 文件

按需求修改打印日志级别,注意在调试过程中若将 log4j.rootCategory=Error, console ,修改为 log4j.rootCategory=INFO, console ,调试完毕后需要将打印级别提高,否则今后会打印太多日志内容,浪费内存或磁盘空间。

( 6 )启动 Spark

进入到 /home/ spark-1.4.0-bin-hadoop2.6 目录下,输入下述指令

sbin/start-all.sh

( 7 )测试 Spark

进入到 /home/ spark-1.4.0-bin-hadoop2.6/bin 目录下,输入下述指令

./run-examples org.apache.spark.examples.SparkPi spark://100.100.1.47:7077