hive-2.3.3安装总结

hive安装总结:
安装的系统是linux centos6.8
1,下载软件,解压
openssh-7.5p1.tar.gz
首先安装ssh,卸载旧的版本
解压后make & make install
安装后设置,/etc/ssh/ssh_config文件设置ForwardAgent yes, 这个设置是为使用ssh-agent(专用密钥高速缓存)和keychain(单点登录)

ssh-keygen -t rsa -P 'hadoop' -f ~/.ssh/id_rsa
ssh-keygen -t dsa -P 'hadoop' -f ~/.ssh/id_dsa
cp ~/.ssh/id_rsa.pub  ~/.ssh/authorized_keys
cp ~/.ssh/id_dsa.pub  ~/.ssh/authorized_keys2
(cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys2)

chmod 0600 ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys2
scp ~/.ssh/authorized_keys userb@slave2:~/.ssh
scp ~/.ssh/authorized_keys2 userb@slave2:~/.ssh

ssh-add   ~/.ssh/id_rsa //添加到ssh-agent高速缓存中
ssh-add   ~/.ssh/id_dsa //添加到ssh-agent高速缓存中

下面这步hadoop中是需要的,尤其是datanode,否则会抛出错误:master1: ssh: connect to host master1 port 22: No route to host
ssh localhost //Permanently added 'localhost' (ECDSA) to the list of known hosts.

启动:sudo service sshd restart

安装hadoop,用的版本是2.7.7,安装过程不叙述了,网上很多
hadoop-2.7.7.tar.gz

升级mysql, 先卸载旧的版本:
下载软件:
mysql-community-client-8.0.12-1.el6.x86_64.rpm
mysql-community-common-8.0.12-1.el6.x86_64.rpm
mysql-community-libs-8.0.12-1.el6.x86_64.rpm
mysql-community-server-8.0.12-1.el6.x86_64.rpm

查看已安装包:
rpm -qa | grep -i mysql
卸载:
rpm -ev --nodeps mysql-libs-5.1.73-7.el6.x86_64
rpm -ev --nodeps perl-DBD-MySQL-4.013-3.el6.x86_64
rpm -ev --nodeps qt-mysql-4.6.2-28.el6_5.x86_64
rpm -ev --nodeps mysql-server-5.1.73-7.el6.x86_64
rpm -ev --nodeps mysql-5.1.73-7.el6.x86_64

安装顺序:
rpm -ivh mysql-community-common-8.0.12-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.12-1.el6.x86_64.rpm  
rpm -ivh mysql-community-client-8.0.12-1.el6.x86_64.rpm  
rpm -ivh mysql-community-server-8.0.12-1.el6.x86_64.rpm 

安装后设置:
创建data目录,作为数据库存储位置:
  mkdir /usr/local/mysql/data
配置my.cnf文件(/etc/my.cnf):
datadir=/usr/local/mysql/data
修改权限 (linux):
  cd /usr/local/mysql
  chown –R mysql .  //把当前目录下的文件及目录的属性改为mysql用户
  chgrp –R mysql .  //把当前目录下的文件所属的组件改为mysql组
初始化:
mysqld --initialize --console
Mysql 安装之后默认的数据文件存储目录为/var/lib/mysql, 日志文件存储目录/var/log/mysqld.log
修改文件夹属性
chmod g+w -R mysql
chmod g+w -R mysql-files
chmod g+w -R mysql-keyring
chown mysql:mysql -R mysql
chown mysql:mysql -R mysql-files
chown mysql:mysql -R mysql-keyring

启动服务:
net start mysql(windows)
sudo service mysqld start(linux)

登录:
mysql -u root -p //这里要输入密码, 系统初始化密码界面有提示,或查看日志
修改root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'westking';

如果用客户端登录报错(SQL Manager for MYSQL):
Authentication plugin 'caching_sha2_password' cannot be loaded
解决:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'westking';

连接字符串:
mysql-connector-java-8.0.12.jar, 这是一个平台无关包,连接字符串中必须包含时区信息
第一种方式,参数比较全:
String url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
Class.forName("com.mysql.cj.jdbc.Driver");//com.mysql.cj.jdbc.Driver 取代com.mysql.jdbc.Driver

mysql-connector-java-8.0.12.tar.gz
安装hive:
下载软件
apache-hive-2.3.3-bin.tar.gz
解压后配置:
$ tar -xzvf hive-x.y.z.tar.gz
设置环境变量 HIVE_HOME 指向安装目录
  $ cd hive-x.y.z
  $ export HIVE_HOME={{pwd}}
设置PATH环境变量:
  $ export PATH=$HIVE_HOME/bin:$PATH
  
首先hadoop配置,修改core-site.xml
   
        hadoop.proxyuser.root.hosts
        *
   

   
        hadoop.proxyuser.root.groups
        *
   

   
        hadoop.proxyuser.userb.hosts//这里的userb代理root,userb是hadoop系统运行登录名(我的系统是这样,其他含义待考证),用于hive的beeline登录
        *
   

   
        hadoop.proxyuser.userb.groups
        *
   

    
    
在hadoop中创建目录,设置权限:
  $ $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
    
其次设置mysql,hive使用的是mysql数据库存储元数据,而不是内置的derby,所以要设置一下,如果使用内置的derby数据库,无需设置:
进入所安装的Hive的conf目录,找到hive-site.xml,(若没修改,则是hive-default.xml.template)。
在hive-site.xml中:  
 
 

  hive.metastore.warehouse.dir 
  /user/hive/warehouse    建立该目录/user/hive/warehouse 并设置写权限
  hive表的默认存储路径,为HDFS的路径location of default database for the warehouse


    javax.jdo.option.ConnectionURL
  
    jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true&useSSL=false
   
   
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
   

 

 

  javax.jdo.option.ConnectionDriverName    驱动程序名
  com.mysql.cj.jdbc.Driver    
 
  Driver class name for a JDBC metastore


  javax.jdo.option.ConnectionUserName    mysql登录名
  XXXXX
  username to use against metastore database


  javax.jdo.option.ConnectionPassword    mysql密码
  XXXXX
  password to use against metastore database


  hive.exec.local.scratchdir
  file:/usr/local/hadoop/hive/iotmp  将${system:java.io.tmpdir}全部替换为file:/usr/local/hadoop/hive
  Local scratch space for Hive jobs


  hive.downloaded.resources.dir
  file:/usr/local/hadoop/hive/${hive.session.id}_resources
  Temporary local directory for added resources in the remote file system.

下载mysql-connector-java-8.0.12.jar,并添加到hive目录下的lib中.
cp mysql-connector-java-8.0.12.jar /home/install/apache-hive-2.3.3-bin/lib/    注意替换/home/install为具体安装目录

设置:
初始化schematool -initSchema -dbType mysql, mysql数据库中会创建一个hive数据库,如果该数据库存在,初始化前手工先删除  

启动测试:
  $ $HIVE_HOME/bin/hiveserver2

  $ $HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000
  
  或者beeline
  !connect jdbc:hive2://localhost:10000
  输入用户名:userb  (hadoop配置--core-site.xml中设置的用户名hadoop.proxyuser.userb.hosts)
  输入密码:xxxxx
  
  输入命令:
  show databases;

你可能感兴趣的:(bigdata)