Mac下spark环境的搭建

安装前必备的环境:

mac操作系统:本人是10.12.6

JDK:1.8.0

软件包管理工具:brew

1、配置ssh

配置ssh就是为了能够实现免密登录,这样方便远程管理Hadoop并无需登录密码在Hadoop集群上共享文件资源 。

如果你的机子没有配置ssh的话,输入ssh localhost提示需要输入你的电脑登录密码,配置好ssh之后,就不需要输入密码了。

配置ssh的步骤如下:

(1)在终端输入:ssh-keygen -t rsa,之后一路enter键就行,如果之前进行过,则会提示是否覆盖之前的key,输入y即可,会进行覆盖。

(2)终端执行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,用于授权你的公钥到本地可以无需密码实现登录。

此时就可以免密登录了,但是本人在执行ssh localhost后,出现了如下报错:

ssh : connect to host localhost port 22: Connection refused.

连接被拒绝。

解决方法:

选择系统偏好设置->选择共享->勾选远程登录。

之后再执行ssh localhost就可以登录成功了。如图:

2、安装hadoop

命令行执行:brew install hadoop

正常情况下就等待安装就可以成功了,不过安装可能需要一段时间,但是本人在安装过程中遇到了一点问题,在执行了上述命令之后,错误提示如下:

通过错误提示可以看到是因为java JDK安装的不符合要求。

说明下,我之前安装JDK也是通过brew install 安装的,然后安装完之后,检查java版本是10.0.1,估计是安装的java版本不符合要求。

于是重新进行了java JDK的安装,附JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

选择对应的版本就可以了,下载之后解压双击安装,安装完成后检查是否安装成功,查看java 安装的版本:

此时安装成功,对应的的是1.8.0版本的。

这样之后重新执行brew install hadoop ,这次安装成功了。安装成功之后,在/usr/local/Cellar 目录下,会看到有个hadoop目录。

3、配置hadoop

3.1配置hadoop-env.sh

进入安装目录/usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop,找到hadoop-env.sh文件,将export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"

改为:

exportHADOOP_OPTS="$HADOOP_OPTS-Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="exportJAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home"

(JDK的路径,按照自己的实际情况进行配置即可)

3.2配置hdfs地址和端口

进入hadoop安装目录:/usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop,编辑core-site.xml,将<configuration></configuration>改为:

<configuration>

   <property>

       <name>hadoop.tmp.dir</name>

       <value>/usr/local/Cellar/hadoop/hdfs/tmp</value>

       <description>A base for other temporary directories.</description>

   </property>

   <property>

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

      <value>hdfs://localhost:8020</value>

  </property>

</configuration>

3.3  mapreduce中jobtracker的地址和端口

仍然在hadoop的安装目录下,编辑mapred-site.xml,将<configuration></configuration>改为:

<configuration>

      <property>

              <name>mapred.job.tracker</name>

              <value>localhost:8021</value>

     </property>

</configuration>

3.4  修改hdfs备份数

仍然在hadoop的安装目录下,编辑hdfs-site.xml,将<configuration></configuration>改为:

<configuration>

       <property>

                <name>dfs.replication</name>

               <value>1</value>

       </property>

</configuration>

3.5  格式化hdfs

这个操作相当于一个文件系统的初始化,执行命令:hdfs namenode -format

在终端最终会显示成功

3.6  配置Hadoop环境变量

终端执行:vim ~/.bash_profile,添加hadoop的环境变量:

export HADOOP_HOME=/usr/local/Cellar/hadoop/3.0.0/libexec

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

备注:此处说明下,因为我使用brew install hadoop安装之后,发现安装目录下显示的有点问题,发现在/usr/local/Cellar/hadoop/3.0.0下面有bin  sbin  libexec,然后进入libexec目录,发现下面才是真正的hadoop安装的文件:

而/usr/local/Cellar/hadoop/3.0.0目录下的其实是缺失的,因此配置hadoop环境变量的时候,要写到libexec这一级别:

export HADOOP_HOME=/usr/local/Cellar/hadoop/3.0.0/libexec

否则执行启动 hadoop的时候就会报错。

3.7 启动关闭hadoop服务

进入目录:/usr/local/Cellar/hadoop/3.0.0/libexec/sbin下,执行如下命令:

./start-all.sh    启动hadoop命令

./stop-all.sh   关闭hadoop命令

启动成功后,在浏览器中输入http://localhost:8088,可以看到如下页面:

4、安装scala

命令行执行:brew install scala

执行完成后,终端输入:scala -version进行查看,如下表明安装成功:

然后在环境变量中增加scala相关的变量,命令行输入:vim ~/.bash_profile进行编辑,增加环境变量:

export SCALA_HOME=/usr/local/Cellar/scala/2.12.6

export PATH=$PATH:$SCALA_HOME/bin

5、安装spark

5.1  安装spark 

进入Apache Spark官网进行Spark的下载,附Spark官网下载地址:http://spark.apache.org/downloads.html

下载完之后解压,并将解压后的文件夹移动到/usr/local/目录下,然后cd /usr/local进入到/usr/local目录下,使用命令更改该目录下的spark文件夹名称:sudo mv ./spark-2.0.2-bin-hadoop2.7   ./spark  将文件夹名称改为 spark 。

5.2  配置环境变量

命令行输入:vim ~/.bash_profile进行编辑,增加环境变量:

export SPARK_HOME=/usr/local/spark

export PATH=$PATH:$SPARK_HOME/bin

然后保存退出,执行source  ~/.bash_profile,使之生效。

5.3  配置spark-env.sh

进入到Spark目录的conf配置文件中:cd /usr/local/spark/conf,执行命令:cp spark-env.sh.template spark-env.sh将spark-env.sh.template拷贝一份,然后打开拷贝后的spark-env.sh文件:vim spark-env.sh,在里面加入如下内容:

export SCALA_HOME=/usr/local/Cellar/scala/2.12.6

export SPARK_MASTER_IP=localhost

export SPARK_WORKER_MEMORY=4G

配置好之后,命令行执行:spark-shell,如果出现如下所示的画面,就表明spark安装成功了:

至此mac下spark单机环境就搭建完成了,以后就可以在spark shell中进行练习了。

推荐阅读更多精彩内容