大数据入门

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;