1.安装1.7及其以上的jdk版本;
2.安装mysql(mysql和hive可以安装在不同的机器上),其实Centos里是有内置的mysql的,如果对于rpm安装不熟悉的人,可以直接yum安装内置的mysql
yum install mysql-server 安装mysql的服务端
yum install mysql 安装mysql的客户端
service mysqld start 开启mysql服务,可以用service mysqld status 查看mysqld的状态
注意:mysql数据库安装好后只会有一个root的管理员账户,但是此时的root账户还没有设置密码,所以我们必须要
设置一个密码:
/usr/bin/mysqladmin -u root password '你的密码' #为账号设置密码
密码设置后可以进行登陆:mysql -u 密码 -p
到此我们就安装好了mysql并成功登陆了,此时的编程标示为:
mysql>xxxx;
前面说过hive和mysql可以安装在不同的机器上,但是如果这样我们要对mysql设置访问权限:
grant all privileges on *.* to root@"localhost" identified by "root" with grant option;
3.接下来正式安装hive
先下载apache-hive-1.2.1-bin.tar.gz(现在已经出到2X版本,但是2X版本已逐渐开始不支持mapreduce,而是推荐使用spark),将其上传到你的安装目录中,我的目录是/home/hadoop/apps/apache-hive-1.2.1-bin.tar.gz
hive这个文件的目录太长,我给它取个“代号”:
cd /home/hadoop/apps
ln -s apache-hive-1.2.1-bin.tar.gz hive
为了便于使用,在profile中配置HIVE_HOME
vi /etc/profile
export HIVE_HOME=/home/hadoop/apps/hive
export PATH = $PATH:$HIVE_HOME/bin
source /etc/profile #启用新的profile配置
其实这样hive就已经可以用了,但是此时它启动用的数据库是它本身内置的derby,这个数据库每次命令启动,假设它是在a目录下执行某个建表命令,它的数据是存在a目录下的,到了目录c 下它就找不到a目录下的那个建表了,所以不利于我们使用。
所以为了启用mysql,我们要重新修改下配置文件
#进入配置文件的目录
cd /home/hadoop/apps/hive/conf
#修改hive-env.sh文件
cp hive-env.sh.template hive-env.sh
#将以下内容写入到hive-env.sh文件中
export JAVA_HOME=/opt/apps/jdk-1.7-xxx.jar #jdk的安装目录
-export HADOOP_HOME= /home/hadoop/apps/hadoop #hadoop的安装目录
export HIVE_HOME=/home/hadoop/apps/hive #hive的安装目录
#修改log4j文件
cp hive-log4j.properties.template hive-log4j.properties
#将org.apache.hadoop.hive.shims.HiveEventCounter修改成org.apache.hadoop.log.metrics.EventCounter
#log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
#配置远程登录模式
touch hive-site.xml #新建一个hive-site.xml文件
将以下信息写入到hive-site.xml文件中:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.108(Mysql的ip):3306/hive(数据库名称)?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver(注册驱动)</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root(mysql用户名)</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root(mysql设置的账户密码)</value>
</property>
</configuration>
配置好后,还需要一个mysql连接驱动,将mysql-connector-java-5.1.7-bin.jar拷贝到hive的lib下。
好了,一切就绪。
把hadoop集群启动起来:
start-all.sh