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