問題環境
軟體 版本
CDH 6.3.0
hive 2.1.1-cdh6.3.0
問題原因
其實hive的中繼資料都是存儲在資料庫裡面,目前支援mysql,oracle,Postgres和MS SQL Server。如果我們建表發現亂碼,很顯然就可以歸類到資料庫表亂碼問題。本例關聯的資料庫是mysql。
表名如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwATMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xCNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLklzM1MjZmljNiRTNkZGZ5IjMzADMmRmMjZjN0ITN2ADNwEDZ2EzLclDMxIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
需要修改mysql的hive的的字元改成utf-8
解決方案:
在<code>mysql</code>對應的<code>hive</code>庫執行以下<code>SQL</code>,即可更新回來:
結果
重建立表之後,然後使用指令<code>show create table tttttt</code>可以檢視到注釋已經正常了。
總結
查找問題是怎麼産生的,并解決掉。這個過程可能會比較枯燥和繁瑣,不過收獲還是蠻大的!