搭建Hadoop集群中遇到的坑
2015-12-11 11:01
501 查看
工作需要搭建个Hadoop集群,找了几台机器,配置如下:
其中有几点需要注意:
测试dfs的时候是在NameNode所在的节点运行dfs-start.sh,因为我的环境是ResourceManager和NameNode节点分开的,我开始没注意这点,直接在20上跑,结果每次NameNode都起在20上,但是Secondary起在21上,然后21老是报name路径拿不到lock的错误,害得我折腾半天,另外没有配置DataNode的时候,测试要把slaves里面的节点都屏蔽,要不然就跟着一块儿起来了。
另外像我这种情况20和21的slaves文件内容是不同的,ResourceManager对应的NodeManager,NameNode对应DataNode。
hive-site.xml的配置,如果用template的话配置项太多,找起来不方便,其实最简洁的就是
特别要注意的就是hive.server2.thrift.bind.host这个配置项,如果写localhost的话倒是可以在本机上用beeline登陆,但是在别的机器上就登不上去了,因为别人不知道这台机器的localhost是什么,要写HIVE所在机器的IP地址才可以。
ODBC驱动也是另外一个大坑,HANA用SDA去连接HIVE的时候需要建立ODBC连接,关键就是.odbc.ini文件的设置,虽然相关的文档写得比较详细,但有些已经过时,现在hive1.0.0以后已经弃用了hiveserver而改用hiveserver2,所以应该是这样配的:
Hive读文件限制很多,行分隔符不能设置,只能是'\n'换行,列分隔符只能是一个字符。
Hive JDBC 是不支持Insert value的,只能从文件加载和通过子查询来获取数据。最新的0.14开始支持逐条记录insert、update和delete了,但是也是限制多多,具体可以参考这篇博客,需要特别注意的是,还需要把metastore的数据库的autocommit关掉,否则运行sql的时候会报错。
之后执行insert的时候仍不成功,通过beeline执行的时候会报错,这篇博客讨论了/tmp目录下的文件权限问题。
IP | 角色 |
10.128.84.20 | ResourceManager |
10.128.84.21 | NameNode & SecondaryNameNode |
10.128.84.22 | DataNode & NodeManager |
10.128.84.24 | DataNode & NodeManager |
10.128.84.25 | DataNode & NodeManager |
10.128.84.27 | DataNode & NodeManager |
Hadoop Core篇
然后网上找了一下教程,参考了这篇博客hadoop 2.6全分布安装。其中有几点需要注意:
测试dfs的时候是在NameNode所在的节点运行dfs-start.sh,因为我的环境是ResourceManager和NameNode节点分开的,我开始没注意这点,直接在20上跑,结果每次NameNode都起在20上,但是Secondary起在21上,然后21老是报name路径拿不到lock的错误,害得我折腾半天,另外没有配置DataNode的时候,测试要把slaves里面的节点都屏蔽,要不然就跟着一块儿起来了。
另外像我这种情况20和21的slaves文件内容是不同的,ResourceManager对应的NodeManager,NameNode对应DataNode。
Hive篇
网上翻了这么多文档,官方的私人的,就没有一个人提到,默认的用户名密码是hive/hive。hive-site.xml的配置,如果用template的话配置项太多,找起来不方便,其实最简洁的就是
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mysql</value> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <property> <name>hive.server2.authentication</name> <value>NONE</value> </property> <property> <name>hive.server2.enable.doAs</name> <value>true</value> </property> <property> <name>hive.server2.transport.mode</name> <value>binary</value> </property> <property> <name>hive.server2.thrift.min.worker.threads</name> <value>5</value> </property> <property> <name>hive.server2.thrift.max.worker.threads</name> <value>500</value> </property> <property> <name>hive.server2.thrift.bind.host</name> <value><span style="color:#ff0000;">10.128.84.21</span></value> </property> <property> <name>hive.server2.thrift.http.port</name> <value>10001</value> </property> <property> <name>hive.server2.thrift.http.min.worker.threads</name> <value>5</value> </property> <property> <name>hive.server2.thrift.http.max.worker.threads</name> <value>100</value> </property> </configuration>
特别要注意的就是hive.server2.thrift.bind.host这个配置项,如果写localhost的话倒是可以在本机上用beeline登陆,但是在别的机器上就登不上去了,因为别人不知道这台机器的localhost是什么,要写HIVE所在机器的IP地址才可以。
ODBC驱动也是另外一个大坑,HANA用SDA去连接HIVE的时候需要建立ODBC连接,关键就是.odbc.ini文件的设置,虽然相关的文档写得比较详细,但有些已经过时,现在hive1.0.0以后已经弃用了hiveserver而改用hiveserver2,所以应该是这样配的:
[hive1] Description=Simba Hive ODBC Driver (64-bit) DSN Driver=/opt/simba/hiveodbc/lib/64/libsimbahiveodbc64.so DriverUnicodeEncoding=1 HOST=10.128.84.21 PORT=10000 HiveServerType=2 HS2AuthMech=2 UserName=hive Password=hive Schema=default DeaultStringColumnLength=10240
Hive读文件限制很多,行分隔符不能设置,只能是'\n'换行,列分隔符只能是一个字符。
Hive JDBC 是不支持Insert value的,只能从文件加载和通过子查询来获取数据。最新的0.14开始支持逐条记录insert、update和delete了,但是也是限制多多,具体可以参考这篇博客,需要特别注意的是,还需要把metastore的数据库的autocommit关掉,否则运行sql的时候会报错。
之后执行insert的时候仍不成功,通过beeline执行的时候会报错,这篇博客讨论了/tmp目录下的文件权限问题。
相关文章推荐
- opencv 读取rgb.txt 并显示出来
- hadoop学习博客
- 5. storm常用命令(客户端storm shell)
- 编译opencv文件
- 拓扑排序(topological sort)
- hive shell执行命令报错:Specified key was too long; max key length is 767 bytes
- CentOS安装telnet
- CentOS6.5 配置IP的两种方式
- 常用网站背景颜色代码表
- 根据目前业务优化的新架构
- linux根分区扩容
- Linux内核开发之异步通知与异步I/O_fcntl
- class-dump 复制到/usr/bin目录不可写,Operation not permitted 解决办法
- linux-ssh免密码登录设置
- Open edXDevstack启动出现:could not connect to localhost:27017: [Errno 111] Connection refused.
- Project has no project.properties file! Edit the project properties
- linux dd 命令详解
- 14.bash中 2>&1 & 的解释
- 【openjudge】金银岛
- 13.工作命令汇集