2013年(2)
分类: HADOOP
2013-02-14 16:50:58
----嵌入式derby 模式
hive版本号:hive-0.8.1
derby版本号:db-derby-10.9.1.0
mysql版本号:mysql-5.1.47(linux redhat 安装时已经安装)
/usr 目录下,
hive-0.8.1-bin的文件夹,
cd /usr/hive-0.8.1-bin
//在系统中指出hive的配置文件所在
//这个可以实现,只要输入hive,hive service就会自动响应,而不用必须输入hive所在的绝对路径。
(.template文件是模板文件,让用户参照其中的格式进行自定义的修改和优化)
将其cp并命名为:hive-env.sh 命令如下:
cp hive-env.sh.template hive-env.sh
vi hive-env.sh
将export HADOOP_HEAPSIZE=1024前面的‘#’去掉
当然可以根据自己的环境对这个默认的1024进行优化
将export HADOOP_HOME前面的‘#’号去掉,
并让它指向您所安装hadoop的目录 (就是切换到这个目录下有hadoop的conf,lib,bin 等文件夹的目录),
(mine:HADOOP_HOME=/home/hadoop/hadoop)
其实在安装hive时需要指定HADOOP_HOME的原理基本上与
在安装Hadoop时需要指定JAVA_HOME的原理是相类似的。
Hadoop需要java作支撑,而hive需要hadoop作为支撑。
将export HIVE_CONF_DIR=/usr/hive/conf,并且把‘#’号去掉
将export HIVE_AUX_JARS_PATH=/usr/hive/lib
esc(键)
:wq
source /hive-env.sh(生效文件)
----------------------------------------------------------finish hive-env.sh
路径相对应,否则在运行hive时会报错的。
键入‘/hive.metastore.warehouse.dir’(回车)
就会锁定到所需要的字符串上。
这个是设定数据目录
------------------------------------------------------------------------
这个是设定临时文件目录
------------------------------------------------------------
这个是用于存放hive相关日志的目录
这个是当hive运行时,相应的日志文档存储到什么地方
(mine:hive.log.dir=/usr/hive/log/${user.name})
这个是hive日志文件的名字是什么
默认的就可以,只要您能认出是日志就好,
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
WARNING: org.apache.hadoop.metrics.EventCounter is deprecated.
please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
(只要按照警告提示修改即可)。
就可以显示出:
hive>
输入命令show tables;(不要忘记加上分号,否则不会执行)
退出hive
接下来要配置的是mysql模式下的hive;
要使用hadoop来创建相应的文件路径,
并且要为它们设定权限:
hdfs dfs -mkdir -p /usr/hive/warehouse
hdfs dfs -mkdir -p /usr/hive/tmp
hdfs dfs -mkdir -p /usr/hive/log
hdfs dfs -chmod g+w /usr/hive/warehouse
hdfs dfs -chmod g+w /usr/hive/tmp
hdfs dfs -chmod g+w /usr/hive/log
Mysql的运行环境支撑双向同步或是集群工作环境,
这样的话,至少两台数据库服务器上会备份hive的元数据。
这就说明在系统中关于hive配置文件中的参数是正确的。
----------------------------------------------------------------------
----------------------------------------------------------------------
接下来是关于mysql的安装,
以及hive的配置文件关于mysql而进行一些参数的调配。
可以在系统中输入命令:
如果系统中安有mysql,会出现提示:
mysql> (进入到mysql的命令模式)
------------------------------------------
如果系统中没有安装可以从mysql官方网站下载。
(这里就与前面的hdfs dfs -mkdir -p /usr/hive/warehouse相对应)
//这个没有变化与derby配置时相同
这个参数使用来设置元数据连接字串
----------------------------------------------------
关于在hive中用java来开发与mysql进行交互时,
需要用到一个关于mysql的connector,
转化为mysql可以理解的语句。
connector是一个用java语言描述的jar文件。
经证实即便connector与mysql的版本号不一致,
也可以实现相应的功能。
用户登录数据库的时候需要输入的密码的。
而这个‘hive’同样可以根据用户自己的需要来进行设置。
---------------------------------------------------------------
应该在mysql库中创建用户hive,并且密码也要设置为hive;
如何在mysql中创建用户?并赋予其权限呢?
(所创建的用户名密码要与配置文件相对应)
其中-u参数后接创建的用户名称,而-h后接的是创建mysql用户时主机的名称(@之后的)
FAILED :Error in metadata : java.lang.IllegalArgumentException:URL: does not have a scheme
com.mysql.jdbc.execeptions.jdbc4.MySQLSyntaxErrorException:Unknown database 'hive'
mysql>show databases;
输入hive(enter)
OK;