【Hive】超详细安装教程(Hadoop平台上的数据仓库)
<超详细安装教程(Hadoop平台上的数据仓库)
环境: Centos7Hadoop-2.10.0MySQL-8.0.20
安装: Hive-2.3.7
零、开始
  Hive简⽽⾔之就是⼀个Hadoop平台上数据仓库的管理软件,这个软件将类SQL语句⽅便的转换成MapReduce操作HDFS(MySQL 中存储元数据(如表结构),所以在master上安装就够了)。
  并使⽤HQL(类SQL语句)作为查询接⼝,使⽤HDFS作为底层存储, 使⽤MapReduce作为执⾏层,即将HQL语句转译成M/R Job 然后在Hadoop执⾏。
  本篇上接。
  所有操作都在Hadoop集master机器下完成。
本⽂所有输出都是在作者虚拟机上的输⼊得到的,输出因⼈⽽异,结果没问题就好。
⼀、下载Hive
如果提⽰不存在该命令,则输⼊yum install -y lrzsz安装lrzsz
上传成功可以输⼊ls查看存在
7、解压到当前⽬录
输⼊:tar -zxvf apache-hive-2.3.
输出:略
8、配置环境变量
输⼊1:vi /etc/profile
输⼊2:在⽂件末尾追加下列代码(按i进⼊编辑模式,⾃⾏替换第⼀⾏路径):
export HIVE_HOME=/root/coding/hive/apache-hive-2.3.7-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin
输⼊3:按Esc进⼊命令模式后按:wq保存退出⽂件
输⼊4(使修改⽣效):source /etc/profile
配置成功后可以输⼊hive --version验证,会输出hive版本信息
⼆、配置Hive
1、开启Hadoop集(输⼊因安装位置不同⽽不同)
输⼊:/root/coding/hadoop/hadoop-2.10.0/sbin/start-all.sh
2、在集上建⽴⽬录,并赋予权限
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod -R 777/user/hive/warehouse
hdfs dfs -mkdir -p /tmp/hive
hdfs dfs -chmod -R 777/tmp/hive
3、在Linux下建⽴tmp⽂件夹
输⼊1:cd /root/coding/hive/apache-hive-2.3.7-bin
输⼊2:mkdir tmp和chmod -R 777 tmp/
4、修改配置⽂件1
输⼊1:cd /root/coding/hive/apache-hive-2.3.7-bin/conf(进⼊⽂件夹)
输⼊2:(copy配置⽂件)
l.l
cp plate hive-env.sh
输⼊3:sed -i 's#\${system:user.name}#root#g; s#\${system:pdir}#/root/coding/hive/apache-
hive-2.3.7-bin/tmp#g' /root/coding/hive/apache-hive-2.3.7-bin/l
1.修改⽤户名,将⽂件中所有${system:user.name}替换为root
2.修改临时⽬录,将⽂件中所有${system:pdir}替换为/root/coding/hive/apache-hive-2.
3.7-bin/tmp
输⼊grep '${system:user.name}' l验证,如果⽆输出,着替换成功java安装完整教程
5、修改配置⽂件2(/root/coding/hive/apache-hive-2.3.7-bin/conf/⽬录下)
(⼤家可以直接到 第6步 对应⾏号就可以了,位置不会差太多,不需要再⼀遍)
输⼊1:grep -n 'astore.uris' l(查元数据服务)
输出1:370: <name&astore.uris</name>(370是我们需要的⾏号)
输⼊2:grep -n ' ConnectionURL' l(查与数据库连接的URL)
输出2:544: <name>javax.jdo.option.ConnectionURL</name>(544是我们需要的⾏号)
输⼊3:grep -n 'ConnectionDriverName' l(查jdbc驱动)
输出3:1019: <name>javax.jdo.option.ConnectionDriverName</name>(1019是我们需要的⾏号)
输⼊4:grep -n 'ConnectionUserName' l(查登录数据库的⽤户)
输出4:1044: <name>javax.jdo.option.ConnectionUserName</name>(1044是我们需要的⾏号)
输⼊5:grep -n 'ConnectionPassword' l(查对应⽤户的密码)
输出5:529: <name>javax.jdo.option.ConnectionPassword</name>(529是我们需要的⾏号)
6、修改配置⽂件3(value值因配置的不同⽽不同,/root/coding/hive/apache-hive-2.3.7-bin/conf/⽬录下)
⽂本输⼊模式:在命令⾏模式下按i(最常⽤)
命令⾏模式:按Esc
末⾏模式:在命令模式下输⼊:加命令
输⼊1(显⽰⾏号编辑):vi -l
输⼊2::370(命令⾏模式,设置元数据服务)
<property>
<name&astore.uris</name>  ##370
<value>thrift://master:9083</value>
</property>
输⼊3::544(命令⾏模式,修改与数据库连接的URL,ip地址改为数据库所在ip,/后跟数据库名,如不存在则会在后⾯初始化hive时进⾏创建)
<property>
<name>javax.jdo.option.ConnectionURL</name>  ##544
<value>jdbc:mysql://192.168.150.100:3306/hive?createDatabaseIfNotExist=true</value>
</property>
输⼊4(命令⾏模式,修改jdbc驱动)::1019
<property>
<name>javax.jdo.option.ConnectionDriverName</name>  ##1019
<value&sql.cj.jdbc.Driver</value>  ##这是mysql8.0的驱动,mysql5的驱动为sql.jdbc.Driver
</property>
输⼊5(命令⾏模式,修改登录数据库的⽤户)::1044
<property>
<name>javax.jdo.option.ConnectionUserName</name>  #1044
<value>root</value>  ##对应⽤户名称
</property>
输⼊6(命令⾏模式,修改对应⽤户的密码)::529
<name>javax.jdo.option.ConnectionPassword</name>  #529
<value>对应⽤户的密码</value>
</property>
7、设置jdbc驱动点击,选择适合⾃⼰的版本下载
下载完毕后在Windows下解压,并在Linux中使⽤rz命令把⾥⾯的mysql-connector-java-8.0.20.jar⽂件上传到/root/coding/hive/apache-hive-2.3.7-bin/lib⽬录下
8、配置hive-env.sh
输⼊1:cd /root/coding/hive/apache-hive-2.3.7-bin/conf
输⼊2:vi hive-env.sh
输⼊3:(⽂件末尾加⼊)
export JAVA_HOME=/root/coding/java/jdk-11.0.6
export HADOOP_HOME=/root/coding/hadoop/hadoop-2.10.0
export HIVE_HOME=/root/coding/hive/apache-hive-2.3.7-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib
9、在HA(⾼可⽤)集上还需要配置如下参数
⽂件路径:/root/coding/hive/apache-hive-2.3.7-bin/l
<name&astore.warehouse.dir</name>
<value>hdfs://user/hive/warehouse</value>
</property>
<property>
<name&scratchdir</name>
<value>hdfs://tmp/hive</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/root/coding/hive/apache-hive-2.3.7-bin/logs</value>
</property>
三、启动Hive
1、初始化Hive(只⼀次)
输⼊1:cd /root/coding/hive/apache-hive-2.3.7-bin/bin
输⼊2:schematool -dbType mysql -initSchema
2、在该⽬录下输⼊hive,输⼊提⽰如下图则启动成功
退出输⼊exit或quit
四、常见错误
1、FAILED: SemanticException org.apache.hadoop.adata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.adata.SessionHiveMetaStoreClient
解决⽅法1:Hive的服务端没有打开
代码:hive --service metastore &(Linux下,输⼊后按ctrl+c退出,回到hive即可)
解决⽅法2:l中的数据库⽤户和密码配置错误,重新检查
解决⽅法3:⽤户权限不⾜(root账户不会出现这种情况)
代码:
格式:
grant all privileges on 'databasename.tablename' to 'user'@'host' identified by 'password';
授予user⽤户全局全部权限:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
(全⽂完)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。