如何在集群上运行Shark

本文介绍在计算机集群上如何启动和运行Shark。如果对Amazon EC2上运行Shark感兴趣,请点击这里查看如何使用EC2脚本快速启动预先配置好的集群。

依赖:

注意:Shark是一个即插即用的工具,所以可以在现有的Hive数据仓库之上运行,不需要您对现有的部署做出任何修改。

在集群上运行Shark需要一下几个外部组件:

  • Scala 2.9.3
  • Spark 0.7.2
  • 兼容的JAVA运行时环境:OpenJDK 7, Oracle HotSpot JDK 7,或者 Oracle HotSpot JDK 6u23+
  • Shark专用的 Hive JAR (基于Hive 0.9),包括在Shark发布包里。
  • HDFS 集群:在这里不介绍如何安装,可以查看我的博文.

Scala

如果系统里没有安装Scala 2.9.3,可以按提示下载:

$ wget http://www.scala-lang.org/downloads/distrib/files/scala-2.9.3.tgz

$ tar xvfz scala-2.9.3.tgz

Spark

采用Spark的单独部署模式运行Shark。

部署细节:|http://spark-project.org/docs/latest/spark-standalone.html).也可以查看我翻译的博文。

下载Spark:

$ wget http://spark-project.org/files/spark-0.7.2-prebuilt-hadoop1.tgz  # Hadoop 1/CDH3

或者

$ wget http://spark-project.org/files/spark-0.7.2-prebuilt-cdh4.tgz    # Hadoop 2/CDH4

解压缩:

$ tar xvfz spark-0.7.2-prebuilt*.tgz

编辑 spark-0.7.2/conf/slaves添加集群中Slaves的主机名称,每一行对应一个Salve。

编辑spark-0.7.2/conf/spark-env.sh设置SCALA_HOME和SPARK_WORKER_MEMORY

export SCALA_HOME=/path/to/scala-2.9.3

export SPARK_WORKER_MEMORY=16g

SPARK_WORKER_MEMORY 是Spark在每一个节点上可用内存的最大,增加这个数值可以在内存中缓存更多的数据,但是一定要记住给Slave的操作系统和其他服务预留足够的内存。

Shark

下载Shark 0.2.1发布包,里边包括 shark-0.2.1和hive-0.9.0-bin.

$ wget http://spark-project.org/download/shark-0.7.0-hadoop1-bin.tgz  # Hadoop 1/CDH3

或者

$ wget http://spark-project.org/download/shark-0.7.0-hadoop2-bin.tgz  # Hadoop 2/CDH4

解压缩:

$ tar xvfz shark-0.7.0-*-bin.tgz

编辑shark-0.7.0/conf/shark-env.sh设置HIVE_HOME, SCALA_HOME和MASTER环境变量(参考如下):

export HADOOP_HOME=/path/to/hadoop

export HIVE_HOME=/path/to/hive-0.9.0-bin

export MASTER=spark://<MASTER_IP>:7077

export SPARK_HOME=/path/to/spark

export SPARK_MEM=16g

source $SPARK_HOME/conf/spark-env.sh

(source命令通常用于重新执行刚修改的初始化文件,使之立即生效)

最后一行是为了避免重复设置SCALA_HOME。一定要确保SPARK_MEM的数值不能超过前面设置的SPARK_WORKER_MEMORY的数值.

如果是在现有的Hive上运行Shark,确定设置 HIVE_CONF_DIR (在shark-env.sh文件中)指向你的配置文件夹.也可以,复制 Hive XML配置文件到Shark的hive-0.9.0-bin/conf配置文件夹内,比如:

cp /etc/hive/conf/*.xml /path/to/hive-0.9.0-bin/conf/

复制 Spark和 Shark目录到所有的slaves.前提是master的用户可以实现无密码SSH登录到所有的slaves.例如:

$ while read slave_host; do

$   rsync -Pav spark-0.7.2 shark-0.7.0 $slave_host

$ done < /path/to/spark/conf/slaves

运行 Spark的集群启动脚本,启动集群:

$ cd spark-0.7.2

$ ./bin/start_all.sh

基于CDH4/Hadoop2配置Shark

The newest versions of require additional configuration options.

新版本的Hadoop需要额外的配置选项。在Hive的配置文件(hive-site.xml)中进行配置:

测试

使用如下命令,启动Shark

$ ./bin/shark-withinfo

关于Spark单独模式的更多脚本细节参考这里。

To verify that Shark is running, you can try the following example, which creates a table with sample data:

使用下面的命令,创建一个简单的表格就可以确认一下Shark是否可以运行。

CREATE TABLE src(key INT, value STRING);

LOAD DATA LOCAL INPATH '${env:HIVE_HOME}/examples/files/kv1.txt' INTO TABLE src;

SELECT COUNT(1) FROM src;

CREATE TABLE src_cached AS SELECT * FROM SRC;

SELECT COUNT(1) FROM src_cached;

更详细的学习Shark,可以查看官方网站的用户指南。

如何在集群上运行Shark相关推荐

  1. 在生产集群上运行topology

    2019独角兽企业重金招聘Python工程师标准>>> 在生产集群上运行topology 博客分类: 分布式计算 在生产集群上运行topology跟本地模式差不多.下面是步骤: 1) ...

  2. pythonspark集群模式运行_有关python numpy pandas scipy 等 能在YARN集群上 运行PySpark

    有关这个问题,似乎这个在某些时候,用python写好,且spark没有响应的算法支持, 能否能在YARN集群上 运行PySpark方式, 将python分析程序提交上去? Spark Applicat ...

  3. 从认证到调度,K8s 集群上运行的小程序到底经历了什么?

    作者 | 声东  阿里云售后技术专家 导读:不知道大家有没有意识到一个现实:大部分时候,我们已经不像以前一样,通过命令行,或者可视窗口来使用一个系统了. 前言 现在我们上微博.或者网购,操作的其实不是 ...

  4. 在local模式下的spark程序打包到集群上运行

    一.前期准备 前期的环境准备,在Linux系统下要有Hadoop系统,spark伪分布式或者分布式,具体的教程可以查阅我的这两篇博客: Hadoop2.0伪分布式平台环境搭建 Spark2.4.0伪分 ...

  5. spark在集群上运行

    1.spark在集群上运行应用的详细过程 (1)用户通过spark-submit脚本提交应用 (2)spark-submit脚本启动驱动器程序,调用用户定义的main()方法 (3)驱动器程序与集群管 ...

  6. anaconda3环境整体打包放在Spark集群上运行

    一.将虚拟Python环境打包 创建好环境后,进入到环境所在的文件夹,例如环境是/home/hadoop/anaconda3/envs, cd到envs下,使用打包命令将当前目录下的文件打成zip包: ...

  7. 小白学习Spark03-在集群上运行Spark

    03 在集群上运行Spark 3.1 Spark运行架构 3.1.1 驱动器节点 3.1.2 执行器节点 3.1.3 集群管理器 3.1.4 启动Spark程序 3.1.5 小结 3.2 使用spar ...

  8. MapReduce作业在Hadoop完全分布式集群上运行的问题与思考(持续更新)

    1.集群已搭建好且通过了WordCount测试,但是在eclipse上开发的程序却仍然是只在namenode上运行 不知道是不是没有配置好eclipse上的Map/Reduce Locations,个 ...

  9. Flink学习笔记04:将项目打包提交到Flink集群上运行(Scala版)

    文章目录 一.创建Maven项目 - ScalaWordCount 三.利用mvn命令打包Maven项目 三.上传项目jar包到Flink集群主节点 四.启动Flink Standalone集群 五. ...

最新文章

  1. C#WinForm的线程及Invoke应用(转)
  2. RetinaFace,最强开源人脸检测算法
  3. locate和find命令
  4. 现在为什么面对着人多,陌生人的时候会紧张?
  5. 3389端口远程终端服务的全攻略
  6. dbgrideh的功能
  7. 制图折断线_甲级设计院CAD制图技巧与画法讲解! 超实用,值得你收藏~
  8. SQL 内置排名函数 DENSE_RANK
  9. linux释放内存后设备起不来,Linux-Memory小记
  10. 025_MapReduce样例Hadoop TopKey算法
  11. 贺州计算机学院,贺州学院
  12. 蓝鲸ERP标准版-进销存-采购管理子系统操作说明1
  13. 基于LInuxc语言TCP聊天服务端程序实现私聊,以及群聊和私聊的转换
  14. ProxmoxVE6.2 Bond配置
  15. MTK开发之cpu核开关与频率调节
  16. Matlab - 产生高斯噪声
  17. 以前开发中的一些记录
  18. CHECKBOX用法
  19. 用脚本批量消除视频噪声
  20. 区块链技术背景下数字音频商业模式变革的逻辑 - 基于云听、喜马拉雅FM和CastBox的对比分析

热门文章

  1. “玲珑杯”ACM 热身赛 # 2.5 A-B (数论)
  2. “财界奥斯卡”CGMA全球管理会计2021年度中国大奖榜单揭晓
  3. 90后电子工程师暴力拆解“华强北版AirPods”
  4. HTML爱心代码 | 《点燃我温暖你》中男主角——理工男李峋同款
  5. 华硕zx50j笔记本 拆机教程 换风扇教程
  6. mysql get seq no_mysql的存储怎么写?帮我看看我这个写的哪里有问题?谢谢
  7. 微软 人立方:背后原理_时间到了:微软终于杀了我的人
  8. 本机不装Oracle,远程访问服务器上Oracle教程
  9. RNA-seq连特异性
  10. 杨辉三角的c语言实现