Hadoop系列之Hive(数据仓库)安装配置1.在NameNode安装 cd /root/soft tar zxvf apache-hive-0.13.1-bin.tar.gz mv apache-hive-0.13.1-bin /usr/local/hadoop/hive2. 配置环境变量(每个节点都需要增加) 打开/etc/profile #添加以下内容: export HIVE_HOME=/usr/local/hadoop/hive export PATH=$HIVE_HOME/bin:$PATH #环境变量生效 source /etc/profile 3.安装mysql数据库环境 请参照http://azhuang.blog.51cto.com/9176790/1551549 数据库安装成功后,一定要建立号权限及创建hive数据库。操作如下 grant all privileges on hive.* to hive@'192.168.3.%' identified by '123'; create database hive character set latin1; #UTF-8编码hive会报错,所以需要修改编码为latin14. 配置Hive cd /usr/local/hadoop/hive/conf/ cp hive-default.xml.template hive-site.xml #vim hive-site.xml(修改<configuration>之间配置)
javax.jdo.option.ConnectionURL jdbc:mysql://192.168.3.10:3306/hive?characterEncoding=latin1 javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName hive javax.jdo.option.ConnectionPassword 123
#以上四项分别是: 数据库连接,数据库驱动名,用户名,密码。5.把mySQL的JDBC驱动包复制到Hive的lib目录下 cp /root/soft/mysql-connector-java-commercial-5.1.30-bin.jar /usr/local/hadoop/hive/lib/6.复制Hive到所有DataNode节点 scp -r /usr/local/hadoop/hive root@192.168.3.11:/usr/local/hadoop/ scp -r /usr/local/hadoop/hive root@192.168.3.12:/usr/local/hadoop/7.简单测试//查看当前数据表hive> show tables;OKTime taken: 1.069 seconds//从本地文件系统中导入数据到Hive表#创建student.txt测试文本,字段之间用tab键分割 [root@hdfs-master soft]# cat /root/soft/student.txt 1 aa 10 1212212 bb 20 09903 cc 30 120120#创建student测试表hive> create table student(id int, name string, age int, tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;OKTime taken: 0.043 seconds#再次查看当前数据表及结构hive> show tables;OKstudenthive> desc student;OKid int name string age int tel string Time taken: 0.103 seconds, Fetched: 4 row(s)#把/root/soft/student.txt本地记录导入到student表hive> load data local inpath '/root/soft/student.txt' into table student;Copying data from file:/root/soft/student.txtCopying file: file:/root/soft/student.txtLoading data to table default.studentTable default.student stats: [numFiles=1, numRows=0, totalSize=43, rawDataSize=0]OKTime taken: 0.376 seconds#查看student表,如果有记录表示本地插入数据成功.hive> select * from student; OK1 aa 10 1212212 bb 20 09903 cc 30 120120Time taken: 0.066 seconds, Fetched: 3 row(s)//HDFS上导入数据到Hive表#上传本地文件到hdfs[root@hdfs-master soft]# hdfs dfs -put /root/soft/student.txt /hive[root@hdfs-master soft]# hdfs dfs -cat /hive/student.txt1 aa 10 1212212 bb 20 09903 cc 30 120120#从hdfs导入到hive数据hive> load data inpath '/hive/student.txt' into table student;Loading data to table default.studentTable default.student stats: [numFiles=2, numRows=0, totalSize=86, rawDataSize=0]OKTime taken: 1.389 secondshive> select * from student; OK1 aa 10 1212212 bb 20 09903 cc 30 1201201 aa 10 1212212 bb 20 09903 cc 30 120120Time taken: 0.049 seconds, Fetched: 6 row(s)