大四之《hive编程指南》之hive的安装(1)
1:如果单是要练习hive,那么hive的安装时比较简单的,需要把Hadoop的路径配置到当然用户的宿主目录下的.bashrc文件里面。
然后:
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
做这个操作,但是你要是不愿意做也行。你只要把其conf目录下的hive-site.xml.template改名为hive-site.xml就可以了,然后里面有指定这个目录的操作。
hive -e "set" | grep warehouse;就可以看到了
我们光是做这两个操作就可以使用hive做练习了。
2:接着我们了解一个东西:metadata。
那么什么是metadata,metadata是存放我们创建了什么表,对这些这些表有什么样的数据结构的描述等等之类比较重要信息的,然后这个metadata是存放在Hive Metastore里面的。
我们的Hive的Metastore分为三种:
Embedded Metastore:这个是hive默认的,会把表的描述信息存到一个内置的关系型数据库。
一开始我们想进入hive,那么我们就在某个目录下敲入命令hive就可以了,然后我们就可以创建表,但是,等到下次我们又在另外一个目录下敲入hive,进入hive模式,我们就查不到上次创建的那个表,只有我们还是进入跟上一次一样的目录才能查找得到,这显然不是我们想要的结果。因为我们在那个目录下创建表,就会在哪个目录下保存metastore_db这样的文件,我们是通过这个文件,来获取信息的。
Local Metastore:这个是我们用得比较广的,就是用外部的一个数据库来保存我们的 metadata,所以不要被Local这个单词迷惑了。(我们一般选用MySQL数据库)
Remote Metasotre:这个我们用得比较少,是给不同语言用的。
这就引出了我们要怎样安装我们的MySQL?
1.检查是否安装过 rpm -qa |grep mysql
2.删除原来安装的 rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
3.安装服务端 rpm -i MySQL-server-5.5.31-2.el6.i686.rpm
4.安装客户端 rpm -i MySQL-client-5.5.31-2.el6.i686.rpm
5.启动 mysqld_safe &
检测mysql 3306是否安打开,输入以下命令
# netstat -nat |
当出现如下时,表示mysql 3306端口打开 Active Internet connections (servers and established) |
6.修改root用户密码 mysql_secure_installation
7.进入MySQL命令行:mysql -uroot –padmin
8.进入mysql命令行,授权允许远程用户访问 grant all on *.* to ‘root’@’%’ identified by ‘admin’; flush privileges;
3:修改hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.80.100: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</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>admin</value>
</property>
4:.修改hadoop的hadoop-env.sh(否则启动hive汇报找不到类的错误)
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:
$HADOOP_HOME/bin
5:修改$HIVE_HOME/bin的hive-config.sh,增加以下三行
export JAVA_HOME=/usr/local/jdk(jkd,hive,hadoop是人家都重命名了貌似我的没有)
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
(但是这个可以不做,因为我前面已经配置好了)
安装好了以后我们做一个单词记数的例子:
其实这就是一个单词计数的例子
我创建了一个表叫t5
这个文件是这样的
Hello you
Hello me
SELECT st.id, COUNT(1) FROM (select explode(split(id,'\t')) AS id from t5) st GROUP BY st.id;
执行结果
OK
hello 2
me 1
you 1