1.怎么查找hadoop_home
看Hive安装的时候需要配置hadoop_home 因为不太懂,查找了一下/etc/profile文件发现没有,
又搜索了一下发现叫hadoop的目录到处都是,不知道哪个是,最后同事说,有bin的目录就是hadoop_home,那么多文件夹一个一个找费劲,而且如果有多个文件夹怎么办,
这里我发现一个简单的办法
输入hadoop version
会打印出
Hadoop 2.5.0-cdh5.3.2
Subversion http://github.com/cloudera/hadoop -r 399edecc52da6b8eef1e88d8a563ede94c9cc87c
Compiled by jenkins on 2015-02-24T20:54Z
Compiled with protoc 2.5.0
From source with checksum 3d11317b8cfa5e9016a8349e33b363ee
This command was run using /usr/lib/hadoop/hadoop-common-2.5.0-cdh5.3.2.jar
这个命令是查看hadoop的版本,这里下边红色的文件夹就是安装Hadoop的位置了,点进去以后发现有bin目录,搞定,那么上边又多了一个发现。
因为我只知道我们用的是cloudera的CDH来安装的hadoop,但是我不知道我们用的什么版本,这里也一起打印出来了,用的是cdh5.3.2
2.Hive部署
按照下边的帖子进行的配置
http://ju.outofmemory.cn/entry/118202
发布了Hive,版本是CDH5.3.2的
下载地址是 http://archive-primary.cloudera.com/cdh5/cdh/5/
正常搭建完以后,他说在控制台直接敲hive ,我不知道怎么弄的,我是在hive的目录下的bin目录下,返现有个hive文件,我就直接敲hive
然后才正常启动hive ,但是一开始启动说是找不到驱动,当然是英文提醒,然后我把lib放到了网上说的user/lib/hive/lib下,发现不好使,我又看了
/etc/profile文件发现class_path变量指向JDBC的lib,我又放JDBC下,还是不好使,最后我发现hive目录下有个lib放进去终于好使了
3.Hive启动后试验
create TABLE aaa(id int,name string)报错如下
Error in metadata:MetaException(message:javax.jdo.JDODataStoreException: An exceptionwas thrown while adding/validating class(es) : Specified key wastoo long; max key length is 767 bytes
解决方式
在mysql服务器上运行
alter database hive character set latin1
问题解决了
4.Hive导入数据都是NULL
按网上写的创建表以后,导入类似格式数据,数据都是NULL。问题是因为建表时的分隔符跟数据的实际分隔符不对,我换成 ',' 都好分隔以后数据成功录入。
5.安装ClouderaManager总结
主要参考2个帖子
http://blog.csdn.net/yhl27/article/details/37726639
www.aboutyun.com/thread-9190-1-1.html
先参考第一个配置环境,再参考第2个安装。
问题1.没有图形用户界面如何安装
公司的Linux服务器没安装图形用户界面。同时,我只能使用CRT进行远程服务器安装
这个时候,使用cloudera-manager-installer.bin安装就会打印一大堆乱码的东西,因为他是图形用户界面的。
一开始我以为安装不了了,但是实际上是能安装的。
我进入了第一个帖子里的
/var/www/html/cm5/redhat/6/x86_64/cm/5.4.1/RPMS/x86_64 目录下
然后自己rpm -ivh 来安装
先安装daemons,然后安装server,然后安装server-db,然后安装agent。其中daemons必须第一个安装,server必须在server-db前边安装。agent随便,只要先安装了daemons就可以了。
问题2.安装完以后cloudera-scm-server启动失败
安装完这些包以后发现cloudera-scm-agent,server,server-db3个服务都已经有了
但是server一直启动不起来。
这个时候,可以进入
/var/log/cloudera-scm-server文件夹查看.log文件,就一个.log应该不会找错,这个时候我出现了2个问题。
第一个是没有mysql驱动包,这个时候不用从晚上下载,只要在你前台工程里搜一下一般都有。mysql-connector-java-5.1.*.jar
这里我电脑上有个mysql-connector-java-5.1.30.jar我就直接放到服务器上了
但是发现我放到classpath下不行,放到JDK的lib下也不行,最后找到了正确的位置
应该放在/usr/share/java/目录下,同时文件名必须叫mysql-connector-java.jar否则也会出问题!
驱动安装以后出现第2个问题,log的报错已经改变,说是连不上数据库
因为我着台上没有mysql,mysql在另外一台服务器上。这个时候需要修改
/etc/cloudera-scm-server/db.properties文件
里边很简单,自己把注释的数据库账号,密码,地址什么的填上就行了,数据库名我忘了是不是需要自己建了,最好先自己建一个。
表是在服务器启动的时候,它自己会帮你建上,但是首先你要有个名字跟配置文件里一样的数据库!
6.cloudera-manager集群
我已经在10.10.92.151上安装了cloudera-manager,之后安装了Hbase,HDFS,MapReduce,Hive,Impala,zookeeper
我现在想在10.10.92.153上也安装一份,同时作为151的子节点,形成集群。
我一开始的做法是按照网上说的,点击添加节点,然后一步步来,但是一直提示
http://10.10.92.151/cm5/redhat/6/x86_64/cm/5.4.1/repodata/repomd.xml 这个地址返回407
后来我配置了代理,myrepo,/var/hosts,/etc/yum.conf/,这些,能配置代理的都配置了代理。
终于不报407了,开始报
http://10.10.92.153/cm5/redhat/6/x86_64/cm/5/repodata/repomd.xml: [Errno -1] Error importing repomd.xml for myrepo: Damaged repomd.xml file
提示是配置文件损坏,这个问题一直没解决,在网上问也没人知道。
最后没办法
我直接在153上安装了全套的cloudera-manager5.4.1+CDH5.4.1
之后,我卸载了153上的cloudera-scm-server-db 跟 cloudera-scm-server
然后将/etc/cloudera-scm-agent/config.ini 配置下的服务器地址,从local修改成了10.10.92.151
重启cloudera-scm-agent之后。
进入151的管理页
http://10.10.92.151:7180
但是在 主机这里 一直刷新不出来153这台机器。
最后我又点击了在向集群里添加主机,但是这次的向导居然变了,变的跟安装CDH时候差不多,经过几次继续之后,151开始向153上布置配置文件,
最后居然集群好使了,可以看到2台机器。
但是实际上是否集群成功了,我现在也不会看,所以还不知道。
7.Hbase的VERSIONS总结
首先可以通过describe '表名' 来查看表信息,其中就有VERSIONS属性。这个是版本。默认是3,我一直在傻傻的在HBASE里找这个设置。最后发现没有。
而是在建表的时候可以设置的,比如
create 'table1',{NAME=>'clo1',VERSION='50'};//这是保留50个版本
但是,我发现从hive映射过来的表,他的VERSIONS默认是1,正好也满足我的需求,这里只是记录一下。其实这个问题是我一直以为是在HBASE的配置项里配置表的VERSIONS数量,是我搞错了。
8.Impala不能查询Hive新增加的表
下边是我从网上找到的解决方案,这里记录一下。
/etc/impala/conf这个路径我是有的。于是但是下边这3个文件在哪呢,我拷贝的是/etc/hive/conf目录下的
core-site.xml,hdfs-site.xml,hive-site.xml。。。。。。未完待续。。。。。。