Hadoop下载:
https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/
Hive下载:
https://archive.apache.org/dist/hive/hive-3.1.2/
步骤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
步骤1:先卸载系统自带的 java
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
步骤2:安装下载好的jdk,我是计划用服务器上达梦数据库自带的jdk
步骤3:修改环境变量
vi /etc/profile
export JAVA_HOME=/dm8/dmdbms_62/jdk
export PATH=$PATH:$JAVA_HOME/bin
步骤4:环境变量生效
source /etc/profile
步骤5:验证
java -version
将上传到服务器的hadoop解压安装
cd /dm8/soft/
tar -zxvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 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
虽然安装成功,但是我们要使用的是单机伪集群,还需要进行一些配置。hadoop 的目录有如下的文件夹:
bin 目录:Hadoop 主服务脚本
etc 目录:Hadoop 的配置文件目录
lib 目录:存放 Hadoop 的本地库
sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
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
在 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>
在 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>
在 configuration 标签中,添加如下内容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
在 configuration 标签中,添加如下内容
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
即对 hdfs 做最基本的配置:
hdfs namenode -format
即如此表示格式化完成。
步骤1:进入 sbin 目录: cd dm8/soft/hadoop/sbin/
步骤2:选择启动全部:./start-all.sh
(1)方式1:命令行方式
命令方式正常不会有报错,同时使用 jps 命令查看,会有 Datanode,ResourceManager,SecondaryNameNode,NameNode,NodeManager 五个进程
(2)方式2:访问 Hadoop 管理页面
http://IP:50070/
http://IP:8088/
到此hadoop单机部署则完成。
cd /dm8/soft/
tar -zxvf apache-hive-3.1.2.bin.tar.gz
mv apache-hive-3.1.2 hive
步骤1:添加配置内容
vi /etc/profile
export HIVE_HOME=/dm8/soft/hive
export PATH=$PATH:$HIVE_HOME/bin
步骤2:生效
source /etc/profile
./dminit path=/dm8/soft db_name=HIVE_DMDB port_num=9088 page_size=32 extent_size=32 charset=1
./dmserver /dm8/soft/HIVE_DMDB/dm.ini
出现SYSTEM IS READY表示启动成功,exit掉
nohup ./dmserver /dm8/soft/HIVE_DMDB/dm.ini &
!!!临时行为,正式环境请按规范操作!!!
--创建表空间
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;
在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>
注意:初始化时db_type指定oracle
schematool -initSchema -dbType oracle
schematool 初始化工具在hive的bin下,如果环境变量没生效则可以跳进去执行
至此,hadoop单机+apache hive+达梦部署完成。
Hadoop单机用于调试和验证问题,一般正式环境是hadoop分布式。
在初始化好元数据库后,进入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 (?,?,?,?,?) )”,即:
在HIVE的hive-site.xml配置文件中ConnectionURL配置项处添加关键字keyWords=(COMMENT,comment),即:
HIVE中系统表COLUMNS_V2中字段名COMMENT和达梦数据库保留字COMMENTt冲突了,在达梦数据库中COMMENT表示注释。所以通过keywords关键字来声明区分,即keywords表示用户关键字,列表中配置的字符串,如果以单词的形式出现在sql语句中,则这个单词会被加上双引号。
文章
阅读量
获赞