准备条件
由于本人的开发机是win10,所以打算在本地搭建spark开发环境,以便于调试。由于目前公司使用的版本是spark-2.1.0,hadoop-2.7.1,所以在spark官网上下载的包为spark-2.1.0-bin-hadoop2.7,在hadoop官网下载hadoop-2.7.1包,然后将这两个包解压。(注意这两个包所在的路径不要有中文或是空格,要不然会出错!),另外还需要去下载对应Hadoop版本的winutils.ext工具,解压后放在~/hadoop-2.7.1/bin目录下,可下载地址为:https://github.com/steveloughran/winutils
此时可以配置系统环境变量:
- [‘SPARK_HOME’] = “D:\sparkenv\spark-2.1.0-bin-hadoop2.7”
- [‘HADOOP_HOME’] = “D:\sparkenv\hadoop-2.7.1”
当然也可以不用再操作系统中设置,再Idea或是程序中设置也可以。
搭建pyspark开发环境
这里使用的是python2.7,因为spark-2.1.0只能是python2.7
- 首先安装python sdk,文件路径中不要存在空格或是中文字符
- 在~\Python2.7\Scripts目录下使用pip安装 py4j : pip install py4j
- 将~\spark-2.1.0-bin-hadoop2.7\python\pyspark目录拷贝至~\Python2.7\Lib\site-packages目录下作用是编写代码是能过够有spark相关引用的提示。
- 再IDE中创建python,编写spark应用程序。
如果没有设置’SPARK_HOME’,和’HADOOP_HOME’的环境变量,除了再IDE中单独为每个application设置,还可以再代码中加入:
1 | os.environ['SPARK_HOME'] = "D:\sparkenv\spark-2.1.0-bin-hadoop2.7" |
代码中还必须添加(原因):
1 | # Append pyspark to Python Path |
接下来就可以开发了。
搭建java或是scala开发环境
通过 System.setProperty("hadoop.home.dir","D:\\\\sparkenv\\\\hadoop-2.7.1" );
来设置HADOOP_HOME路径
通过SparkConf conf = new SparkConf().setAppName("JavaWordCount").setSparkHome("D:\\\\sparkenv\\\\hadoop-2.7.1\\\\bin").setMaster("local[*]");
设置’SPARK_HOME’