安装Hive(独立模式 使用MySQL连接) 1 .默认安装了java+hadoop 2 .下载对应hadoop版本的安装包 3 .解压安装包 tar zxvf apache-hive- 1.2 . 1 -bin.tar.gz 4 .安装mysql yum -y install mysql-server mysql mysqldev //需要以root身份运行 另外可能需要配置yum源 mysql常用命令: service mysqld start/stop chkconfig mysqld on //加入开机启动 以系统root用户操作 5 .授权mysql(以系统hadoop身份 数据库root身份进行操作) mysqladmin -u root passWord "root" //修改root密码为root mysql -uroot -p密码 (初始密码为空) create user 'hive' identified by 'hive' ; //创建用于连接的hive用户 密码为hive grant all PRivileges on *.* to 'hive' @ '%' identified by "hive" with grant option; flush privileges; //刷新权限 grant all privileges on *.* to 'hive' @ 'localhost' identified by "hive" with grant option; flush privileges; //刷新权限 grant all privileges on *.* to 'hive' @ 'hadoop.master' identified by "hive" with grant option; flush privileges; //刷新权限 set global binlog_format= 'MIXED' ; //设置格式 必须执行。不然报错 exit; service mysqld restart //重启服务 6 .测试连接 mysql -hhadoop.master -uhive -phive //能进去则表示设置成功 create database hive; //创建连接数据库hive alter database hive character set latin1; 7 .配置环境变量(/etc/profile) #hive export HIVE_HOME=/opt/hive- 1.2 . 1 export HIVE_AUX_JARS_PATH=/opt/hive- 1.2 . 1 /lib export HIVE_CONF_DIR=/opt/hive- 1.2 . 1 /conf export PATH=$PATH:$HIVE_HOME/bin export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib 保存退出 source /etc/profile 8 .修改配置文件 1 .根据模版复制配置文件 cp hive- default .xml.template hive-site.xml cp hive-env.sh.template hive-env.sh cp hive-log4j.properties.template hive-log4j.properties 2 .修改配置文件 ####hive-site.xml#### //添加项目 --0.11 版本以后可不用添加此项 <property> <name>hive.metastore.local</name> <value> false </value> </property> //修改项目 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql: //hadoop.master:3306/hive</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> <description>password to use against metastore database</description> </property> <property> <name>hive.exec.local.scratchdir</name> <value>/opt/hive- 1.2 . 1 /tmp</value> //需要创建此目录 <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/opt/hive- 1.2 . 1 /tmp</value> <description>Temporary local directory for added resources in the remote file system.</description> </property> <property> <name>hive.hwi.war.file</name> <value>/opt/hive- 1.2 . 1 /lib/hive-hwi- 1.2 . 1 .jar</value> <description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description> </property> ####hive-env.sh#### HADOOP_HOME=/opt/hadoop- 2.5 . 2 ####hive-log4j.properties#### hive.log.threshold=ALL hive.root.logger=INFO,DRFA hive.log.dir=/opt/hive- 1.2 . 1 /logs //需创建相应目录 hive.log.file=hive.log 9 .其他配置项 1 .hdfs上创建相应文件夹并修改权限 hadoop fs -mkdir -p /tmp/hive hadoop fs -chmod 777 /tmp/hive hadoop fs -mkdir -p /user/hive hadoop fs -chmod 777 /user/hive 2 .修改hadoop hadoop-env.sh配置文件 export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$CLASSPATH 3 .将mysql jdbc jar包拷贝到lib目录下 cp mysql-connector-java- 5.1 . 21 .jar /opt/hive- 1.2 . 1 /lib 4 .将lib目录下的jline- 2.12 .jar 拷贝到/opt/hadoop- 2.5 . 2 /share/hadoop/yarn/lib下,并将相应包重属名 cp /opt/hive- 1.2 . 1 /lib/jline- 2.12 .jar /opt/hadoop- 2.5 . 2 /share/hadoop/yarn/lib mv /opt/hadoop- 2.5 . 2 /share/hadoop/yarn/lib/jline- 0.9 . 94 .jar /opt/hadoop- 2.5 . 2 /share/hadoop/yarn/lib/jline- 0.9 . 94 .jar.bak 9 .使用验证 hive --service metastore & //开机首次执行 hive -e "show databases;" //运行完不报错即安装成功 也可以使用hive命令行进去执行 10 .常用命令 1 .显示 show tables; show databases; 2 .定义 //添加外部分区表 推荐以后就是用这种表 create external table access_info(ip string,access_date string,url string) partitioned by(logdate string) row format delimited fields terminated by '/t' desc access_info; 3 .添加数据 alter table access_info add partition(logdate= '2016-01-15' ) location '/access' ; --加载文件hdfs实际路径 access为文件夹名称 load data local inpath '/home/hadoop/huangzhijian/access.txt' into table access_info_local_file; --加载本地文件 3 .查询 select * from access_info; 4 .删除 drop table access_info; //外部表不会删除原本数据 内部表就会删除原数据 //注意不能update 5 .其他 1 .hive –f test.sql ####test.sql#### select * from t1; select count(*) from t1; 2 .hive -e 'hql语句' 3 .hive -S -e 'select * from t1' (用法与第一种方式的静音模式一样,不会显示mapreduce的操作过程) 4 .hive -e 'select * from t1' > test.txt (将结果输出到本地文件中) |
新闻热点
疑难解答