环境搭建
Mac下搭建Hadoop、spark相对比较简单,但是Spark依赖Hadoop的HDFS和YARN计算框架,所以想搭建Spark,先要搭建好Hadoop环境。
我基本上是照着http://www.cnblogs.com/bigdataZJ/p/hellospark.html
这篇博客来搭建环境的,大神在写的时候里面有些许瑕疵,笨宝宝费了好些功夫才找到哪里出了问题,大牛们可以直接参考这个博客去搭建,嘿嘿~
安装环境
操作系统:Mac OS X
JDK:1.8.0_101
命令终端:iTerm2(Mac自带的命令终端也一样,只是配置环境参数需要到~/.bash_profile
下添加,对于iTerm2需要到~/.zshrc
中添加)
软件包管理工具:brew
(能够方便的安装和卸载软件,类似于Ubuntu下的apt-get
以及前端里的npm
)
安装及配置Hadoop
1. 首先安装Hadoop
2.配置SSH免密码登录(配置好以后登录不用每次都输密码)
2.1 用dsa密钥认证来生成一对公钥和私钥:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2.2 将生成的公钥加入到用于认证的公钥文件中:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2.3接下来测试一下是否配置成功:
(注意:这里如果遇到connection refused之类的错误,检查一下Mac是否开启远程登录功能,在系统偏好设置中可以设置:
系统偏好设置-->共享-->勾选远程登录-->允许访问:所有用户,设置好之后再测试一下ssh,应该没什么问题了。)
3.配置Hadoop
3.1配置hadoop-env.sh文件
进入安装目录cd
/usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop
,找到并打开
open hadoop-env.sh 文件,将
export
HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
改为
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm=true -Djava.security.krb5.kdc=true"
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home"
(java_home请写上你本机上jdk安装的位置,可以用命令/usr/libexec/java_home查看jdk位置)
3.2配置hdfs地址和端口
进入目录cd
/usr/local/Cellar/hadoop/2.8.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:
</property>
</configuration>
(注意:这里的core-site.xml文件不能用命令 open core-site.xml 打开,我在终端这么干的时候默认以word形式打开了,但是啥也没有。如果这里跟我的情况一样,请大家用命令 vim core-site.xml 打开,打开默认是进入normal模式,这个时候还不能对文件进行编辑操作。单击 i或者a 进入insert模式,这个时候就可以输入了,输入完之后单击ESC键回到normal模式,然后输入 :w filename(包括冒号)就保存了文件,另外如果启动时已经包含文件名,只需输入 :w(包括冒号),则文件存盘。用Shift+ZZ
回到刚才的终端)
3.3 配置mapreduce中jobtracker的地址和端口
还是进入目录/usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop
,你可以看到一个mapred-site.xml.template
首先将文件重命名为mapred-site.xml
,同样将<configuration></configuration>
替换为
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:8021</value>
</property>
</configuration>
(注意:Mac中文件重命名命令为 mv 文件名1 文件名2 ,比如 mv mapred-site.xml.template mapred-site.xml)
3.4 修改hdfs备份数
还是进入目录/usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop
,打开hdfs-site.xml
加上
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(注意:这里修改完之后先退出终端,然后输入命令 ssh localhost 进入ssh环境下,为下一步格式化HDFS做准备)
4. 格式化HDFS
执行命令hdfs
namenode -format
在终端会显示成功。
5. 配置Hadoop环境变量
大家用哪个终端就用什么命令打开(文章一开头有讲过哒),我这里是打开vim
~/.zshrc
添加
export HADOOP_HOME=/usr/local/Cellar/hadoop/2.8.0
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
再执行source
~/.zshrc
以确保配置生效
配置这个是方便在任意目录下全局开启关闭hadoop相关服务,而不需要到/usr/local/Cellar/hadoop/2.8.0/sbin
下执行。
6. 启动关闭Hadoop服务
6.1 启动/关闭HDFS服务
./start-dfs.sh
./stop-dfs.sh
启动成功后,我们在浏览器中输入http://localhost:50070
看到如下界面。
6.2启动/关闭YARN服务
./start-yarn.sh
./stop-yarn.sh
启动成功后,我们在浏览器中输入http://localhost:8088
可以看到
6.3 启动/关闭Hadoop服务
./start-all.sh
./stop-all.sh
7 安装Scala
同样的执行brew
install scala
它会下载安装最新版的Scala。
在终端执行scala
-version
,如果出现类似Scala
code runner version 2.12.3 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.
说明你安装成功了。
同样,不要忘了配置Scala的环境变量,打开~/.zshrc
添加
export SCALA_HOME=/usr/local/Cellar/scala/2.12.3
export PATH=$PATH:$SCALA_HOME/bin
8 安装Spark
同样的套路brew install spark
再来一遍,它会根据您的Hadoop版本下载并安装好配套的Spark。
我们还需要一个环境参数配置,打开~/.zshrc
添加
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
走到这一步,我们终于可以启动spark了,打开终端,输入spark-shell
,这时候会看到
OK,到这里我们所有的安装配置过程就全部结束了,作为一个小白,能够全部弄好十分感谢各路大神的指点,希望对您有用,谢谢!!