Hadoop分布式环境的搭建可见公众号——数据湖,手动搭建:手动搭建Hadoop分布式集群,CDH搭建:安装CDH7.1.1
本文主要记录Hadoop环境遇到的一些问题,系列文章持续更新。
1. HDFS namenode初始化,初始化成功会提示 namenode has been successfully formated。
hdfs namenode -format
2. UnResolvedAddressException,说明主机地址解析有误,检查/etc/hosts 和 配置里的主机地址。
3. hive启动报错:Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition
原因:
hadoop和hive的两个guava.jar版本不一致两个位置分别位于下面两个目录:
- /opt/hive/lib/
- /opt/hadoop/share/hadoop/common/lib/
解决办法:
将高版本复制到低版本目录中,删除低版本
4. HIVE Exception in thread "main" java.lang.IllegalArgumentException: java.net.URIS
解决办法:
将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录
5. hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI
解决办法:将 system:user.name 改为 user.name
6、测试Hive
create table if not exists load_data_local(name string,age int) row format delimited fields terminated by ' ' lines terminated by '\n
新建一个文件,vim load_data_local.txt
zhangsan 30 lisi 50 wangwu 60 peiqi 6
load数据到hive表:
load data local inpath '/root/load_data_local.txt' into table load_data_local
hive> select * from load_data_local; OK zhangsan 30 lisi 50 wangwu 60 peiqi 6 Time taken: 5.201 seconds, Fetched: 4 row(s)
再建立一个会有reduce的作业:
create table if not exists t1(a string, b string, c string) row format delimited fields terminated by ' ' lines terminated by '\n'; load data local inpath '/root/hivedata/t1.txt' into table t1;
select a, max(case when b="A" then c end) col_A, max(case when b="B" then c end) col_B from t1 group by a;
如果能成功跑出结果,证明Hive的安装没有问题。