1. 用svn 下載hive源碼
將源碼存放在hive_trunk目錄 下。
# svn co http://svn.apache.org/repos/asf/hive/trunk/ hive_trunk1
2. 產生 eclipse項目
在hive_trunk1目錄下,執行ant eclipse-files命令
#ant eclipse-files
產生可匯入 的.project專案檔
3 載入hive_trunk1項目。
開啟eclipse開發環境,file->import..開啟“匯入”對話方塊,選擇root directory為hive_trunk1目錄 。
在Project Explorer 視窗可以看到 已被成功匯入。
繼續在hive_trunk目錄下執行 ant package命令
#ant package
耗時很多,我用了22分鐘。
會發現新產生/opt/hive_trunk1/build/dist/lib目錄 下會有很多 jar包。
hive_trunk項目,菜單 run-> debug configurations 對話方塊中,雙擊Java Application,做下圖所示的定義。
單擊進入classpath選項卡,對於classpath選項卡,需要
擊“ Add External JARs”按鈕,將“hadoop-0.20.0-core.jar" ,"hive_trunk1/build/dist/lib”下的所有jar包添加到classpath中。
接下來點擊“Advanced”按鈕,將Hive的hive_trunk1/build/dist/conf目錄添加進來
在工程上右鍵-->properties
選擇builders,去掉java builder前面的√
點擊new按鈕,雙擊【Ant Builder】選擇Ant的編譯模式
Name的地方寫上hive_ant_Builder
在buildfile這裡點擊【browser file system】,瀏覽設定為/hive_trunk1/build.xml
開啟 Targets選項卡,點擊Manual Build的Set Targets按鈕 做下圖配置。
點擊apply進行應用配置
點擊ok按鈕將hive_ant_builder進行up上移
在hive_trunk1/build/dist/conf目錄添加
hive-site.xml .
hive-site.xml是將 hive-default.xml.template複製過來後並重新命名的副本
對hive-site.xml做些修改,下面是配置hive 中繼資料庫的三種方式,預設的嵌入式derby資料庫、網路模式derby資料庫和Mysql資料庫。
<configuration><property> <name>javax.jdo.option.ConnectionURL</name> <!--<value>jdbc:derby:;databaseName=metastore_db;create=true</value>--> <!--<value>jdbc:derby://localhost:1527/db_hive;create=true</value> --> <value>jdbc:mysql://192.168.251.19:3306/mydb_hive?useUnicode=true& characterEncoding=UTF-8&createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description></property><property> <name>javax.jdo.option.ConnectionDriverName</name> <!-- <value>org.apache.derby.jdbc.EmbeddedDriver</value> --> <!-- <value>org.apache.derby.jdbc.ClientDriver</value> --> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description></property><property> <name>javax.jdo.option.ConnectionUserName</name> <value>mysql</value> <description>username to use against metastore database</description></property><property> <name>javax.jdo.option.ConnectionPassword</name> <value>mysql</value> <description>password to use against metastore database</description></property></configuration>
我對三種串連方式都做了測試,這裡選擇Mysql資料庫。
使用Mysql資料庫還需要將Mysql的JDBC匯入到classpath中。
這裡使用mysql-connector-java-5.1.24-bin.jar 。
對於網格模式的derby需要用到derby的l的JDBC 串連包derbyclient.jar,
derby的使用可以參考http://blog.csdn.net/duguduchong/article/details/8689822
4 .調試hive
單擊菜單【run】下面的【debug】就可以單步調試hive了。
在此截圖之前我建立了3個hive表,在截圖中console 視窗裡我通過 show tables命令即可查看到,以證明上述配置過程的正確性。