安装hive
安装在hadoop的namenode上,拷贝安装文件到linux中/opt/SoftWare/apache-hive-2.3.2-bin.tar.gz
解压:
tar –zxvf apache-hive-2.3.2-bin.tar.gz
添加到环境变量
vi /etc/profile
编辑
#hive
export HIVE_HOME=/opt/SoftWare/apache-hive-2.3.2-bin
export PATH=$PATH:$HIVE_HOME/bin
保存后使其生效:
source /etc/profile
安装mysql作为hive的Metastore
首先检查mysql是否已安装:
rpm -qa | grep -i mysql
结果:
mysql-libs-5.1.71-1.el6.x86_64
删除已安装的mysql并安装新的:
yum -y remove mysql-libs*
rm -rf /var/lib/mysql*
tar xvf MySQL-5.5.49-1.linux2.6.x86_64.rpm-bundle.tar
rpm -ivh MySQL-server-5.5.49-1.linux2.6.x86_64.rpm --force --nodeps
rpm -ivh MySQL-devel-5.5.49-1.linux2.6.x86_64.rpm --force --nodeps
rpm -ivh MySQL-client-5.5.49-1.linux2.6.x86_64.rpm --force --nodeps
启动mysql
service mysql start
首次安装时,默认密码为空,可以使用如下命令修改root密码
mysqladmin -u root password mypassword
mypassword 为你设定的新密码
登录mysql
mysql -u root –p
rpm包安装的MySQL是不会安装/etc/my.cnf文件的,解决方法,只需要复制/usr/share/mysql目录下的my-huge.cnf 文件到/etc目录,并改名为my.cnf即可
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
mysql默认不可以远程访问,设置远程访问
–GRANT ALL PRIVILEGES ON . TO ‘root’@’%‘WITH GRANT OPTION;
上面这句远程访问不需要密码,如果需要密码使用下面这句
GRANT ALL PRIVILEGES ON . TO ‘root’@’%'IDENTIFIED BY ‘sa’ WITH GRANT OPTION;
使权限生效:
FLUSH PRIVILEGES;
设置etc/my.cnf文件,使binlog_format=mixed
vi etc/my.cnf
将注释掉的binlog_format=mixed这一行前面的注释去掉然后保存,重启mysql即可
service mysql restart
配置hive
在hdfs中新建目录/user/hive/warehouse
hdfs dfs –mkdir /tmp
hdfs dfs –mkdir /user
hdfs dfs –mkdir /user/hive
hdfs dfs –mkdir /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
将mysql的驱动jar包mysql-connector-java-5.1.7-bin.jar拷入hive的lib目录下面
进入hive的conf目录下面复制一下hive-default.xml.template名子命名为:hive-site.xml
cp hive-default.xml.template hive-site.xml
配置代码:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</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>root</value>
<description>Username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>sa</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/opt/SoftWare/apache-hive-2.3.2-bin/tmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/opt/SoftWare/apache-hive-2.3.2-bin/tmp/resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>/opt/SoftWare/apache-hive-2.3.2 -bin/tmp</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/opt/SoftWare/apache-hive-2.3.2-bin/tmp/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
修改:
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
<description>
Enforce metastore schema version consistency.
True: Verify that version information stored in is compatible with one from Hive jars. Also disable automatic
schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
proper metastore schema migration. (Default)
False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
</description>
</property>
使用schematool 初始化metastore的schema:
#schematool -initSchema -dbType mysql
schematool -dbType mysql -initSchema
运行hive
alter database hive character set latin1;
set character_set_client=latin1;