配置Hive环境及安装hadoop-cdh

一、完善目录

1、在HBinz用户下新建目录

software 存放安装软件

data 存放测试数据 

source 存放源代码  

lib 存放相关开发的jar

app 软件安装目录

tmp 存放HDFS/Kafka/ZK数据目录

maven_repo maven本地仓库

shell 存放上课相关的脚本

mkdir software data source lib app tmp maven_repo shell

配置Hive环境及安装hadoop-cdh

2、上传tar.gz文件到software文件夹里

rz

配置Hive环境及安装hadoop-cdh

3、解压

tar -xzvf hadoop-2.6.0-cdh5.7.0.tar.gz ~/app

...

二、安装HadoopCDH版本

参照lesson08编译、安装CDH版本的Hadoop

其中修改了MAVEN仓库的默认本地库地址:/home/HBinz/maven_repo/.m2/repository

<localRepository>/home/HBinz/maven_repo/.m2/repository</localRepository>

修改目录下/home/HBinz/app/apache-maven-3.3.9/conf/setting.xml文件

配置Hive环境及安装hadoop-cdh

其中出现了几个问题,由于当时没有思路,因此没有选择编译,而是选择了安装。问题如下:

1、无论是root下编译还是HBinz用户下编译,都很快就报错了

配置Hive环境及安装hadoop-cdh

据说是因为jdk版本的问题,1.7的话直接可以编译。我的1.8,所以报错了。

可以通过修改hadoop-annotations下的jdk版本指向1.8就行了

2、因此后面我选择了直接安装CDH(编译是为了方便修改源码,二次开发)

3、解压Hadoop

4、配置HADOOP_HOME环境变量

5、配置core-site.xml

6、配置hdfs-site.xml

7、将mapred-site.xml.template改为mapred-site.xml

8、修改配置hadoop-env.sh

export JAVA_HOME=/opt/app/jdk1.8.0_45

9、配置ssh无密

10、格式化hdfs

hdfs namenado -format

天怒人怨的是,启动hdfs的时候报错了:INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决思路:

(1)增加调试信息

在/etc/hadoop/hadoop-env.sh文件中增加

$ export HADOOP_ROOT_LOGGER=DEBUG,console

(2)打印出来发现是:在读取本地lib文件的时候没有成功读取

(3)马上hadoop checknative -a 查看,发现全部本地库都没有

(4)在http://dl.bintray.com/sequenceiq/sequenceiq-bin/ 下载网址下找到hadoop对应版本的natice 文件下载:hadoop-native-64-2.6.0.tar

(5)解压natice文件

tar -xvf hadoop-native-64-2.7.0.tar -C hadoop-2.7.2/lib/native

tar -xvf hadoop-native-64-2.7.0.tar -C hadoop-2.7.2/lib

(6)配置环境变量

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

source /etc/profile

(7)然后这次没有报错,但是jps起来显示没有进程,我马上输入

hdfs dfs -ls

然后报错:Call From java.net.UnknownHostException: hadoop002: hadoop002: unknown error to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused;

这里应该是说未知的主机异常,主机名和ip地址未知,无法连接。

(8)赶紧配置主机名与ip地址映射

vi /etc/sysconfig/network

添加以下代码:

192.168.137.131 hadoop002

配置Hive环境及安装hadoop-cdh

(9)上传文件

配置Hive环境及安装hadoop-cdh

三、配置Hive环境

1、下载Hive

http://archive.cloudera.com/cdh5/cdh/5/

2、解压到/app目录

 tar -xzvf hive-1.1.0-cdh5.7.0.tar.gz -C ~/opt/app/

3、配置环境变量

vi /etc/profile

配置Hive环境及安装hadoop-cdh

4、拷贝驱动到lib目录下

cp mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz /opt/app/hive-1.1.0-cdh5.7.0/lib/

5、修改conf配置文件

cp hive-env.sh.template hive-env.sh

配置Hive环境及安装hadoop-cdh

修改/etc/sudoers文件

chmod u+w /etc/sudoers

vi /etc/sudoers

配置Hive环境及安装hadoop-cdh

sudo cp hive-env.sh.template hive-env.sh

修改hive-env.sh文件

配置Hive环境及安装hadoop-cdh

6、新增hive-site.xml


<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

        <property>

                <name>javax.jdo.option.ConnectionURL</name>

                <value>jdbc:mysql://localhost:3306/ruozedata_basic03?createDatabaseIfNotExist=true</value>

        </property>

        <property>

                <name>javax.jdo.option.ConnectionDriverName</name>

                <value>com.mysql.jdbc.Driver</value>

        </property>

        <property>

                <name>javax.jdo.option.ConnectionUserName</name>

                <value>root</value>

        </property>

        <property>

                <name>javax.jdo.option.ConnectionPassword</name>

                <value>123456</value>

        </property>

</configuration>


上述四个配置语句对应下图的Hadoop集群的生产环境

配置Hive环境及安装hadoop-cdh

7、启动MySql和Hadoop

8、/opt/app/hive-1.1.0-cdh5.7.0/scripts/metastore/upgrade/mysql可以查看更新的sql语句

配置Hive环境及安装hadoop-cdh

四、启动Hive

/opt/app/hive-1.1.0-cdh5.7.0/bin

hive

配置Hive环境及安装hadoop-cdh

启动成功

注意:

1、如果没有驱动文件,会报

Caused by: org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.

配置Hive环境及安装hadoop-cdh

2、如果hive-site.xml文件中

配置Hive环境及安装hadoop-cdh

UserName和Password错误也会报错

aused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

配置Hive环境及安装hadoop-cdh

五、Hive表创建

1、进入mysql数据库

配置Hive环境及安装hadoop-cdh

可以看到Hive创建数据库成功。

2、查看hbinz001里面的表

配置Hive环境及安装hadoop-cdh

3、Hive创建表

配置Hive环境及安装hadoop-cdh

4、查看hive日志

配置Hive环境及安装hadoop-cdh