注册
hadoop+hive适配达梦
技术分享/ 文章详情 /

hadoop+hive适配达梦

烤橘 2024/11/29 352 0 0

hadoop + apache hive 适配达梦部署配置

2、下载

Hadoop下载:
https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/
Hive下载:
https://archive.apache.org/dist/hive/hive-3.1.2/

3、hadoop单机部署配置

3.1 免密登录设置(必须,否则启动hadoop会失败)

步骤1:设置IP映射,即vi /etc/hosts ,添加: IP  bigdataflowing

步骤2:ssh-keygen -t rsa -P ""

步骤3:cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

步骤4:验证,即ssh bigdataflowing

image.png
image.png
image.png
image.png

3.2 JDK安装

步骤1:先卸载系统自带的 java

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

步骤2:安装下载好的jdk,我是计划用服务器上达梦数据库自带的jdk

image.png

步骤3:修改环境变量

vi  /etc/profile
export  JAVA_HOME=/dm8/dmdbms_62/jdk
export PATH=$PATH:$JAVA_HOME/bin

步骤4:环境变量生效

source  /etc/profile

步骤5:验证

java  -version

image.png

3.3 hadoop解压

将上传到服务器的hadoop解压安装

cd  /dm8/soft/
tar -zxvf  hadoop-3.3.6.tar.gz
mv  hadoop-3.3.6   hadoop

image.png

3.4 hadoop环境变量配置

步骤1:增加环境变量

vi /etc/profile

###在最下面加入这三句,hadoop 的位置

export HADOOP_HOME=/dm8/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

步骤2:让环境变量生效

source /etc/profile

步骤3:验证

hadoop version

image.png

3.5 配置

虽然安装成功,但是我们要使用的是单机伪集群,还需要进行一些配置。hadoop 的目录有如下的文件夹:
image.png

bin 目录:Hadoop 主服务脚本
etc 目录:Hadoop 的配置文件目录
lib 目录:存放 Hadoop 的本地库
sbin 目录:存放启动或停止 Hadoop 相关服务的脚本

3.5.1 修改hadoop-env.sh

vi  /dm8/soft/etc/hadoop/hadoop-env.sh 

###文件最后添加以下内容:
export JAVA_HOME=/dm8/dmdbms_62/jdk
export HADOOP_HOME=/dm8/soft/hadoop

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

3.5.2 修改core-site.xml

在 configuration 标签中,添加如下内容:

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdataflowing:9090</value>
    </property>

    <!-- 指定 hadoop 数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop3.3.6/hdfs/tmp</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

image.png

3.5.3 修改 hdfs-site.xml

在 configuration 标签中,添加如下内容:

<property>
        <name>dfs.replication</name>      
        <value>1</value>
    </property>  

    <property>
        <name>dfs.namenode.name.dir</name>  
        <value>/opt/hadoop3.3.6/hdfs/name</value>  
        <final>true</final>
    </property>  

    <property>
        <name>dfs.datanode.data.dir</name>  
        <value>/opt/hadoop3.3.6/hdfs/data</value>  
        <final>true</final>
    </property>  

    <property>
        <name>dfs.http.address</name>
        <value>0.0.0.0:50070</value>
    </property>

    <property>
        <name>dfs.permissions</name>  
        <value>false</value>
    </property>

image.png

3.5.4 修改 mapre-site.xml

在 configuration 标签中,添加如下内容:

<property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
 </property>

image.png

3.5.5 修改 yarn-site.xml

在 configuration 标签中,添加如下内容

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

image.png

3.6 启动

3.6.1 格式化 HDFS

即对 hdfs 做最基本的配置:

hdfs namenode -format

image.png
即如此表示格式化完成。

3.6.2 启动

步骤1:进入 sbin 目录: cd dm8/soft/hadoop/sbin/
步骤2:选择启动全部:./start-all.sh

image.png
image.png

3.6.3 验证是否启动成功

(1)方式1:命令行方式

命令方式正常不会有报错,同时使用 jps 命令查看,会有 Datanode,ResourceManager,SecondaryNameNode,NameNode,NodeManager 五个进程
image.png

(2)方式2:访问 Hadoop 管理页面
http://IP:50070/
image.png
http://IP:8088/
image.png

到此hadoop单机部署则完成。

4、apache hive部署配置

4.1 解压

cd  /dm8/soft/
tar -zxvf  apache-hive-3.1.2.bin.tar.gz
mv  apache-hive-3.1.2  hive

4.2 配置hive环境变量

步骤1:添加配置内容

vi /etc/profile
export HIVE_HOME=/dm8/soft/hive
export PATH=$PATH:$HIVE_HOME/bin

步骤2:生效

source /etc/profile

4.3 元数据库准备(部署&初始化达梦数据库)

4.3.1 安装数据库软件(按照数据库安装包提供的安装手册部署即可)

4.3.2 初始化数据库

./dminit   path=/dm8/soft  db_name=HIVE_DMDB   port_num=9088  page_size=32 extent_size=32 charset=1

4.3.3 前台启动数据库

./dmserver  /dm8/soft/HIVE_DMDB/dm.ini

出现SYSTEM IS READY表示启动成功,exit掉

4.3.4 后台启动数据库

nohup  ./dmserver  /dm8/soft/HIVE_DMDB/dm.ini  &

!!!临时行为,正式环境请按规范操作!!!

4.3.5 准备数据

--创建表空间
create tablespace "HIVE" datafile '/dm8/soft/HIVE_DMDB/HIVE01.DBF' size 128 autoextend on next 200 maxsize 5120 CACHE = NORMAL;

--创建用户
CREATE USER HIVE IDENTIFIED BY "DAMENG@123" DEFAULT TABLESPACE HIVE;
GRANT RESOURCE TO HIVE;
GRANT DBA TO HIVE;

4.3.6 配置hive-site.xml

在hive的配置目录下新建该文件
cd /dm8/soft/hive/conf
vi hive-site.xml
配置如下内容,注意keyWords=(COMMENT,comment)是必加内容,问题处理章节展开说原因。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 配置JDO(Java Data Objects)选项,指定Hive元数据存储的数据库连接URL -->
	<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:dm://192.168.254.213:9087?keyWords=(COMMENT,comment)</value>
    </property>


    <!-- 指定用于连接数据库的JDBC驱动类名 -->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
    <value>dm.jdbc.driver.DmDriver</value>
    </property>
	
    <!-- 数据库连接用户名 -->

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>DAMENG@123</value>
    </property>


    <!-- 数据库连接密码 -->

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>DAMENG@123</value>
    </property>
	
	
    <!-- 指定Hive元数据仓库目录的位置 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive_local/warehouse</value>
    </property>
	

</configuration>

4.4 初始化元数据库

注意:初始化时db_type指定oracle

schematool -initSchema -dbType  oracle

schematool 初始化工具在hive的bin下,如果环境变量没生效则可以跳进去执行

image.png
image.png

4.5 启动hive进行数据操作且成功

image.png

至此,hadoop单机+apache hive+达梦部署完成。

Hadoop单机用于调试和验证问题,一般正式环境是hadoop分布式。

5、问题处理

(1)问题描述:

在初始化好元数据库后,进入hive创建表时报错”FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Add request failed : INSERT INTO COLUMNS_V2 (CD_ID,COMMENT,“COLUMN_NAME”,TYPE_NAME,INTEGER_IDX) VALUES (?,?,?,?,?) )”,即:
image.png

(2)解决

在HIVE的hive-site.xml配置文件中ConnectionURL配置项处添加关键字keyWords=(COMMENT,comment),即:
image.png

(3)报错原因

HIVE中系统表COLUMNS_V2中字段名COMMENT和达梦数据库保留字COMMENTt冲突了,在达梦数据库中COMMENT表示注释。所以通过keywords关键字来声明区分,即keywords表示用户关键字,列表中配置的字符串,如果以单词的形式出现在sql语句中,则这个单词会被加上双引号。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服