当前位置: 代码网 > it编程>数据库>MsSqlserver > Mac M1安装配置Hadoop+Flink SQL环境

Mac M1安装配置Hadoop+Flink SQL环境

2024年08月01日 MsSqlserver 我要评论
Flink 1.18.1+ Hadoop 3.4.0

flink 1.18.1+ hadoop 3.4.0

一、准备工作

系统:mac m1 (macos sonoma 14.3.1)

jdk:jdk1.8.0_381  (注意:尽量一定要用jdk8,少用高版本)

scala:2.12

jdk安装在本机的/opt/jdk1.8.0_381.jdk/contents/home下,scala安装在/opt/scala-2.12.10下,并在.bash_profile中已配置好环境变量

export java_home=/opt/jdk1.8.0_381.jdk/contents/home
export path=$java_home/bin:$path

export scala_home=/opt/scala-2.12.10
export path=$scala_home/bin:$path

二、安装hadoop

单纯运行flink的话没必要安装hadoop环境,但为了在flink sql中使用hive数仓的话,还是得安装hadoop基础环境。

2.1 下载解压

下载hadoop 3.4.0(截止当前的最新版本)

国内镜像地址:index of /apache/hadoop/common

将下载后的hadoop-3.4.0.tar.gz放到/opt下直接双击进行解压,如下:

2.2 配置hadoop环境变量

打开.bash_profile(mac下可用文本编辑器打开编辑),添加如下变量

export hadoop_home=/opt/hadoop-3.4.0
export path=$path:$hadoop_home/bin:$hadoop_home/sbin
export hadoop_install=$hadoop_home
export hadoop_mapred_home=$hadoop_home
export hadoop_common_home=$hadoop_home
export hadoop_hdfs_home=$hadoop_home
export yarn_home=$hadoop_home
export hadoop_common_lib_native_dir=$hadoop_home/lib/native
export hadoop_opts="-djava.library.path=$hadoop_home/lib/native"

保存使之生效:

source ~/.bash_profile

2.3 配置hadoop配置文件

1. 编辑hadoop-env.sh

打开/opt/hadoop-3.4.0/etc/hadoop/hadoop-env.sh,添加一行:

export java_home=/opt/jdk1.8.0_381.jdk/contents/home

2. 编辑core-site.xml

打开/opt/hadoop-3.4.0/etc/hadoop/core-site.xml,在<configuration>中添加如下配置:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hdfs/tmp/</value>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://127.0.0.1:9000</value>
    </property>
</configuration>

其中/opt/hdfs/tmp为自定义的hdfs路径。

3. 编辑hdfs-site.xml

打开/opt/hadoop-3.4.0/etc/hadoop/hdfs-site.xml,在<configuration>中添加如下配置:

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

4. 编辑mapred-site.xml

打开/opt/hadoop-3.4.0/etc/hadoop/mapred-site.xml,在<configuration>中添加如下配置:

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

5. 编辑yarn-site.xml

打开/opt/hadoop-3.4.0/etc/hadoop/yarn-site.xml,在<configuration>中添加如下配置:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.shufflehandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>127.0.0.1</value>
    </property>
    <property>
        <name>yarn.acl.enable</name>
        <value>0</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>java_home,hadoop_common_home,hadoop_hdfs_home,hadoop_conf_dir,classpath_perpend_distcache,hadoop_yarn_home,hadoop_mapred_home</value>
    </property>
</configuration>

2.4 配置其他工具类jar包(使用flink sql时才需要配置)

下载高版本jline,替换原来的旧版本,例如下载:jline-3.26.2.jar

下载地址:https://mvnrepository.com/artifact/org.jline/jline/3.26.2

将其分别放到:

/opt/hadoop-3.4.0/share/hadoop/hdfs/lib

/opt/hadoop-3.4.0/share/hadoop/yarn/lib

这两个目录下,并将原有的jline-3.9.0.jar删掉。

注意:该配置只为了解决flink sql使用过程中的jar包报错问题,即hadoop自带的jline版本太低,无法适配高版本flink,如果单纯只使用hadoop或是spark的能力,无需进行该配置。

2.5 设置ssh免密登录

在个人目录下输入以下命令:

ssh-keygen -t rsa -p '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/id_rsa.pub

中间问是否覆盖此前的ssh,选择y:

三、启动hadoop

首次启动hadoop之前必须进行namenode格式化(以后不需要):

cd /opt/hadoop-3.4.0/sbin
hdfs namenode -format

输出如下日志信息:

运行start-all.sh直接启动,包含了启动start-dfs.sh和start-yarn.sh。出现如下信息表示启动成功:

在浏览器中输入:http://localhost:9870/

显示如下:

至此,hadoop已正常启动。

注:关闭命令为:stop-all.sh

四、配置flink

当前flink最新版本为1.19.1,但目前的1.19版本仍未支持iceberg runtime,考虑到后续可能会使用iceberg数据湖,因此选择flink 1.18.1。

multi-engine support - apache iceberg

4.1 配置flink环境变量

下载flink 1.18.1

下载地址:downloads | apache flink

将下载好的flink-1.18.1-bin-scala_2.12.tgz放到/opt下,双击进行解压。

配置环境变量,打开.bash_profile,添加如下行:

export path=/opt/flink-1.18.1/bin:$path

使之生效:

source ~/.bash_profile

注意:mac里也可以在~/.zshrc中配置。

4.2 配置flink 其他jar包(和hive/iceberg适配连接)

注意选择适配flink 1.18.1版本的jar包。

下载commons-cli-1.8.0.jar

地址:https://mvnrepository.com/artifact/commons-cli/commons-cli/1.8.0

下载flink-connector-hive_2.12-1.18.1.jar

地址:https://repo1.maven.org/maven2/org/apache/flink/flink-connector-hive_2.12/1.18.1/

下载flink-sql-connector-hive-3.1.3_2.12-1.18.1.jar

地址:https://repo1.maven.org/maven2/org/apache/flink/flink-sql-connector-hive-3.1.3_2.12/1.18.1/

下载hive-exec-3.1.3.jar

地址:https://mvnrepository.com/artifact/org.apache.hive/hive-exec/3.1.3

下载iceberg-flink-runtime-1.18-1.5.2.jar

地址:https://repo1.maven.org/maven2/org/apache/iceberg/iceberg-flink-runtime-1.18/1.5.2/

下载iceberg-hive-runtime-1.5.2.jar

地址:https://repo1.maven.org/maven2/org/apache/iceberg/iceberg-hive-runtime/1.5.2/

以上jar包下载完后放到/opt/flink-1.18.1/lib下。

五、运行flink sql

5.1 启动flink

运行以下命令:

cd /opt/flink-1.18.1
./bin/start-cluster.sh

输出如下信息:

在浏览器中打开:http://localhost:8081/

可以看到如下信息:

注:关闭flink的命令为:

./bin/stop-cluster.sh

5.2 启动flink sql

输入:

./bin/sql-client.sh embedded shell

看到如下信息表示启动成功:

可能会有如下警告信息,可忽略,原因为log4j jar包存在冲突。

查看当前的catalogs:

show catalogs;

注:catalog 是一个元数据存储,它提供了一种集中的方式来管理元数据信息,catalog 存储了 flink 中使用的所有元数据,包括表结构、分区信息、用户定义函数等。对于一个数据表的定位是 catalog名.数据库名.表名。因此首先需要创建一个 catalog,然后在 catalog 中创建数据库,最后在数据库中创建表。

输出:

默认只有1个default_catalog。

创建新的catalog:

create catalog hive_catalog with (
  'type'='iceberg',
  'catalog-type'='hive',
  'uri'='thrift://localhost:9083',
  'clients'='5',
  'property-version'='1',
  'warehouse'='file:///opt/warehouse/iceberg-hive-catalog'
);

注意设置“warehouse”为自己的路径,别的不用改。

查看catalogs:

show catalogs;

输出:

显示新的catalog创建成功了。

若要退出flink sql直接输入:

exit;

六、相关问题

1. hadoop启动yarn时报错。控制台错误信息:

在/opt/hadoop-3.4.0/logs查看相关日志,具体报错信息为:

原因:jdk版本太高,笔者之前装的是jdk 17。

解决方案:换成jdk 8,一切正常。试了网上别的一些解决方案,都不奏效。

2. flink sql执行时报错:

原因:hadoop环境变量配置有误。

解决方案:参考2.2配置hadoop环境变量。

注:无需配置一个名称为hadoop_classpath的变量。

注:网上另有一种方案是将flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar放到flink lib目录下,由于我们是自己单独配置了hadoop环境,因此无需下载该jar包。

地址:https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber/3.1.1.7.2.9.0-173-9.0

3. flink sql启动报错:

原因:jline版本太低。

解决方案:参考2.4配置相关jar包。

4. flink sql执行报错:

原因:缺hive相关jar包,尤其是hive-exec-3.1.3.jar。

解决方案:参考4.2配置相关jar包。

参考:

hadoop 安装教程 (mac m1/m2版)_m1 安装hadoop-csdn博客

https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/connectors/table/hive/overview/

flink集成iceberg小小实战-腾讯云开发者社区-腾讯云

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com