1. 程式人生 > >CDH安裝配置zeppelin-0.7.3以及配置spark查詢hive表

CDH安裝配置zeppelin-0.7.3以及配置spark查詢hive表

1.下載zeppelin

http://zeppelin.apache.org/download.html 

我下載的是796MB的那個已經編譯好的,如果需要自己按照環境編譯也可以,但是要很長時間編譯,這個版本包含了很多外掛,我雖然是CDH環境但是這個也可以使用。

2.修改配置檔案

cd  /zeppelin-0.7.3-bin-all/conf

cp  zeppelin-env.sh.template zeppelin-env.sh

cp zeppelin-site.xml.template zeppelin-site.xml

vim zeppelin-env.sh

新增配置如下:我的是spark2用不了spark1.6版本這個版本的zeppelin

export HIVE_HOME=/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/hive
export JAVA_HOME=/usr/java/jdk1.8.0_121
export MASTER=yarn-client
export ZEPPELIN_JAVA_OPTS="-Dmaster=yarn-client -Dspark.yarn.jar=/home/zeppelin-0.7.3-bin-all/interpreter/spark/zeppelin-spark_2.11-0.7.3.jar"
export DEFAULT_HADOOP_HOME=/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/hadoop
export SPARK_HOME=/data/parcels/cloudera/parcels/SPARK2/lib/spark2
#export SPARK_HOME=/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/spark
export HADOOP_HOME=${HADOOP_HOME:-$DEFAULT_HADOOP_HOME}
if [ -n "$HADOOP_HOME" ]; then
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HADOOP_HOME}/lib/native
fi
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop/conf}


export ZEPPELIN_LOG_DIR=/var/log/zeppelin
export ZEPPELIN_PID_DIR=/var/run/zeppelin
export ZEPPELIN_WAR_TEMPDIR=/var/tmp/zeppelin

3.配置這些其實已經足夠了。

在啟動

./zeppelin-daemon.sh start

4.在介面上配置就可以使用了hive的配置這個


新增依賴:


這些就可以查詢hive了

5.用spark讀取hive表這個比直接查詢hive錶快十倍

我把hive的配置檔案hive-site.xml拷貝到hadoop_home/conf

新增需要的依賴

%dep
 z.load("org.apache.hive:hive-jdbc:0.14.0")
z.load("org.apache.hadoop:hadoop-common:2.6.0")
z.load("/home/gl/hive-hcatalog-core-1.1.0-cdh5.9.0.jar")

%spark
import java.util.Properties
import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkConf


val sparkConf = new SparkConf().setAppName("hive")
val spark = SparkSession.builder().config(sparkConf).enableHiveSupport().getOrCreate()


val connectionProperties = new Properties()
connectionProperties.put("user", "")
connectionProperties.put("password", "")
connectionProperties.put("driver", "org.apache.hive.jdbc.HiveDriver")
val jdbcDF2 = spark.read
  .jdbc("jdbc:hive2://*******:****/test", "bbb", connectionProperties)//.createTempView("bbb")
  
   spark.sql("select count(*) from pc_db.pc_txt group by responseset").show()


6.

.修改登陸zeeplin驗證方式
禁止匿名訪問

Zeppelin啟動預設是匿名(anonymous)模式登入的.如果設定訪問登入許可權,需要設定conf/zeppelin-site.xml檔案下的zeppelin.anonymous.allowed選項為false(預設為true).如果你還沒有這個檔案,只需將conf/zeppelin-site.xml.template複製為conf/zeppelin-site.xml

<property>
<name>zeppelin.anonymous.allowed</name>
<value>false</value>
<description>Anonymous user allowed by default</description>
</property>

a)開啟Shiro

在剛安裝完畢之後,預設情況下,在conf中,將找到shiro.ini.template,該檔案是一個配置示例,建議你通過執行如下命令列建立shiro.ini檔案:

cp conf/shiro.ini.template conf/shiro.ini
[users]
#admin = password1, admin
#user1 = password2, role1, role2
#user2 = password3, role3
#user3 = password4, role2

hadoop = hadoop, admin # 使用者名稱、密碼都是hadoop,角色為admin
bin/zeppelin-daemon.sh restart