三分鐘上手hive進行數據統計

最近操做了hive進行數據統計,使用下面總結的步驟能夠快速上手這個數據庫java

完整案例代碼已上傳github: github.com/neatlife-le…mysql

獲取可用的hive實例

能夠使用docker一鍵啓動參考:github.com/big-data-eu…git

git clone https://github.com/big-data-europe/docker-hive.git hive
cd hive
docker-compose pull
docker-compose up -d
複製代碼

執行docker-compose ps查看啓動效果 github

能夠看到hive-server已經成功啓動並在10000端口監聽了

而後能夠使用命令: docker-compose exec hive-server /opt/hive/bin/beeline -u jdbc:hive2://localhost:10000sql

進入hive命令行終端進行操做了,常見的sql語句通常都支持,好比show databases show tables desc tableName等,操做效果以下: docker

使用sqoop導入mysql數據到hive

準備測試數據

在mysql中準備須要導入hive的數據,能夠自行生成,這裏使用已經存在的user_words表,內容以下shell

安裝sqoop

sqoop下載地址參考:apache-mirror.8birdsvideo.com/sqoop/1.4.7…數據庫

java.security.AccessControlException: access denied須要修改/etc/java-8-openjdk/security/java.policy添加下面的受權代碼apache

grant {
    permission javax.management.MBeanTrustPermission "register";
};
複製代碼

能夠把java.policy文件從docker中取出來,修改後再映射進去安全

而後修改docker-compose.yml掛載到hive server中,核心代碼以下

 hive-server:
    # ...
 volumes:
 - ./sqoop:/sqoop
 - ./java.policy:/etc/java-8-openjdk/security/java.policy
複製代碼

sqoop從mysql讀取數據須要mysql的驅動,下載地址參考:dev.mysql.com/downloads/c… 把相應的jar包放到sqoop的lib目錄便可

執行mysql導入hive

而後把mysql中的

/sqoop/bin/sqoop import \
    --connect jdbc:mysql://myip:3306/word_freq?useSSL=false \
    --username root \
    --password root \
    --table user_words \
    --hive-import \
    --hive-overwrite --create-hive-table \
    --hive-table default.user_words \
    --delete-target-dir
複製代碼

上面的命令就是把mysql中的word_freq庫中的user_words表導入hive的default庫的user_words表中,執行效果以下

能夠看到"Hive import complete"就表示導入成功了

使用DBeaver Enterprise進行數據統計

使用DBeaver鏈接hive

類型選擇Apache Hive

hive用的10000端口

下載驅動可能比較慢,能夠設置使用代理

操做表

單擊建立sql編輯器的圖標就能夠打開一個新的sql編輯器了,操做效果以下

執行sql語句,好比查詢出上面從mysql中導入的user_words表中的全部數據:SELECT * FROM user_words

能夠看到成功從hive中查詢出了user_words表的全部數據了

這個DBeaver功能豐富,完整功能列表參考:github.com/dbeaver/dbe…

一些注意的點

Make sure HIVE_CONF_DIR is set correctly是由於sqoop的lib目錄缺乏hive common庫

下載hive common放到sqoop的lib目錄參考:repo1.maven.org/maven2/org/…

執行sqoop時報safe mode關鍵詞的錯誤,須要關閉hdfs的安全模式

hdfs dfsadmin -safemode leave
複製代碼

參考資料

  1. blog.csdn.net/jmx_bigdata…
  2. mvnrepository.com/artifact/or…
  3. stackoverflow.com/questions/5…
  4. github.com/dbeaver/dbe…
相關文章
相關標籤/搜索