Hadoop的安装和配置
Hadoop下载
Hadoop环境变量
Hadoop启动和停止
Hive的安装和配置
Hive-3.1.2版本下载地址:apache-hive-3.1.2-bin.tar.gz
下载之后解压并复制到 /opt 目录下
tar -zxvf apache-hive-3.1.2-bin.tar.gz
cp -r apache-hive-3.1.2-bin /opt/hive-3.1.2
sudo chown -R currUser:currUserGroup hive3.1.2
配置hive路径:
export HIVE_HOME=/opt/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bashrc
启动Hive时先启动Hadoop:
cd $HADOOP_HOME/bin
start-all.sh
hive
遇到的问题:
Hive启动报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
因为 HIVE_HOME/lib下的 guava jar 包的版本个HADOOP_HOME/share/hadoop/common/lib下的 guava 包版本不一致导致的,先删除其中一个版本比较低的,然后将另一个目录下的 guava 包复制过去就可以了。
Hive启动报错: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient异常
在 HIVE_HOME/conf 目录下配置 hive-site.xml 文件,去 hive-site.xml 设置Derby数据库的位置:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive-3.1.2/data</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:/opt/hive-3.1.2/metastore_db;databaseName=metastore_db;create=true</value>
</property>
</configuration>
/data 是自己建立的数据仓库目录。
然后删除原来的metadb schema,再重新初始化:
rm -rf $HIVE_HOME/metastore_db
cd $HIVE_HOME
schematool -initSchema -dbType derby
...
Initialization script completed
schemaTool completed
然后再进入hive,执行show databases; 已经可以正常工作了。
select * from employee where name = 'name1' and id = 1;