Menu
spark hive整合安装
1.hadoop安装参考相关文档
2.spark安装
1)下载解压(须编译,编译步骤详见4)
2)配置环境变量
3)cd 到spark安装目录cp conf/spark-env.sh.template conf /spark-env.sh
vi conf/spark-env.sh
 
 
export JAVA_HOME=/usr/java/jdk1.8.0_141
export SCALA_HOME=/usr/scala-2.11.7
export HADOOP_HOME=/usr/local/hadoop-2.7.2
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.2/etc/hadoop
export SPARK_MASTER_IP=SparkMaster
export SPARK_WORKER_MEMORY=4g
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=1
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
4)vi conf/slaves
在最后面写上IP地址或主机名
5)启动hadoop的文件系统start-dfs.sh
6)启动spark start-all.sh
3.hive 安装
1)下载hive(版本任意但spark版本需要从hive安装版对应的源码版本中查)
2)解压,配置环境变量
3)hive与hadoop整合vim hive-env.sh 在最后加入HADOOP_HOME=hadoophomedir
4)配置cp hive-default.xml.template hive-site.xml vim hive-site.xml
 
5.复制mysql的驱动程序到hivehome/lib下面mysql-connector-java-5.1.18-bin.jar
6).拷贝hive-site.xml到spark/conf下(这点非常关键)
初始化元数据、cd hivehome/bin
执行 schematool -initSchema -dbType mysql
需提前在mysql中创建库
7)hive进入客户端 
hive>set hive.execution.engine=spark; (将执行引擎设为Spark,默认是mr,退出hive CLI后,回到默认设置。若想让引擎默认为Spark,需要在hive-site.xml里设置)
hive>create table test(ts BIGINT,line STRING); (创建表)
hive>select count(*) from test;
若无报错则OK
4.spark编译
1)查看spark版本,需要下载hive对应的源码并在pom文件中查看兼容的spark版本,到官网下载对应源码
2)环境安装,须安装scala,maven3.3.9以上版本
3)如果hadoop是cdh版本需要在spark源码的pom中加入如下,须本地检测,直接删帖会报错
<repository>
<id>cloudera</id>
<name>cloudera Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
4)修改make-distribution.sh
在使用这个方式编译的时候,根据查看里面的代码,它会去确认scala,hadoop等的版本信息,这个动作会花费较长的时间。为了不长时间卡在这里,我们直接指定版本信息。先将上面的代码注释掉,然后在后面添加指定信息。其中VERSION为spark的版本。SPARK_HIVE=1为支持hive的意思。
 
5)修改spark源码的pom文件
<useZincServer>true</useZincServer> 属性,将值改为false
6)运行下列命令编译
./dev/./make-distribution.sh --name 2.6.0-cdh5.13.0 hive --tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.13.0 -Phive -Phive-thriftserver -DskipTests