CDH5.14的hive版本是1.1.0,通過1周的嘗試,開始選擇了ranger最新版本1.2.0,最後jdbc鏈接時由於hive-jdbc版本和hive版本不匹配報錯,因此選擇ranger0.5.3版本作了集成測試,過程當中仍是出現了一些問題,感受hontonworks和cloudera之間不太兼容啊。。。暫時還不是很完美,不過最終算是完成了。
首先安裝ranger-admin。
1.cd /home/ranger
下載ranger的tar包:
wget https://archive.apache.org/dist/incubator/ranger/0.5.3-incubating/apache-ranger-incubating-0.5.3.tar.gz
解壓tar包:
2.tar -xzvf apache-ranger-incubating-0.5.3.tar.gz
而後 進入解壓後的目錄:
3./home/ranger/apache-ranger-incubating-0.5.3.tar.gz
編譯整個項目,時間比較久,建議nohup掛在後臺:
4.nohup mvn clean compile package assembly:assembly install -DskipTests=true -Drat.skip=true -Dmaven.test.skip=true > maven.log &
編譯以前先解決一個問題,不然編譯通不過:
1.python版本,要python2.7才能夠,用2.6或者3都會出現問題,java
編譯完了以後進入目錄
/home/ranger/apache-ranger-1.2.0/target
咱們須要的文件都構建好了python
咱們先把ranger-admin安裝先,cp到/usr/local
cp /home/ranger/apache-ranger-incubating-0.5.3/target/ranger-0.5.3-admin.tar.gz /usr/localweb
解壓:
tar -xzvf /usr/local/ranger-0.5.3-admin.tar.gz
進入/usr/local/ranger-0.5.3-admin
修改下install.properties中的配置項,而後
使用root用戶執行
bash /usr/local/ranger-0.5.3-admin/setup.sh
就安裝好了
而後執行ranger-admin start 便可啓動ranger-admin;
瀏覽器http://hostname:6080以下登陸界面,admin/admin 便可登陸
用戶名:admin
密碼:adminsql
這裏着重寫一下ranger-hive-plugin的配置和安裝。
ranger源碼編譯完成以後,在ranger目錄下有hive插件的包:
/home/ranger/apache-ranger-incubating-0.5.3/target/ranger-0.5.3-hive-plugin.tar.gzapache
把這個包cp到hiveserver的節點上,放在hive安裝目錄同級的路徑下,好比咱們用的cdh,通常hive安裝目錄在/opt/cloudera/parcels/CDH/lib/hive/,因此咱們把ranger-hive-plugin放在/opt/cloudera/parcels/CDH/lib這個目錄下,之因此這麼作,是由於
等下ranger-hive-plugin集成到hive裏面會默認去它的相對路徑找依賴jar包,放在這裏直接就能夠找到,不用像網上說的那樣還要去建軟鏈接。
以後修改/opt/cloudera/parcels/CDH/lib/ranger-0.5.3-hive-plugin/install.properties
中配置信息,改完以後運行enable-hive-plugin.sh腳本,在重啓hiveserver2,ranger的配置便可生效,不過從cdh中啓動hiveserver2是不會生效的,由於它不會去讀取hive安裝路徑下的config目錄,而是會動態生成一個config目錄,只能手動去啓動
命令是 hive --service hiveserver2
後面看看能不能解決這個問題瀏覽器
進入ranger admin的,添加hive規則,測試jdbc連通性會報錯,由於咱們下的ranger版本自帶的是hive1.2.0的版本,hive-jdbc的版本我咱們使用的hive版本不一樣,因此咱們要把admin下相關jar包更換掉,bash
/usr/local/ranger-0.5.3-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive這個目錄下,hive1.2有關的包所有換成咱們使用的版本,相關的包均可以在cdh安裝路徑下能夠找到(/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hive/lib/)app
以後就能夠正常使用了,用beeline客戶端測試ranger使用正常,不過用hue的時候會報錯,錯誤信息顯示:java.lang.IllegalArgumentException:Cannot modify hive.server2.proxy.user at runtime.,大概是hive查詢的代理用戶沒有權限去查詢,因此須要把一些系統用戶加入到hive的白名單中,python2.7
在hive-site.xml中添加:
<property>
<name>hive.security.authorization.sqlstd.confwhitelist.append</name>
<value>mapred.|hive.|mapreduce.|spark.</value>
</property>
<property>
<name>hive.security.authorization.sqlstd.confwhitelist</name>
<value>mapred.|hive.|mapreduce.|spark.</value>
</property>webapp
便可