hadoop3.3.6的快速部署,并使用broker将数据从hdfs导入到doris
hadoop部署与配置
1 从官网下载二进制包到本地Ubuntu服务器
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
2. 解压
tar -xf apache-doris-1.2.6-bin-x64.tar.xz
3.配置环境变量
vi /etc/profile
### java环境
export JAVA_HOME=/root/hadoop/jdk1.8.0_321
export PATH=$PATH:$JAVA_HOME/bin
hadoop环境
export HADOOP_HOME=/root/hadoop/hadoop-3.2.2
export HADOOP_CONF_DIR=/usr/hadoop/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CONF_DIR=/root/hadoop/hadoop-3.2.2/etc/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
配置环境生效
source /etc/profile
4 修改hadoop配置文件
在伪分布式中,我们主要是修改Hadoop的两个配置文件:
core-site.xml
hdfs-site.xml
/root/hadoop/hadoop-3.3.6/etc/hadoop 中的core-site.xml
configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.210:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-root/</value>
</property>
</configuration>
其中 192.168.1.210 是你服务器的地址,9000是端口,这个在doris的broker组件从doris读取数据时需要,这个在java类编程读取数据时也需要,可以理解为对外的ip
– hadoop.tmp.dir 默认是 /tmp/hadoop-root/
创建目录 mkdir /tmp/hadoop-root/dfs/name
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
默认的两个目录
dfs.namenode.name.dir
${hadoop.tmp.dir}/dfs/name
dfs.datanode.data.dir
${hadoop.tmp.dir}/dfs/data
所以在设置了core-site.xml中的hadoop.tmp.dir后 就可以了
上面的分片1 ,在单机测试比较适合,生产不可以
否则在执行start-all.sh的时候,会报错,在此记不清具体步骤了 可以在启动时进行查看,
5 启动
首次启动HDFS时,必须对其进行格式化操作。 format 就是初始化工作
/root/hadoop/hadoop-3.3.6/bin/hdfs namenode -format
注意:
1.首次启动之前需要format操作
2.format只能进行一次 后续不再需要
3.如果多次format除了造成数据丢失外,还会导致hdfs集群主从角色之间互不识别,通过删除所有机器hadoop.tmp.dir目录重新forma解决
/root/hadoop/hadoop-3.3.6/sbin/start-all.sh
查看启动日志
如果没有报错 可以执行 jps,看看是否启动正确
6端口
可以通过此命令查看端口 netstat -nlpt |grep java
获取配置
如果想知道已经运行的hadoop的配置项,可以使用命令
./hdfs getconf -confKey
导入数据到doris
doris的建表语句
CREATE TABLE `stock_code` (
`id` INT NOT NULL COMMENT '',
`code` VARCHAR(110) COMMENT '',
`name` VARCHAR(110) COMMENT '',
`type` VARCHAR(110) COMMENT ''
)
DUPLICATE KEY(`id`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
"in_memory" = "false"
);
将csv文件上传到hdfs
/root/hadoop/hadoop-3.3.6/bin/hdfs dfs -mkdir /test/
/root/hadoop/hadoop-3.3.6/bin/hdfs dfs -put stock_code20.csv /test/
在doris中执行导入语句
LOAD LABEL dfcf.stock_code9
(
DATA INFILE("hdfs://192.168.1.210:9000/test/stock_code20.csv")
INTO TABLE `stock_code`
COLUMNS TERMINATED BY ","
FORMAT AS "csv"
(id, code, name, type)
)
WITH BROKER broker1
注意: 通过Navicat导出的数据,id是有引号的,这样导致数据有问题,而且,如果经过wps的转存,中文使用其他软件会变成乱码,这个会导致反复的失败,卡了一天
如果导入失败,可以通过下列命令查看,这个命令是在mysql客户端连接doris执行的
show load order by createtime desc limit 1\G;
因编码等问题导致数据导入失败
最后成功导入数据