hive導入數(shù)據(jù)報錯
?
報錯原因:
load data local順序寫反了
改順序后執(zhí)行成功:
hive (badou)> load data local inpath '/home/dongdong/hive/orders.csv' overwrite into table orders;
Loading data to table badou.orders
OK
Time taken: 12.187 seconds
hive (badou)>
執(zhí)行hive報內存溢出
?
解決辦法:
在hive-env.sh中設置:
export HADOOP_HEAPSIZE=102400
hive提交任務后丽焊,日志不能查看捐名,如下:
?
解放方法
下來查詢官方文檔后,才了解到y(tǒng)arn的日志監(jiān)控功能默認是處于關閉狀態(tài)的,需要我們進行開啟,開啟步驟如下:
Ps:下面配置的文件的位置在hadoop根目錄 etc/haddop文件夾下,比較老版本的Hadoop是在hadoop根目錄下的conf文件夾中
一盗扇、在yarn-site.xml文件中添加日志監(jiān)控支持
該配置中添加下面的配置:
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
二惋耙、在mapred-site.xml文件中添加日志服務的配置
該配置文件中添加如下配置:
<property>
<!-- 表示提交到hadoop中的任務采用yarn來運行,要是已經有該配置則無需重復配置 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--日志監(jiān)控服務的地址,一般填寫為nodenode機器地址 -->
<name>mapreduce.jobhistroy.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistroy.webapp.address</name>
<value>master:19888</value>
</property>
三冤荆、將修改后的配置文件拷貝到集群中的其他機器(單機版hadoop可以跳過該步驟)
快捷一點可以使用 scp 命令將配置文件拷貝覆蓋到其他機器
scp yarn-site.xml skyler@slave1:/hadoopdir/etc/hadoop/
scp mapred-site.xml skyler@slave1:/hadoopdir/etc/hadoop/
…其他datanode機器同理
四乳讥、重新啟動集群的Hdfs和Yarn服務
在namenode機器上分別對hdfs和yarn服務進行重啟
bin/stop-dfs.sh
bin/start-dfs.sh
bin/stop-yarn.sh
bin/start-yarn.sh
五礼仗、 開啟日志監(jiān)控服務進程
在nodenode機器上執(zhí)行 sbin/mr-jobhistory-daemon.sh start historyserver 命令,執(zhí)行完成后使用jps命令查看是否啟動成功,若啟動成功則會顯示出JobHistoryServer服務
六甩苛、hive中執(zhí)行showdatabases報錯:
?
解決辦法:
步驟一:
首先進入hive/bin目錄下
執(zhí)行命令 ** ./hive --service metastore &**
雖然發(fā)現(xiàn)還是報錯,但是這個錯誤提供了版本沖突的錯誤信息赏参,然后解決版本沖突問題志笼,上面的問題就迎刃而解了。
?
解決hive和mysql版本沖突問題:
第一種方案:
登陸mysql把篓,修改hive metastore版本:
進行mysql:mysql -uroot -p (123456)
use hive;
select * from version;
update VERSION set SCHEMA_VERSION='2.1.1' where VER_ID=1;
2.簡單粗暴:在hvie-site.xml中關閉版本驗證
更改hive-site.xml配置:
?
七纫溃、hive中關鍵字作為列名的方法
hive中有很多關鍵字,直接作為列名韧掩,會出錯的
解決方案:
使用·· (ESC下面的那個鍵紊浩,點號)兩個符號包裹即可。
hive (root)> create table udata(userid int,item_id int,rating int,timestamp
timestamp)row format delimited fields terminated by ' ';
OK
Time taken: 2.254 seconds
hive (root)>