本帖最后由 pig2 于 2014-7-11 16:20 编辑
问题导读:
1.Shark Hive Spark Hadoop2 单机运行环境如何搭建?
2.如何启动测试shark?
3.它们版本是如何对应的?
本文主要介绍Shark Hive Spark Hadoop2 单机运行环境的搭建。先简单对各个系统进行简单的介绍。
Hadoop2是一个分布式的存储和计算的生态系统。本文主要使用它的分布式存储。 Hive是Hadoop生态系统的一部分,用户编写类sql(HQL)语句之后再由hive进行转化成不同的map-reduce任务提交给hadoop来执行。 Spark是一个分布式的内存计算系统,这里主要充当分布式计算部分,比Hadoop中的map-reduce速度更快。 Shark是一个兼容hive的功能,速度比hive快的多,并在Spark之上运行的系统。它把HQL转化成很多个小任务在spark上执行。
准备 各个系统的版本: - Spark 0.8.1
- Shark 0.8.1
- Hive 0.9.0
- Hadoop2-CDH4.3
- Scala-0.9.3
名称 | 下载地址 | Spark 0.8.1 | http://d3kbcqa49mib13.cloudfront.net/spark-0.8.1-incubating-bin-cdh4.tgz | Shark 0.8.1 | https://github.com/amplab/shark/releases/download/v0.8.1/shark-0.8.1-bin-cdh4.tgz | Hive 0.9.0 | https://github.com/amplab/shark/releases/download/v0.8.1/hive-0.9.0-bin.tgz | Hadoop2-CDH4.3 | http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.3.0.tar.gz | Scala 0.9.3 | http://www.scala-lang.org/files/archive/scala-2.9.3.tgz |
配置 Scala: 下载之后配置到环境变量中,此处略
hadoop2:
- #core-site.xml
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://localhost:8020</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
-
- <value>/usr/yourlocal</value>
- </property>
- </configuration>
复制代码
- #hadoop-env.sh
-
- ....
- export JAVA_HOME=$JAVA_HOME #本机的jdk路径
-
- ....
复制代码
- #yarn-site.xml
- <configuration>
-
- <!-- Site specific YARN configuration properties -->
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce.shuffle</value>
- <description>shuffle service that needs to be set for Map Reduce to run </description>
- </property>
- </configuration>
复制代码
- #mapred-site.xml
-
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
-
- </configuration>
复制代码
spark:
- $cd $YOUR_SPARK_HOME/
- $vim conf/spark-env.sh
复制代码
修改spark-env.sh
- export SCALA_HOME=$YOUR_SCALA_HOME
-
- export JAVA_HOME=$YOUR_JAVA_HOME
- export SPARK_MASTER_IP=$YOUR_MASTER_HOST
- export SPARK_MASTER_PORT=$YOUR_MASTER_PORT
- export SPARK_WORKER_CORES=1
- export SPARK_WORKER_MEMORY=1g
- export SPARK_WORKER_INSTANCES=1
- export SPARK_JAVA_OPTS="-verbose:gc -XX:-PrintGCDetails -XX:+PrintGCTimeStamps"
-
- export HADOOP_HOME=$YOUR_HADOOP_HOME
复制代码
Hive: 如果使用mysql保存hive的元数据相关信息,需要拷贝mysql-connector-java-3.1.13-bin.jar 到$HIVE_HOME/lib 目录下。
- #cd $YOUR_HIVE_HOME
- #cp conf/hive-env.sh.template conf/hive-env.sh
- #cp conf/hive-default.xml.template conf/hive-site.xml
- #vim conf/hive-env.sh
复制代码
修改hive-env.xml
- ....
- HADOOP_HOME=$YOUR_HADOOP2_HOME
- ....
复制代码
修改hive-site.xml
-
- .....
-
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://localhost:3306/SHARK_DATABASE?createDatabaseIfNotExist=true</value>
- <description>JDBC connect string for a JDBC metastore</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionDriverName</name>
- <value>com.mysql.jdbc.Driver</value>
- <description>Driver class name for a JDBC metastore</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionUserName</name>
- <value>shark</value>
- <description>username to use against metastore database</description>
- </property>
-
- <property>
- <name>javax.jdo.option.ConnectionPassword</name>
- <value>shark</value>
- <description>password to use against metastore database</description>
- </property>
-
- ......
复制代码
Shark:
- #cd $YOUR_SHARK_HOME
- #cp conf/shark-env.sh.template conf/shark-env.sh
- #vim conf/shark-env.sh
复制代码
修改shark-env.sh
- ......
- export SCALA_HOME=$YOUR_SCALA_HOME
- export HIVE_HOME=$YOUR_HIVE_HOME
- export HADOOP_HOME=$YOUR_HADOOP_HOME
- export SPARK_HOME=$YOUR_SPARK_HOME
- export MASTER=spark://localhost:8888
- ......
复制代码
启动并测试
- #cd $YOUR_HADOOP_HOME
- #bin/hadoop namenode -format
- #sbin/start-alll.sh
-
- #cd $YOUR_SPARK_HOME
- #bin/start-all.sh
-
- #cd $YOUR_SHARK_HOME
- #bin/shark
- Starting the Shark Command Line Client
- ......
- ......
- shark>show databases;
- shark>create database SHARK_DB;
- shark>use SHARK_DB;
- shark>create table tbl_test(ID STRING);
复制代码
搭建完毕。
引用:http://www.cnblogs.com/nb591/p/3644388.html
|