spark+hive win7開發環境配置
阿新 • • 發佈:2019-01-24
典型配置:
SPARK_IDENT_STRING=$USER
export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/current/hadoop-client}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/usr/hdp/current/hadoop-client/conf}
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.7.0_67
export SPARK_MASTER_IP=master1
# 應小於master cpu個數,如果設定為master節點最大cpu個數,則會報:WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=2"
if [ -d "/etc/tez/conf/" ]; then
export TEZ_CONF_DIR=/etc/tez/conf
else
export TEZ_CONF_DIR= fi 虛擬中執行步驟: 軟體:hdp2.3.2虛擬機器,vmware,gnome,idea 15
- spark在linux中以standalone方式執行,配置引數如下:“spark-env配置引數 ”。
- 在windows idea中編輯程式碼,執行driver,連線遠端master,執行程式,可同步執行檢視日誌,可單步除錯
- 如果連線hive需要在本機src中配置hive-site.xml中的 hive.metastore.uris
- 配置本地hadoop_home,下載winutils.exe,拷貝到hadoop_home/bin
- 參照下面虛擬機器中執行步驟7-9
- 如果多網絡卡,則需在本機配置SPARK_LOCAL_IP=叢集裡ip
- 在低配置機器上執行idea 有可能導致記憶體溢位,需要指定程式執行記憶體: -Xms128m -Xmx512m -XX:PermSize=250m -XX:MaxPermSize=512m
windows 需要配置環境變數 HADOOP_HOME ,HADOOP_USER_NAME
spark-env配置引數: # Where the pid file is stored. (Default: /tmp) 用於後臺執行spark export SPARK_PID_DIR=/var/run/spark # A string representing this instance of spark.(Default: $USER)SPARK_IDENT_STRING=$USER
export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/current/hadoop-client}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/usr/hdp/current/hadoop-client/conf}
if [ -d "/etc/tez/conf/" ]; then
export TEZ_CONF_DIR=/etc/tez/conf
else
export TEZ_CONF_DIR= fi 虛擬中執行步驟: 軟體:hdp2.3.2虛擬機器,vmware,gnome,idea 15
- 下載hdp虛擬機器
- 修改虛擬機器dns,vi /etc/resolve,增加本地dns,預設為google dns,否則很多網站ping或連線不穩定。
- 增加dev使用者
- 下載idea,上傳到虛擬機器,解壓,執行。
- 下載scala外掛,建立scala工程,設定jar檔案,需要匯入spark/lib下所有jar檔案
- 設定sparkmaster, 必須用spark://sandbox.hortonworks.com:7077,在spark worker啟動日誌裡面找到,或ps -ef檢視worker程序引數,如果是用ip,則報錯 one。。stragy
- 匯入hive-site.xml檔案到src,不然會報 ,表找不到。
測試程式碼
import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.hive.HiveContext /** * Created by czp on 2015/11/2. */ object SparkHiveRun { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setAppName("HiveFromSpark").setMaster("spark://master1:7077") val sc = new SparkContext(sparkConf) val hiveContext = new HiveContext(sc) // import hiveContext.implicits._ import hiveContext.sql // Queries are expressed in HiveQL println("Result of 'SELECT *': ") sql("SELECT * FROM test_part").collect().foreach(println) // Aggregation queries are also supported. val count = sql("SELECT COUNT(*) FROM test_part").collect().head.getLong(0) println(s"COUNT(*): $count") } }
hive-site
<!--Sat Oct 10 23:00:44 2015--> <configuration> <property> <name>hive.metastore.uris</name> <value>thrift://node6:9083</value> </property> </configuration>