当前位置:   article > 正文

基于Hadoop生态的相关框架与组件的搭建

基于Hadoop生态的相关框架与组件的搭建

目录

一、前言

安装包

二、linux配置

1、配置网络参数

2、永久关闭防火墙

3、添加IP地址配置映射表

4、SSH免密登录设置

5、配置时间同步

三、准备工作

四、jdk安装

五、Zookeeper集群部署

1、Zookeeper集群启动脚本编写

 六、Hadoop高可用集群部署

1、安装配置

 2、修改配置文件

(1) 修改 hadoop-env.sh 文件

(2)修改 core-site.xml 文件

(3) 修改 hdfs-site.xml 文件

(4) 修改 mapred-site.xml 文件

(5) 修改 yarn-site.xml 文件

(6)修改 slaves 文件

(7)分发节点

3、启用Hadoop高可用集群

七、Spark高可用集群部署

1、安装部署

2、配置文件

(1) 配置spark-env.sh

(2) 配置Workers文件

(3)配置spark-defaults.conf文件

注意事项

3、分发文件

4、启动Spark HA集群

脚本编写

5、Scala安装

八、Hbase高可用集群部署

1、安装配置

2、文件配置

(1)修改hbase-site.xml文件

(2)修改hbase-env.sh文件

(3) 修改regionservers文件

(4)配置备用HMaster

(5)复制hadoop配置文件

(6) 修改hbase-env.sh文件

3、分发文件

4、启动集群

5、Phoenix安装

九、Kafa集群部署

1、安装配置

2、修改配置文件

(1)修改server.properties配置文件

3、分发节点

4、启动集群

十、Hive数据仓库部署

1、安装配置

2、Mysql安装和配置

3、修改配置文件

(1)修改hive-env.sh文件

(2)修改hive-site.xml文件

(3)初始化数据仓库hive

注意事项

4、分发文件

5、设置 hadoop 的代理用户,以便 root 用户能够远程登录访问Hive

6、Hive启动

十一、Sqoop数据转移工具部署

1、安装配置

2、修改文件配置

(1)修改sqoop-env.sh文件

3、分发文件

十二、Flume日志采集系统部署

1、安装配置

2、文件配置

3、分发文件

十三、Azkban工作流管理器部署

1、解压安装

2、数据库配置

3、Azkaban Web 服务配置

(1)SSL创建

(2)Azkaban Web 服务器配置        

(3)配置azkaban.properties

(4)配置azkaban-users.xml

(5)配置log4j.properties

4、azkaban-exec-server配置

5、Azkzban启动测试


一、前言

        本篇文章,着重与Hadoop生态的相关框架与组件的搭建,以及不同框架或组件之间的依赖配置,使读者能够熟悉与掌握Hadoop集群的搭建,对于Hadoop生态有一定的认识。本次搭建三台虚拟机为hadoop01.bgd01、hadoop02.bgd01、hadoop03.bgd01,hadoop01.bgd01为主节点,其中所需的素材,笔者已放入网盘中,有需要的的可自行下载。

        关于虚拟机的搭建,可参考笔者之前的系列文章,这里只对虚拟机的一些配置进行描述。

https://blog.csdn.net/weixin_63507910/article/details/128495937https://blog.csdn.net/weixin_63507910/article/details/128495937

安装包

http://链接: https://pan.baidu.com/s/1WBv0FRS8p8baMmEDf8e6UA?pwd=kk3a 提取码: kk3a

二、linux配置

1、配置网络参数

  1. 分别在三台虚拟机上修改配置
  2. 根据实际情况,修改文件的最后6行参数值即可。
  3. vi /etc/sysconfig/network-scripts/ifcfg-ens33
  4. NAME=ens33
  5. UUID=f8e4ef31-ed55-4b0a-af1e-90cba2287b72
  6. DEVICE=ens33
  7. ONBOOT=yes #是否开机启用
  8. HWADDR=00:0C:29:B4:C8:38
  9. BOOTPROTO=static #使用静态IP地址
  10. IPADDR=192.168.8.121 #IP地址
  11. PREFIX=24 #子网掩码:255.255.255.0
  12. GATEWAY=192.168.8.1 #网关
  13. DNS1=172.16.1.2 #域名服务器1
  14. DNS2=8.8.8.8 #域名服务器2
  15. 执行如下命令,重启网络服务:
  16. systemctl restart network

2、永久关闭防火墙

  1. 执行如下命令关闭防火墙:
  2. systemctl stop firewalld
  3. 执行如下命令关闭防火墙开机启动:
  4. systemctl disable firewalld
  5. 执行命令成功后,会出现如下2行信息。
  6. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  7. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

3、添加IP地址配置映射表

  1. 在第一台虚拟机上打开终端,执行如下命令,编辑文件:
  2. vi /etc/hosts
  3. 在文件尾部追加3行,文件内容如下:
  4. 127.0.0.1 localhost localhost.hugs localhost4 localhost4.localdomain4
  5. ::1 localhost localhost.hugs localhost6 localhost6.localdomain6
  6. #三台虚拟的IP地址加主机名,按照下面格式
  7. 192.168.8.121 hadoop01.bgd01
  8. 192.168.8.122 hadoop02.bgd01
  9. 192.168.8.123 hadoop03.bgd01

4、SSH免密登录设置

  1. (1) 利用ssh-keygen生成密钥对。
  2. 在hadoop01.bgd01上,进入root用户主目录 /root,执行如下命令,生成 .ssh 目录和密匙对及免密登录授权文件:
  3. 执行如下命令,生成密匙对:
  4. ssh-keygen -t rsa
  5. 下面是生成密匙对的过程:
  6. Generating public/private rsa key pair. #提示生成 公/私 密匙对
  7. Enter file in which to save the key (/root/.ssh/id_rsa): #提示保存私匙的目录路径及文件名,按回车
  8. Created directory '/root/.ssh'. #在“/root”下创建了“.ssh”目录
  9. Enter passphrase (empty for no passphrase): #提示输入密码短语,如果不需要,按回车
  10. Enter same passphrase again: #提示再次输入相同密码短语,如果不需要,按回车
  11. Your identification has been saved in /root/.ssh/id_rsa. #生成了密匙文件id_rsa
  12. Your public key has been saved in /root/.ssh/id_rsa.pub. #生成了公匙文件id_rsa.pub
  13. 分别在hadoop02.bgd01、在hadoop03.bgd01上,执行相同的操作,生成密匙对。
  14. (2) 将公钥合并到hadoop01.bgd01上的authorized_keys文件中。
  15. 分别在hadoop01.bgd01、hadoop02.bgd01、hadoop03.bgd01上执行如下命令:
  16. ssh-copy-id hadoop01.bgd01
  17. 出现如下提示时,按#提示操作:
  18. Are you sure you want to continue connecting (yes/no)? #输入"yes"
  19. root@hadoop01.hugs's password: #输入hadoop01.hugs的root账号密码
  20. 这样就完成了对公匙的合并。hadoop01.bgd01的“/root/.ssh”目录下会产生公匙授权文件 authorized_keys。其实该步操作是将三台主机上id_rsa.pub中的内容合并添加到authorized_keys中。
  21. (3) 实现hadoop01、hadoop02、hadoop03之间的相互免密码登录。
  22. 在hadoop01上执行如下命令,将hadoop01上的公匙授权文件 authorized_keys 同步分发给hadoop02到hadoop03 :
  23. scp /root/.ssh/authorized_keys hadoop02.bgd01:/root/.ssh/
  24. 执行该命令时,会提示输入hadoop02.hugs的root登录密码,输入相应密码即可。
  25. scp /root/.ssh/authorized_keys hadoop03.bgd01:/root/.ssh/
  26. 执行该命令时,会提示输入hadoop03.hugs的root登录密码,输入相应密码即可。
  27. 以后三台主机之间,相互登录其它主机就不需要输入密码了。登录命令如下:
  28. ssh 主机名称
  29. (4) 使用ssh命令,测试免密登录。
  30. 在任意一台主机上执行命令:
  31. ssh localhost
  32. 发现不需要输入密码就登录到本地主机了。
  33. 此时因为我们使用的就是root账户,目标登陆账户也是root,所以登陆之后用户没有变化,会造成没有反应的感觉。
  34. 然后,输入命令exit退出刚才的SSH,就回到了原先的终端窗口。
  35. 将上述命令中的localhost换成hadoop01.bgd01、hadoop02.bgd01或hadoop03.bgd01,无需输入密码就可以免密登录相应主机了。

5、配置时间同步

  1. 安装Chrony
  2. 在三台主机上在线安装时间同步Chrony
  3. yum install chrony -y
  4. 启动Chrony服务
  5. 在三台虚拟机上启动时间同步工具Chrony服务
  6. systemctl start chronyd
  7. 启动报错
  8. 可能是下载的版本是最新版,与Linux内核起冲突
  9. 可以尝试以下指令
  10. yum -y update
  11. 配置Chrony信息
  12. vi /etc/chrony.conf
  13. 在主节点,hadoop01.bgd01配置如下
  14. #不使用网络服务器作为时间同步源
  15. #server 0.centos.pool.ntp.org iburst
  16. #server 1.centos.pool.ntp.org iburst
  17. #server 2.centos.pool.ntp.org iburst
  18. #server 3.centos.pool.ntp.org iburst
  19. #添加时间同步器,将主节点的虚拟机作为时间服务同步时间
  20. #这里填写自己虚拟机的主机名或IP地址
  21. server hadoop01.bgd01 iburst
  22. # Allow NTP client access from local network.
  23. #允许192.168.8.0网段的客户端可以与时间服务器同步时间
  24. allow 192.168.8.0/16
  25. # Serve time even if not synchronized to a time source.
  26. #即使时间服务器不能获取网络时间,也会将本地时间做为标准时间赋予其他客户端
  27. local stratum 10
  28. 在另外两台虚拟机hadoop02.bgd01、hadoop03.bgd01配置如下
  29. #不使用网络服务器作为时间同步源
  30. #server 0.centos.pool.ntp.org iburst
  31. #server 1.centos.pool.ntp.org iburst
  32. #server 2.centos.pool.ntp.org iburst
  33. #server 3.centos.pool.ntp.org iburst
  34. #添加时间同步器,将主节点的虚拟机作为时间服务同步时间
  35. server hadoop01.bgd01 iburst
  36. 重启Chrony服务
  37. 分别在三台虚拟机重启Chrony服务,使配置生效
  38. systemctl restart chronyd
  39. 查看时间同步源状态
  40. chronyc sources -v
  41. 210 Number of sources = 1
  42. .-- Source mode '^' = server, '=' = peer, '#' = local clock.
  43. / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
  44. | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
  45. || .- xxxx [ yyyy ] +/- zzzz
  46. || Reachability register (octal) -. | xxxx = adjusted offset,
  47. || Log2(Polling interval) --. | | yyyy = measured offset,
  48. || \ | | zzzz = estimated error.
  49. || | | \
  50. MS Name/IP address Stratum Poll Reach LastRx Last sample
  51. ===============================================================================
  52. ^* hadoop01.bgd01 11 7 377 227 +30us[ +40us] +/- 8251us

三、准备工作

  1. 在根目录“/”下创建3个目录
  2. /export/data/ :存放数据类文件
  3. /export/servers/ :存放服务类文件
  4. /export/software/ :存放安装包文件
  5. 将所有压缩包上传到/export/software/目录下
  6. 预备工作-在主机hadoop01.bgd01上安装上传文件工具rz软件
  7. yum install lrzsz -y
  8. rz

四、jdk安装

  1. 用tar命令将jdk安装到 /export/servers/ 目录下。
  2. tar -zvxf jdk-8u161-linux-x64.tar.gz -C /export/servers/
  3. 为简便起见,进入/export/servers/目录,执行如下指令重命名“jdk1.8.0_161”为“jdk”:
  4. mv jdk1.8.0_333/ jdk
  5. /etc/profile文件中配置 JDK 系统环境变量(如果不是使用root用户登录,使用 sudo vim /etc/profile 命令打开
  6. export JAVA_HOME=/export/servers/jdk
  7. export PATH=$JAVA_HOME/bin:$PATH
  8. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  9. 保存后退出。然后执行 "source /etc/profile"指令使配置文件生效。
  10. 使用如下命令验证JDK安装是否成功,如果成功,会出现版本等信息。
  11. java -version

五、Zookeeper集群部署

  1. 安装Zookeeper
  2. 执行解压命令:
  3. tar -zvxf apache-zookeeper-3.4.10-bin.tar.gz -C /export/servers/
  4. /export/servers/下会出现 apache-zookeeper-3.4.10-bin 目录
  5. 修改安装目录名称 apache-zookeeper-3.4.10-bin 为 zookeeper
  6. mv /export/servers/apache-zookeeper-3.4.10-bin /export/servers/zookeeper
  7. 配置环境变量
  8. /etc/profile文件中配置Zookeeper环境变量。执行如下命令:
  9. vi /etc/profile
  10. 添加如下2行:
  11. export ZK_HOME=/export/servers/zookeeper
  12. export PATH=$PATH:$ZK_HOME/bin
  13. 保存后退出。
  14. 执行如下命令,使配置文件生效:
  15. source /etc/profile
  16. 配置Zookeeper的相关参数
  17. 修改Zookeeper的配置文件
  18. 进入Zookeeper配置目录:
  19. cd /export/servers/zookeeper/conf
  20. 执行如下命令,复制文件
  21. cp zoo_sample.cfg zoo.cfg
  22. 编辑文件 zoo.cfg
  23. vi zoo.cfg
  24. 将行 “dataDir=/tmp/zookeeper” 修改为:
  25. dataDir=/export/data/zookeeper/zkdata
  26. dataLogDir=/export/data/zookeeper/zklog
  27. 在文件末尾添加如下几行:
  28. #配置Zookeeper集群的服务其编号及对应的主机名、通信端口号(心跳端口号)和选举端口号
  29. server.1=hadoop01.bgd01:2888:3888
  30. server.2=hadoop02.bgd01:2888:3888
  31. server.3=hadoop03.bgd01:2888:3888
  32. 保存后退出。
  33. 创建myid文件
  34. 创建目录 /export/data/zookeeper/zkdata、/export/data/zookeeper/zklog
  35. mkdir -p /export/data/zookeeper/zkdata
  36. mkdir -p /export/data/zookeeper/zklog
  37. 进入 /export/data/zookeeper/zkdata 目录
  38. cd /export/data/zookeeper/zkdata
  39. 执行如下命令,创建myid文件(服务器hadoop01对应编号1、服务器hadoop02对应编号2、服务器hadoop03对应编号3):
  40. echo 1 > myid
  41. 将配置文件分发到其他虚拟机
  42. scp -r /export/servers/ hadoop02.bgd01:/export/
  43. scp -r /export/servers/ hadoop03.bgd01:/export/
  44. scp -r /export/data/ hadoop02.bgd01:/export/
  45. scp -r /export/data/ hadoop03.bgd01:/export/
  46. scp -r /etc/profile hadoop02.bgd01:/etc/
  47. scp -r /etc/profile hadoop03.bgd01:/etc/
  48. 分别在hadoop02.bgd01、hadoop03.bgd01执行以下命令对myid进行修改
  49. vi /export/data/zookeeper/zkdata/myid
  50. 其中hadoop02.bgd01配置为2,hadoop03.bgd01配置为3
  51. 然后执行在三台虚拟机"source /etc/profile"指令使配置文件生效。
  52. 测试
  53. 在三台虚拟机上启动Zookeeper集群
  54. zkServer.sh start
  55. 查看集群的状态
  56. zkServer.sh status
  57. hadoop01
  58. ZooKeeper JMX enabled by default
  59. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  60. Mode: follower
  61. hadoop02
  62. ZooKeeper JMX enabled by default
  63. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  64. Mode: leader
  65. hadoop03
  66. ZooKeeper JMX enabled by default
  67. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  68. Mode: follower
  69. 关闭集群
  70. zkServer.sh stop

1、Zookeeper集群启动脚本编写

  1. 在Zookeeper的bin目录下创建三个脚本,分别为start-zkServer.sh、stop-zkServer.sh、status-zkServer.sh
  2. 启动集群
  3. start-zkServer.sh
  4. 内容如下
  5. #! /bin/sh
  6. for host in hadoop01.bgd01 hadoop02.bgd01 hadoop03.bgd01
  7. do
  8. ssh $host "source /etc/profile;zkServer.sh start"
  9. echo "$host zk is running"
  10. done
  11. 保存退出
  12. 关闭集群
  13. stop-zkServer.sh
  14. 内容如下
  15. #! /bin/sh
  16. for host in hadoop01.bgd01 hadoop02.bgd01 hadoop03.bgd01
  17. do
  18. ssh $host "source /etc/profile;zkServer.sh stop"
  19. echo "$host zk is stopping"
  20. done
  21. 保存退出
  22. 查看集群状态
  23. status-zkServer.sh
  24. 内容如下
  25. #! /bin/sh
  26. for host in hadoop01.bgd01 hadoop02.bgd01 hadoop03.bgd01
  27. do
  28. ssh $host "source /etc/profile;zkServer.sh status"
  29. echo "$host zk is status"
  30. done
  31. 保存退出
  32. 因为之前在安装zookeeper的时候,已经将bin目录添加进环境变量中,这里可以在任何目录下执行Shell脚本
  33. 操作如下
  34. sh start-zkServer.sh
  35. ZooKeeper JMX enabled by default
  36. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  37. Starting zookeeper ... STARTED
  38. hadoop01.bgd01 zk is running
  39. ZooKeeper JMX enabled by default
  40. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  41. Starting zookeeper ... STARTED
  42. hadoop02.bgd01 zk is running
  43. ZooKeeper JMX enabled by default
  44. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  45. Starting zookeeper ... STARTED
  46. hadoop03.bgd01 zk is running
  47. sh status-zkServer.sh
  48. ZooKeeper JMX enabled by default
  49. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  50. Mode: follower
  51. hadoop01.bgd01 zk is status
  52. ZooKeeper JMX enabled by default
  53. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  54. Mode: leader
  55. hadoop02.bgd01 zk is status
  56. ZooKeeper JMX enabled by default
  57. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  58. Mode: follower
  59. hadoop03.bgd01 zk is status
  60. sh stop-zkServer.sh
  61. ZooKeeper JMX enabled by default
  62. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  63. Stopping zookeeper ... STOPPED
  64. hadoop01.bgd01 zk is stopping
  65. ZooKeeper JMX enabled by default
  66. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  67. Stopping zookeeper ... STOPPED
  68. hadoop02.bgd01 zk is stopping
  69. ZooKeeper JMX enabled by default
  70. Using config: /export/servers/zookeeper/bin/../conf/zoo.cfg
  71. Stopping zookeeper ... STOPPED
  72. hadoop03.bgd01 zk is stopping

 六、Hadoop高可用集群部署

1、安装配置

  1. 用tar命令将hadoop安装到 /export/servers/ 目录下
  2. tar -zxvf /export/software/hadoop-2.7.4.tar.gz -C /export/servers/
  3. /etc/profile文件中, 配置 Hadoop 系统环境变量
  4. 执行如下命令:
  5. vi /etc/profile
  6. 添加如下2行:
  7. export HADOOP_HOME=/export/servers/hadoop-2.7.4
  8. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  9. 保存后退出。
  10. 执行如下命令,使配置文件生效:
  11. source /etc/profile
  12. 使用如下命令验证hadoop安装是否成功,如果成功,会出现版本等信息。
  13. hadoop version

 2、修改配置文件

cd /export/servers/hadoop-2.7.4/etc/hadoop/

(1) 修改 hadoop-env.sh 文件

  1. vi hadoop-env.sh
  2. #将这一行该成自己jdl安装的路径
  3. export JAVA_HOME=/export/servers/jdk

(2)修改 core-site.xml 文件

  1. <!-- 指定HDFS的nameservice为ns1,需要和hdfs-site.xml中的保持一致 -->
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://ns1</value>
  5. </property>
  6. <!-- 指定hadoop临时目录 -->
  7. <property>
  8. <name>hadoop.tmp.dir</name>
  9. <value>/export/servers/hadoop-2.7.4/tmpha</value> #为了便于同伪分布和分布式集群之间切换
  10. </property>
  11. <!-- 指定用于ZKFailoverController故障自动恢复的Zookeeper服务器地址,用逗号分隔 -->
  12. <property>
  13. <name>ha.zookeeper.quorum</name>
  14. <value>hadoop01.bgd01:2181,hadoop02.bgd01:2181,hadoop03.bgd01:2181</value>
  15. </property>
  16. <!-- 指定 Zookeeper 集群服务器的 Host:Port 列表 -->
  17. <property>
  18. <name>hadoop.zk.address</name>
  19. <value>hadoop01.bgd01:2181,hadoop02.bgd01:2181,hadoop03.bgd01:2181</value>
  20. </property>
  21. <!-- 指定 用于ZK故障恢复存储信息的ZooKeeper znode -->
  22. <property>
  23. <name>ha.zookeeper.parent-znode</name>
  24. <value>/hadoop-ha</value>
  25. </property>

(3) 修改 hdfs-site.xml 文件

  1. <!-- 指定HDFS的副本数量 -->
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>3</value>
  5. </property>
  6. <!-- 设置NameNode节点数据存放目录 -->
  7. <property>
  8. <name>dfs.namenode.name.dir</name>
  9. <value>/export/data/hadoop/namenode</value>
  10. </property>
  11. <!-- 设置DataNode节点数据存放目录 -->
  12. <property>
  13. <name>dfs.datanode.data.dir</name>
  14. <value>/export/data/hadoop/datanode</value>
  15. </property>
  16. <!-- 开启webHDFS -->
  17. <property>
  18. <name>dfs.webhdfs.enabled</name>
  19. <value>true</value>
  20. </property>
  21. <!-- 指定HDFS的nameservice为ns1,需要和core-site.xml中的保持一致 -->
  22. <property>
  23. <name>dfs.nameservices</name>
  24. <value>ns1</value>
  25. </property>
  26. <!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
  27. <property>
  28. <name>dfs.ha.namenodes.ns1</name>
  29. <value>nn1,nn2</value>
  30. </property>
  31. <!-- nn1的RPC通信地址 -->
  32. <property>
  33. <name>dfs.namenode.rpc-address.ns1.nn1</name>
  34. <value>hadoop01.bgd01:9000</value>
  35. </property>
  36. <!-- nn1的http通信地址,配置NameNode节点的Web页面访问地址 -->
  37. <property>
  38. <name>dfs.namenode.http-address.ns1.nn1</name>
  39. <value>hadoop01.bgd01:50070</value>
  40. </property>
  41. <!-- nn2的RPC通信地址 -->
  42. <property>
  43. <name>dfs.namenode.rpc-address.ns1.nn2</name>
  44. <value>hadoop02.bgd01:9000</value>
  45. </property>
  46. <!-- nn2的http通信地址,配置NameNode节点的Web页面访问地址 -->
  47. <property>
  48. <name>dfs.namenode.http-address.ns1.nn2</name>
  49. <value>hadoop02.bgd01:50070</value>
  50. </property>
  51. <!-- 指定NameNode的共享edits元数据在JournalNode上的存放位置,一般配置奇数个,以适应zk选举 -->
  52. <property>
  53. <name>dfs.namenode.shared.edits.dir</name>
  54. <value>qjournal://hadoop01.bgd01:8485;hadoop02.bgd01:8485;hadoop03.bgd01:8485/ns1</value>
  55. </property>
  56. <!-- 指定JournalNode在本地磁盘存放数据的位置 ,JournalName用于存放元数据和状态信息的目录 -->
  57. <property>
  58. <name>dfs.journalnode.edits.dir</name>
  59. <value>/export/data/hadoop/journaldata</value>
  60. </property>
  61. <property>
  62. <name>ipc.client.connect.max.retries</name>
  63. <value>30</value>ide
  64. </property>
  65. <!-- 开启NameNode失败自动重启 -->
  66. <property>
  67. <name>dfs.ha.automatic-failover.enabled</name>
  68. <value>true</value>
  69. </property>
  70. <!-- 配置失败自动切换实现方式 ,客户端与NameNode通讯的地址 -->
  71. <property>
  72. <name>dfs.client.failover.proxy.provider.ns1</name>
  73. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  74. </property>
  75. <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行,解决HA脑裂问题 -->
  76. <property>
  77. <name>dfs.ha.fencing.methods</name>
  78. <value>
  79. sshfence
  80. shell(/bin/true)
  81. </value>
  82. </property>
  83. <!-- 使用sshfence隔离机制时需要ssh免密登录,上述属性ssh通讯使用的秘钥文件 -->
  84. <property>
  85. <name>dfs.ha.fencing.ssh.private-key-files</name>
  86. <value>/root/.ssh/id_rsa</value>
  87. </property>
  88. <!-- 配置sshfence隔离机制连接超时时间 -->
  89. <property>
  90. <name>dfs.ha.fencing.ssh.connect-timeout</name>
  91. <value>3000</value>
  92. </property>

(4) 修改 mapred-site.xml 文件

  1. 先将mapred-site.xml.template 复制到 mapred-site.xml
  2. <configuration>
  3. <!-- 指定MapReduce运行时框架,这里指定在YARN上,默认是local -->
  4. <property>
  5. <name>mapreduce.framework.name</name>
  6. <value>yarn</value>
  7. </property>
  8. </configuration>

(5) 修改 yarn-site.xml 文件

  1. <property>
  2. <!-- 该节点上nodemanager可用的物理内存总量,默认是8192M,如果节点内存不够8GB,则需要调整,
  3. 否则NodeManager进程无法启动或者启动后自动结束 -->
  4. <name>yarn.scheduler.maximum-allocation-mb</name>
  5. <value>8192</value>
  6. </property>
  7. <property>
  8. <!-- 资源管理器中可分配的内存 -->
  9. <name>yarn.nodemanager.resource.memory-mb</name>
  10. <value>8192</value>
  11. </property>
  12. <property>
  13. <!-- NodeManager 可以分配的CPU核数 -->
  14. <name>yarn.nodemanager.resource.cpu-vcores</name>
  15. <value>8</value>
  16. </property>
  17. <!-- 开启resourcemanager高可用 -->
  18. <property>
  19. <name>yarn.resourcemanager.ha.enabled</name>
  20. <value>true</value>
  21. </property>
  22. <!-- 指定resourcemanager的cluster id -->
  23. <property>
  24. <name>yarn.resourcemanager.cluster-id</name>
  25. <value>yrc</value>
  26. </property>
  27. <!-- 指定resourcemanager的名字 -->
  28. <property>
  29. <name>yarn.resourcemanager.ha.rm-ids</name>
  30. <value>rm1,rm2</value>
  31. </property>
  32. <!-- 分别指定resourcemanager的地址 -->
  33. <property>
  34. <name>yarn.resourcemanager.hostname.rm1</name>
  35. <value>hadoop01.bgd01</value>
  36. </property>
  37. <property>
  38. <name>yarn.resourcemanager.hostname.rm2</name>
  39. <value>hadoop02.bgd01</value>
  40. </property>
  41. <!-- 指定 Zookeeper 集群服务器的 Host:Port 列表 -->
  42. <property>
  43. <name>yarn.resourcemanager.zk-address</name>
  44. <value>hadoop01.bgd01:2181,hadoop02.bgd01:2181,hadoop03.bgd01:2181</value>
  45. </property>
  46. <!-- 开启自动恢复功能 -->
  47. <property>
  48. <name>yarn.resourcemanager.recovery.enabled</name>
  49. <value>true</value>
  50. </property>
  51. <!-- 开启故障自动转移 -->
  52. <property>
  53. <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
  54. <value>true</value>
  55. </property>
  56. <!-- 指定rm的web访问地址的 -->
  57. <property>
  58. <name>yarn.resourcemanager.webapp.address.rm1</name>
  59. <value>${yarn.resourcemanager.hostname}:8088</value>
  60. </property>
  61. <property>
  62. <name>yarn.resourcemanager.webapp.address.rm2</name>
  63. <value>${yarn.resourcemanager.hostname}:8088</value>
  64. </property>
  65. <property>
  66. <name>yarn.nodemanager.aux-services</name>
  67. <value>mapreduce_shuffle</value>
  68. </property>
  69. <!-- ResourceManager存储信息的方式,在HA机制下用Zookeeper作为存储介质 -->
  70. <property>
  71. <name>yarn.resourcemanager.store.class</name>
  72. <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  73. </property>
  74. <!-- 开启YARN日志 -->
  75. <property>
  76. <name>yarn.log-aggregation-enable</name>
  77. <value>true</value>
  78. </property>

(6)修改 slaves 文件

  1. hadoop01.bgd01
  2. hadoop02.bgd01
  3. hadoop03.bgd01

(7)分发节点

  1. scp -r /export/servers/hadoop-2.7.4 hadoop02.bgd01:/export/servers/
  2. scp -r /export/servers/hadoop-2.7.4 hadoop03.bgd01:/export/servers/
  3. scp -r /etc/profile hadoop02.bgd01:/etc/
  4. scp -r /etc/profile hadoop02.bgd01:/etc/
  5. 执行完上述命令后,还需在hadoop02、hadoop03上分别执行"source /etc/profile"指令立即刷新配置文件。

3、启用Hadoop高可用集群

  1. 1、启动集群各个节点上的Zookeeper服务
  2. zkServer.sh start
  3. 2、启动集群各个节点监控NameNode的管理日志的JournalNode
  4. hadoop-daemons.sh start journalnode
  5. 注:只需在第一次初始化启动集群时运行一次。以后每次启动集群,journalnode会在步骤 5、start-dfs.sh中启动。
  6. 3、在hadoop01格式化NameNode,并将格式化后的目录复制到hadoop02
  7. hdfs namenode -format
  8. (执行格式化指令后必须出现 successfulluy formatted 才表示格式化成功。)
  9. scp -r /export/data/hadoop hadoop02.bgd01:/export/data/
  10. 4、在hadoop01格式化ZKFC
  11. hdfs zkfc -formatZK
  12. 5、在Hadoop01上启动所有HDFS服务进程
  13. start-dfs.sh
  14. 6、在Hadoop01上启动所有YARN服务进程
  15. start-yarn.sh
  16. 7、查看服务进程
  17. 集群启动后,如果正常,执行命令
  18. JPS
  19. 查看进程。
  20. hadoop01上可以查看到如下进程:
  21. NameNode
  22. DFSZKFailoverController
  23. ResourceManager
  24. DataNode
  25. Jps
  26. JournalNode
  27. NodeManager
  28. QuorumPeerMain
  29. hadoop02上可以查看到如下进程:
  30. NameNode
  31. DFSZKFailoverController
  32. DataNode
  33. Jps
  34. JournalNode
  35. NodeManager
  36. QuorumPeerMain
  37. hadoop03上可以查看到如下进程:
  38. DataNode
  39. Jps
  40. JournalNode
  41. NodeManager
  42. QuorumPeerMain
  43. 在浏览器中查看和管理集群。
  44. 1、Hadoop状态查看
  45. http://hadoop01.bgd01:50070/dfshealth.html
  46. 2、HDFS状态查看
  47. http://hadoop01.bgd01:50070/explorer.html
  48. 3、YARN状态查看
  49. http://hadoop01.bgd01:8088/cluster
  50. 六、关闭Hadoop集群
  51. 1、在Hadoop01上关闭所有YARN服务进程
  52. stop-yarn.sh
  53. 2、在Hadoop01上关闭所有HDFS服务进程
  54. stop-dfs.sh
  55. 3、在集群各个节点上的关闭Zookeeper服务
  56. zkServer.sh stop

七、Spark高可用集群部署

1、安装部署

  1. 解压Spark压缩包到/export/servers/目录下,并进行重名命名
  2. tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C /export/servers/
  3. mv /export/servers/spark-2.3.2-bin-hadoop2.7 /export/servers/spark
  4. 配置环境变量
  5. vi /etc/profile
  6. export SPARK_HOME=/export/servers/spark
  7. export PATH=$PATH:$SPARK_HOME/bin
  8. 使环境变量生效
  9. source /etc/profile

2、配置文件

  1. 进入Spark安装目录conf/目录下,进行相关配置
  2. cd /export/servers/spark/conf/

(1) 配置spark-env.sh

  1. 复制spark-env.sh.template文件,重命名为spark-env.sh
  2. cp spark-env.sh.template spark-env.sh
  3. 进入spark-env.sh,添加如下配置
  4. vi spark-env.sh
  5. #Java的安装路径
  6. export JAVA_HOME=/export/servers/jdk
  7. #Hadoop配置文件的路径
  8. export HADOOP_CONF_DIR=/export/servers/hadoop-2.7.4/etc/hadoop/
  9. #Spark高可用配置
  10. #设置Zookeeper去启动备用Master模式
  11. #spark.deploy.recoveryMode:设置Zookeeper去启动备用Master模式
  12. #spark.deploy.zookeeper.url:指定Zookeeper的Server地址
  13. #spark.deploy.zookeeper.dir:保存集群元数据信息的文件和目录
  14. export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER
  15. -Dspark.deploy.zookeeper.url=hadoop01.bgd01:2181,hadoop02.bgd01:2181,hadoop03.bgd01:2181
  16. -Dspark.deploy.zookeeper.dir=/spark"
  17. #Spark主节点的端口号
  18. export SPARK_MASTER_PORT=7077
  19. #工作(Worker)节点能给予Executor的内存大小
  20. export SPARK_WORKER_MEMORY=512m
  21. #每个节点可以使用的内核数
  22. export SPARK_WORKER_CORES=1
  23. #每个Executor的内存大小
  24. export SPARK_EXECUTOR_MEMORY=512m
  25. #Executor的内核数
  26. export SPARK_EXECUTOR_CORES=1
  27. #每个Worker进程数
  28. export SPARK_WORKER_INSTANCES=1

(2) 配置Workers文件

  1. 复制workers.template文件,重命名为 workers,删除原有内容,添加如下配置
  2. cp slaves.template slaves
  3. vi slaves
  4. #每行代表一个子节点主机名
  5. hadoop02.bgd01
  6. hadoop03.bgd01

(3)配置spark-defaults.conf文件

  1. 复制spark-defaults.conf.template文件,重命名为spark-defaults.conf,添加如下配置
  2. cp spark-defaults.conf.template spark-defaults.conf
  3. vi spark-defaults.conf
  4. #Spark主节点所在机器及端口号,默认写法是spark://
  5. spark.master spark://hadoop01.bgd01:7077
  6. #是否打开任务日志功能,默认为flase,即不打开
  7. spark.eventLog.enabled true
  8. #任务日志默认存放位置,配置为一个HDFS路径即可
  9. spark.eventLog.dir hdfs://ns1/spark-logs
  10. #存放历史应用日志文件的目录
  11. spark.history.fs.logDirectory hdfs://ns1/spark-logs

注意事项

  1. 这里需要注意,hadoop的各个端口号的区别:
  2. 8020是默认rpc的端口号,一般用于IDE远程使用Hadoop集群,是程序和程序之间的连接。
  3. 9000端口:是HDFS默认的端口号,提供文件系统的端口供client角色寻找namenode角色的端口号,是进程之间的调用。
  4. 但是在core-site.xml文件的配置当中,如果hdfs://ns1:9000改为hdfs://ns1,则默认端口号为8020
  5. <property>
  6. <name>fs.defaultFS</name>
  7. <value>hdfs://ns1:9000</value>
  8. </property>
  9. 50070:namenode提供给操作者使用Web访问的端口号,是操作者和程序之间的端口号
  10. <property>
  11. <name>dfs.namenode.http-address.mycluster.nn1</name>
  12. <value>hadoop01.bgd01:50070</value>
  13. </property>
  14. 50090:secondarynamenode的端口号,这个也是Web访问的端口号
  15. <property>
  16. <name>dfs.namenode.secondary.http-address</name>
  17. <value>hadoop02.bgd01:50090</value>
  18. </property>
  19. hdfs有下面几种角色:namenode,datanode,secondarynamenode,client等

3、分发文件

  1. scp -r /export/servers/spark hadoop02.bgd01:/export/servers/
  2. scp -r /export/servers/spark hadoop03.bgd01:/export/servers/
  3. scp -r /etc/profile hadoop02.bgd01:/etc/
  4. scp -r /etc/profile hadoop03.bgd01:/etc/
  5. 在各个节点刷新环境变量
  6. source /etc/profile

4、启动Spark HA集群

  1. 启动前在hdfs上创建Spark的日志目录
  2. hadoop fs -mkdir /spark-logs
  3. hadoop fs -ls /
  4. drwxr-xr-x - root supergroup 0 2023-03-02 23:21 /spark-logs
  5. 启动Zookeeper服务
  6. 这里使用脚本一键启动
  7. sh start-zkServer.sh
  8. 启动Spark集群
  9. 在hadoop01主节点使用一键启动脚本启动
  10. /export/servers/spark/sbin/start-all.sh
  11. 单独启动Master节点
  12. 在hadoop02节点上再次启动Master服务
  13. /export/servers/spark/sbin/start-master.sh
  14. 通过访问http://hadoop02.bgd01:8080可以查看Master节点的状态

 

脚本编写

  1. 由于spark与hadoop的启动指令相似,这里提供一个简单的脚本
  2. 在spark的bin目录下编辑两个Shell的脚本,名为start-spark.sh和stop-spark.sh
  3. start-spark.sh
  4. 内容如下
  5. #! /bin/sh
  6. for host in hadoop01.bgd01
  7. do
  8. ssh $host "source /etc/profile;/export/servers/spark/sbin/start-all.sh"
  9. echo "$host Spark is running"
  10. done
  11. stop-spark.sh
  12. 内容如下
  13. #! /bin/sh
  14. for host in hadoop01.bgd01
  15. do
  16. ssh $host "source /etc/profile;/export/servers/spark/sbin/stop-all.sh"
  17. echo "$host Spark is stopping"
  18. done

5、Scala安装

  1. 将scala-2.12.15.tgz解压至/export/servers目录下,并重命名
  2. tar -zxvf scala-2.11.12.tgz -C /export/servers/
  3. cd /export/servers/
  4. mv scala-2.11.12 scala
  5. 配置环境变量
  6. vi /etc/profile
  7. export SCALA_HOME=/export/servers/scala
  8. export PATH=$PATH:$SCALA_HOME/bin
  9. source /etc/profile
  10. 运行
  11. scala
  12. 退出
  13. :quit
  14. scala体验
  15. scala> 3*3+3
  16. res0: Int = 12
  17. scala> :paste
  18. // Entering paste mode (ctrl-D to finish)
  19. object add{
  20. def addInt(a:Int,b:Int):Int={
  21. var sum:Int=0
  22. sum=a+b
  23. return sum
  24. }
  25. }
  26. // Exiting paste mode, now interpreting.
  27. defined object add
  28. scala> import add.addInt;
  29. import add.addInt
  30. scala> addInt(2,3);
  31. res2: Int = 5

八、Hbase高可用集群部署

1、安装配置

  1. 将Hbase压缩包解压至/export/servers目录上,并重命名
  2. cd /export/software
  3. tar -zxvf hbase-1.2.1-bin.tar.gz -C /export/servers/
  4. mv /export/servers/hbase-1.2.1 /export/servers/hbase
  5. 配置环境变量
  6. vi /etc/profile
  7. export HBASE_HOME=/export/servers/hbase
  8. export PATH=$PATH:$HBASE_HOME/bin
  9. 刷新环境变量,使配置生效
  10. source /etc/profile

2、文件配置

  1. 修改Hbase配置文件
  2. cd /export/servers/hbase/conf/

(1)修改hbase-site.xml文件

  1. vi hbase-site.xml
  2. <configuration>
  3. <property>
  4. <name>hbase.cluster.distributed</name>
  5. <value>true</value>
  6. </property>
  7. <property>
  8. <name>hbase.tmp.dir</name>
  9. <value>/export/data/hbasedata</value>
  10. </property>
  11. <property>
  12. <name>hbase.master.maxclockskew</name>
  13. <value>180000</value>
  14. </property>
  15. <!-- 指定hbase在HDFS上存储的路径 -->
  16. <property>
  17. <name>hbase.rootdir</name>
  18. <value>hdfs://ns1/hbase</value>
  19. </property>
  20. <property>
  21. <name>hbase.zookeeper.property.dataDir</name>
  22. <value>/export/data/zookeeper/zkdata</value>
  23. </property>
  24. <!-- 指定zookeeper地址,多个用","分隔 -->
  25. <property>
  26. <name>hbase.zookeeper.quorum</name>
  27. <value>hadoop01.bgd01:2181,hadoop02.bgd01:2181,hadoop03.bgd01:2181</value>
  28. </property>
  29. <property>
  30. <name>hbase.unsafe.stream.capability.enforce</name>
  31. <value>false</value>
  32. </property>
  33. <!-- 指定hbase访问端口 -->
  34. <property>
  35. <name>hbase.master.info.port</name>
  36. <value>16010</value>
  37. </property>
  38. </configuration>
  39. 创建hbase的日志存储目录
  40. mkdir -p /export/data/hbasedata

(2)修改hbase-env.sh文件

  1. vi hbase-env.sh
  2. #配置jdk环境变量
  3. export JAVA_HOME=/export/servers/jdk
  4. #配置hbase使用外部环境变量
  5. export HBASE_MANAGES_ZK=false

(3) 修改regionservers文件

  1. hadoop02.bgd01
  2. hadoop03.bgd01

(4)配置备用HMaster

  1. vi backup-masters
  2. hadoop02.bgd01
  3. hadoop03.bgd01

(5)复制hadoop配置文件

  1. 将Hadoop的配置文件复制到Hbase的conf/目录下
  2. cd /export/servers/hadoop-2.10.1/etc/hadoop/
  3. cp -r core-site.xml hdfs-site.xml /export/servers/hbase/conf/

(6) 修改hbase-env.sh文件

  1. 在hadoop-env.sh里添加以下内容,方便后续hadoop加载hbase的jar包
  2. export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/export/servers/hbase/lib/*
  3. 执行hadoop classpath,可以看到以及导入了hbase的jar包
  4. /export/servers/hadoop-2.7.4/etc/hadoop:/export/servers/hadoop-2.7.4/share/hadoop/common/lib/*:/export/servers/hadoop-2.7.4/share/hadoop/common/*:/export/servers/hadoop-2.7.4/share/hadoop/hdfs:/export/servers/hadoop-2.7.4/share/hadoop/hdfs/lib/*:/export/servers/hadoop-2.7.4/share/hadoop/hdfs/*:/export/servers/hadoop-2.7.4/share/hadoop/yarn/lib/*:/export/servers/hadoop-2.7.4/share/hadoop/yarn/*:/export/servers/hadoop-2.7.4/share/hadoop/mapreduce/lib/*:/export/servers/hadoop-2.7.4/share/hadoop/mapreduce/*:/export/servers/hadoop-2.7.4/contrib/capacity-scheduler/*.jar:/export/servers/hbase/lib/*

3、分发文件

  1. scp -r /export/servers/hbase hadoop02.bgd01:/export/servers/
  2. scp -r /export/servers/hbase hadoop03.bgd01:/export/servers/
  3. scp -r /export/data/hbasedata hadoop02.bgd01:/export/data/
  4. scp -r /export/data/hbasedata hadoop03.bgd01:/export/data/
  5. scp -r /etc/profile hadoop02.bgd01:/etc/
  6. scp -r /etc/profile hadoop03.bgd01:/etc/
  7. 在hadoop02、hadoop03上刷新环境变量
  8. source /etc/profile

4、启动集群

  1. 启动zookeeper集群
  2. sh shart-zkServer.sh
  3. 启动hadoop集群
  4. start-all.sh
  5. 启动hbase集群
  6. start-hbase.sh
  7. 查看进程
  8. hadoop01
  9. 10370 HMaster
  10. 9603 DFSZKFailoverController
  11. 10502 HRegionServer
  12. 9272 DataNode
  13. 10874 Jps
  14. 9884 NodeManager
  15. 9165 NameNode
  16. 9773 ResourceManager
  17. 5807 QuorumPeerMain
  18. 9471 JournalNode
  19. hadoop02
  20. 6098 HMaster
  21. 5716 JournalNode
  22. 3957 QuorumPeerMain
  23. 5621 DataNode
  24. 5783 DFSZKFailoverController
  25. 5928 NodeManager
  26. 6235 Jps
  27. 5548 NameNode
  28. hadoop03
  29. 3472 QuorumPeerMain
  30. 4421 Jps
  31. [root@hadoop03 ~]# jps
  32. 3472 QuorumPeerMain
  33. 4688 NodeManager
  34. 4976 Jps
  35. 4849 HMaster
  36. 4587 JournalNode
  37. 4492 DataNode
  38. 登录Hbase的Web界面
  39. http://hadoop01.bgd01:16010

5、Phoenix安装

  1. 解压
  2. tar -zxvf apache-phoenix-4.14.1-HBase-1.2-bin.tar.gz -C /export/servers/
  3. 重命名
  4. mv /export/servers/apache-phoenix-4.14.1-HBase-1.2-bin /export/servers/phoenix
  5. 配置环境变量
  6. vi /etc/profile
  7. export PHOENIX_HOME=/export/servers/phoenix
  8. export PATH=$PATH:$PHOENIX_HOME/bin
  9. 刷新
  10. source /etc/profile
  11. 分发至其他节点
  12. scp -r /etc/profile hadoop02.bgd01:/etc/
  13. scp -r /etc/profile hadoop03.bgd01:/etc/
  14. source /etc/profile
  15. 将phoenix下的所有jar包复制到hbase的lib目录下
  16. cp /export/servers/phoenix/phoenix-*.jar /export/servers/hbase/lib/
  17. 分发jar包至hbase的每个节点
  18. cd /export/servers/hbase/lib/
  19. scp phoenix-*.jar hadoop02.bgd01:$PWD
  20. scp phoenix-*.jar hadoop03.bgd01:$PWD
  21. 修改配置文件
  22. vi /export/servers/hbase/conf/hbase-site.xml
  23. # 添加以下内容
  24. <!-- 支持HBase命名空间映射 -->
  25. <property>
  26. <name>phoenix.schema.isNamespaceMappingEnabled</name>
  27. <value>true</value>
  28. </property>
  29. <!-- 支持索引预写日期编程 -->
  30. <property>
  31. <name>hbase.regionserver.wal.code</name>
  32. <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCode</value>
  33. </property>
  34. 启动
  35. cd /export/servers/phoenix/bin/
  36. ./sqlline.py hadoop01.bgd01:2181
  37. 这里需要注意,hadoop01.bgd01:2181是主机名或IP地址加上zookeeper的端口号
  38. 退出!quit
  39. 将配置分发到其他节点
  40. scp -r /export/servers/hbase/conf/hbase-site.xml hadoop02.bgd01:/export/servers/hbase/conf/
  41. scp -r /export/servers/hbase/conf/hbase-site.xml hadoop03.bgd01:/export/servers/hbase/conf/
  42. 将配置后的hbase-site.xml拷贝到phoenix的bin目录下

九、Kafa集群部署

1、安装配置

  1. 解压
  2. tar -zxvf kafka_2.11-2.0.0.tgz -C /export/servers/
  3. 重命名
  4. mv /export/servers/kafka_2.11-2.0.0 /export/servers/kafka
  5. 配置环境变量
  6. vi /etc/profile
  7. export KAFKA_HOME=/export/servers/kafka
  8. export PATH=$PATH:$KAFKA_HOME/bin
  9. 刷新环境变量,使配置生效
  10. source /etc/profile

2、修改配置文件

cd /export/servers/kafka/config/

(1)修改server.properties配置文件

  1. vi server.properties
  2. #broker的全局唯一编号,不能重复
  3. broker.id=0
  4. #用来监听链接的端口,producer或consumer将在此端口建立连接
  5. port=9092
  6. #处理网络请求的线程数量
  7. num.network.threads=3
  8. #用来处理磁盘I/O的现成数量
  9. num.io.threads=8
  10. #发送套接字的缓冲区大小
  11. socket.send.buffer.bytes-102400#接受套接字的缓冲区大小
  12. socket.receive.buffer.bytes=102400
  13. #请求套接字的缓冲区大小
  14. socket.request.max.bytes104857600
  15. #kafka运行日志存放的路径
  16. log.dirs=/export/data/kafka/
  17. #topic在当前broker上的分片个数
  18. num.partitions=2
  19. #用来恢复和清理data下数据的线程数量
  20. num.recovery.threads.per.data.dir=1
  21. #segment文件保留的最长时间,超时将被删除
  22. log.retention.hours=1
  23. #滚动生成新的segment文件的最大时间
  24. log.roll.hours=1
  25. #日志文件中每个sement的大小,默认为1GB
  26. log.segment.bytes=1073741824
  27. #周期性检查文件大小的时间
  28. log.retention.check.interval.ms=300000
  29. #日志清理是否打开
  30. log.cleaner.enable=true
  31. #broker需要使用zookeeper保存meta数据
  32. zokeeperconnect=hadoop01.bgd01:2181,hadoop02.bgd01:2181,hadoop03.bgd01:218133 zookeeper链接超时时间
  33. zokeeper.connection.timeout.ms=6000
  34. #partionbuffer中,消息的条数达到阈值时,将触发flush磁盘操作
  35. log.flush.interval.messages=10000
  36. #消息缓冲的时间,达到阈值时,将触发flush到磁盘的操作
  37. log.flush.interval.ms=3000
  38. #删除topic
  39. delete.topic.enable=true
  40. #设置本机IP
  41. host.name=hadoop01.bgd01
  42. 创建存放kafka日志的目录
  43. mkdir -p /export/data/kafkadata

3、分发节点

  1. scp -r /export/servers/kafka/ hadoop02.bgd01:/export/servers/
  2. scp -r /export/servers/kafka/ hadoop02.bgd01:/export/servers/
  3. scp -r /etc/profile hadoop02.bgd01:/etc/
  4. scp -r /etc/profile hadoop03.bgd01:/etc/
  5. scp -r /export/data/kafkadata/ hadoop02.bgd01:/export/data/
  6. scp -r /export/data/kafkadata/ hadoop03.bgd01:/export/data/
  7. 分别在hadoop02和hadoop03的server.properties进行修改
  8. hadoop02
  9. broker.id=1
  10. hadoop03
  11. broker.id=2
  12. 在hadoop02、hadoop03上刷新环境变量
  13. source /etc/profile

4、启动集群

  1. 在kafka的根部录下启动集群,这里需要注意启动的终端不能关闭,一旦关闭kafka服务就会停止,可以克隆一个会话可能打开新的终端,查看进程
  2. bin/kafka-server-start.sh config/server.properties
  3. jps
  4. 10370 HMaster
  5. 9603 DFSZKFailoverController
  6. 12116 Kafka
  7. 10502 HRegionServer
  8. 9272 DataNode
  9. 12536 Jps
  10. 9884 NodeManager
  11. 9165 NameNode
  12. 9773 ResourceManager
  13. 5807 QuorumPeerMain
  14. 9471 JournalNode

十、Hive数据仓库部署

1、安装配置

  1. 解压
  2. tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /export/servers/
  3. 重命名
  4. mv /export/servers/apache-hive-1.2.1-bin /export/servers/hive
  5. 配置环境变量
  6. vi /etc/profile
  7. export HIVE_HOME=/export/servers/hive
  8. export PATH=$PATH:$HIVE_HOME/bin
  9. 刷新环境变量
  10. source /etc/profile
  11. 复制 mysql 数据库的 JDBC 驱动包到 /export/servers/hive/lib 下
  12. mysql-connector-java-8.0.20.jar

2、Mysql安装和配置

  1. 查看本地的数据库
  2. rpm -qa | grep mariadb
  3. yum install mariadb-server
  4. yum install mariadb-devel
  5. yum install mariadb -y
  6. rpm -qa | grep mariadb
  7. 出现这四个
  8. mariadb-5.5.68-1.el7.x86_64
  9. mariadb-server-5.5.68-1.el7.x86_64
  10. mariadb-libs-5.5.68-1.el7.x86_64
  11. mariadb-devel-5.5.68-1.el7.x86_64
  12. 设置开机启动
  13. systemctl enable mariadb
  14. 启动数据库
  15. systemctl start mariadb
  16. 查看数据库状态
  17. systemctl status mariadb
  18. 打开数据库
  19. mysql
  20. mysql>use mysql;
  21. mysql>update user set Password=PASSWORD('123456') where user='root';
  22. mysql>grant all PRIVILEGES on *.* to 'root'@'% ' identified by '123456' with grant option;
  23. mysql>FLUSH PRIVILEGES;
  24. mysql>quit
  25. 修改密码后,数据库的登录命令如下:
  26. mysql -uroot -p123456

3、修改配置文件

cd /export/servers/hive/conf

(1)修改hive-env.sh文件

  1. 复制文件
  2. cp hive-env.sh.template hive-env.sh
  3. 修改hive-env.sh配置文件,添加Hadoop环境变量,具体内容如下:
  4. export JAVA_HOME=/export/servers/jdk
  5. export HADOOP_HOME=/export/servers/hadoop-2.7.4
  6. #由于部署 Hadoop 时已经配置了全局 Hadoop 环境变量,因此可以不设置上面2行参数。
  7. export HIVE_HOME=/export/servers/hive
  8. export HIVE_CONF_DIR=/export/servers/hive/conf
  9. export HIVE_AUX_JARS_PATH=/export/servers/hive/lib

(2)修改hive-site.xml文件

  1. vi hive-site.xml
  2. <property>
  3. <name>javax.jdo.option.ConnectionURL</name>
  4. <value>jdbc:mysql://hadoop01.bgd01:3306/hive?createDatabaseIfNotExist=true</value>
  5. <description>JDBC connect string for a JDBC metastore</description>
  6. </property>
  7. <property>
  8. <name>javax.jdo.option.ConnectionDriverName</name>
  9. <value>com.mysql.cj.jdbc.Driver</value>
  10. <description>Driver class name for a JDBC metastore</description>
  11. </property>
  12. <property>
  13. <name>javax.jdo.option.ConnectionUserName</name>
  14. <value>root</value>
  15. <description>Username to use against metastore database</description>
  16. </property>
  17. <property>
  18. <name>javax.jdo.option.ConnectionPassword</name>
  19. <value>123456</value>
  20. <description>password to use against metastore database</description>
  21. </property>
  22. <property>
  23. <name>hive.execution.engine</name>
  24. <value>mr</value>
  25. <description>
  26. Expects one of [mr, tez, spark].
  27. Chooses execution engine. Options are: mr (Map reduce, default), tez, spark. While MR
  28. remains the default engine for historical reasons, it is itself a historical engine
  29. and is deprecated in Hive 2 line. It may be removed without further warning.
  30. </description>
  31. </property>

(3)初始化数据仓库hive

  1. 在hive根目录下,执行如下命令进行初始化:
  2. bin/schematool -dbType mysql -initSchema
  3. 出现如下信息表示安装正常:
  4. Metastore connection URL: jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=TRUE
  5. Metastore Connection Driver : com.mysql.cj.jdbc.Driver
  6. Metastore connection User: root
  7. Starting metastore schema initialization to 2.3.0
  8. Initialization script hive-schema-2.3.0.mysql.sql
  9. Initialization script completed
  10. schemaTool completed

注意事项

  1. ls: 无法访问/export/servers/spark/lib/spark-assembly-*.jar: 没有那个文件或目录
  2. Metastore connection URL: jdbc:mysql://hadoop01.hugs:3306/hive?createDatabaseIfNotExist=true
  3. Metastore Connection Driver : com.mysql.cj.jdbc.Driver
  4. Metastore connection User: root
  5. org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver
  6. *** schemaTool failed ***
  7. 这里是因为spark更新后,原来文件存放路径变更,需要在hive的bin目录下对hive文件进行修改
  8. cd /export/servers/hive/bin/
  9. cp -r hive hive.xml
  10. vi hive
  11. 找到以下这个位置,进行编辑
  12. # add Spark assembly jar to the classpath
  13. if [[ -n "$SPARK_HOME" ]]
  14. then
  15. sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`
  16. CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}"
  17. fi
  18. 将“sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`”修改成以下内容
  19. sparkAssemblyPath=`ls ${SPARK_HOME}/jars/*.jar`
  20. 退出保存

4、分发文件

  1. 1. 将 hadoop01 上安装的 Hive 程序分别复制到hadoop02、hadoop03服务器上
  2. scp -r /export/servers/hive/ hadoop02.bgd01:/export/servers/
  3. scp -r /export/servers/hive/ hadoop03.bgd01:/export/servers/
  4. 2. 同步全局环境配置文件
  5. scp /etc/profile hadoop02.bgd01:/etc/
  6. scp /etc/profile hadoop03.bgd01:/etc/
  7. 在hadoop02、hadoop03上刷新环境变量
  8. source /etc/profile

5、设置 hadoop 的代理用户,以便 root 用户能够远程登录访问Hive

  1. 修改Hadoop配置文件 core-site.xml
  2. <!-- 设置 hadoop 的代理用户-->
  3. <property>
  4. <!--表示代理用户的组所属-->
  5. <name>hadoop.proxyuser.root.groups</name>
  6. <value>*</value>
  7. </property>
  8. <property>
  9. <!--表示任意节点使用 hadoop 集群的代理用户 hadoop 都能访问 hdfs 集群-->
  10. <name>hadoop.proxyuser.root.hosts</name>
  11. <value>*</value>
  12. </property>

6、Hive启动

  1. 本地CLI方式
  2. 启动Hive
  3. 执行如下命令:
  4. hive
  5. 显示如下:
  6. hive>
  7. 退出
  8. hive>exit;
  9. hive>quit;
  10. 查看数据仓库中的数据库
  11. hive>show databases;
  12. 查看数据仓库中的表
  13. hive>show tables;
  14. 查看数据仓库中的内置函数
  15. hive>show functions;
  16. 清屏
  17. hive>!clear
  18. 远程服务模式
  19. 在hadoop01上启动 Hiveserver2服务
  20. hiveserver2
  21. 注意, 执行上述命令后, 没有任何显示. 但是,重新打开一个终端,用jps查询,会多出一个RunJar进程.
  22. 在hadoop02服务器的Hive安装包下, 执行远程连接命令连接到 Hive数据仓库服务器
  23. (如果只有一台服务器,可以在本地打开另外一个终端进行操作演示)
  24. //输入远程连接命令
  25. bin/beeline
  26. //出现如下显示信息
  27. Beeline version 2.3.9 by Apache Hive
  28. beeline>
  29. //如下输入连接协议
  30. beeline> !connect jdbc:hive2://hadoop01.bgd01:10000
  31. //显示正在连接信息
  32. Connecting to jdbc:hive2://hadoop01.bgd01:10000
  33. //根据提示输入 Hive服务器 hadoop01 的用户名和密码
  34. Enter username for jdbc:hive2://hadoop01.bgd01:10000: root
  35. Enter password for jdbc:hive2://hadoop01.bgd01:10000: ********
  36. //显示已经连接到Hive服务器
  37. Connected to: Apache Hive (version 2.3.9)
  38. Driver: Hive JDBC (version 2.3.9)
  39. Transaction isolation: TRANSACTION_REPEATABLE_READ
  40. 0: jdbc:hive2://hadoop01.bgd01:10000>
  41. 操作数据仓库
  42. 现在可以像 CLI方式一样操作数据仓库命令.
  43. 查看数据仓库中的数据库
  44. 0: jdbc:hive2://hadoop01.bgd01:10000> show databases;
  45. 查看数据仓库中的表
  46. 0: jdbc:hive2://hadoop01.bgd01:10000> show tables;
  47. 查看数据仓库中的内置函数
  48. hive>show functions;
  49. 退出
  50. 0: jdbc:hive2://hadoop01.bgd01:10000>!exit
  51. 0: jdbc:hive2://hadoop01.bgd01:10000>!quit

十一、Sqoop数据转移工具部署

1、安装配置

  1. 解压安装
  2. tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /export/servers/
  3. 重命名为
  4. mv /export/servers/sqoop-1.4.6.bin__hadoop-2.0.4-alpha /export/servers/sqoop
  5. 复制hive的相关jar包
  6. cp $HIVE_HOME/lib/hive-common-1.2.2.jar /export/servers/sqoop-1.4.7/lib
  7. cp $HIVE_HOME/lib/hive-shims*.jar /export/servers/sqoop-1.4.7/lib
  8. 重命名生成 sqoop-env.sh 配置文件,添加Hadoop环境变量
  9. cd /export/servers/sqoop-1.4.7/conf
  10. mv sqoop-env.sh.template sqoop-env.sh
  11. 添加环境变量
  12. vi /etc/profile
  13. 添加如下2行:
  14. export SQOOP_HOME=/export/servers/sqoop
  15. export PATH=$PATH:$SQOOP_HOME/bin
  16. 刷新环境变量
  17. source /etc/profile

2、修改文件配置

(1)修改sqoop-env.sh文件

  1. cd /export/servers/conf
  2. cp sqoop-env.sh.template sqoop-env.sh
  3. 修改sqoop-env.sh配置文件,添加Hadoop环境变量,具体内容如下:
  4. export HADOOP_COMMON_HOME=/export/servers/hadoop-2.7.4
  5. export HADOOP_MAPRED_HOME=/export/servers/hadoop-2.7.4
  6. export HIVE_HOME=/export/servers/hive
  7. export ZOOKEEPER_HOME=/export/servers/zookeeper
  8. export ZOOCFGDIR=/export/servers/zookeeper/conf
  9. 复制 mysql 数据库的 JDBC 驱动包到 /export/servers/sqoop/lib 下
  10. mysql-connector-java-8.0.20.jar
  11. 验证安装是否成功
  12. sqoop version

3、分发文件

  1. scp -r /export/servers/sqoop/ hadoop02.bgd01:/export/servers/
  2. scp -r /export/servers/sqoop/ hadoop03.bgd01:/export/servers/
  3. scp -r /etc/profile hadoop02.bgd01:/etc/
  4. scp -r /etc/profile hadoop03.bgd01:/etc/
  5. 在hadoop02、hadoop03上刷新环境变量
  6. source /etc/profile

十二、Flume日志采集系统部署

1、安装配置

  1. 解压
  2. 进入目录/export/software/,执行命令
  3. tar -zxvf apache-flume-1.8.0-bin.tar.gz -C /export/servers/
  4. 将安装目录apache-flume-1.8.0-bin 重命名为flume
  5. 进入目录/export/servers/,执行命令
  6. mv apache-flume-1.8.0-bin flume

2、文件配置

  1. 配置Flume环境
  2. 1、配置 flume-env.sh
  3. cd /export/servers/flume/conf
  4. cp flume-env.sh.template flume-env.sh
  5. vi flume-env.sh #编辑文件,增加如下行
  6. export JAVA_HOME=/export/servers/jdk
  7. 2、配置 /etc/profile
  8. vi /etc/profile #编辑文件,增加如下行
  9. export FLUME_HOME=/export/servers/flume
  10. export PATH=$PATH:$FLUME_HOME/bin

3、分发文件

  1. 在hadoop01上,将Flume同步到hadoop02、hadoop03
  2. scp -r /export/servers/flume hadoop02.bgd01:/export/servers/
  3. scp -r /export/servers/flume hadoop03.bgd01:/export/servers/
  4. scp /etc/profile hadoop02.bgd01:/etc/profile
  5. scp /etc/profile hadoop03.bgd01:/etc/profile
  6. 分别在hadoop02、hadoop03上执行如下命令,立即刷新配置
  7. source /etc/profile

十三、Azkban工作流管理器部署

1、解压安装

  1. /export/software目录下对 Azkaban 的源文件进行解压
  2. tar -zxvf azkaban-3.50.0.tar.gz
  3. 进入解压后的Azkaban目录,进行编译
  4. cd azkaban-3.50.0
  5. ./gradlew build -x test
  6. 这里需要注意,上述指令会跳过 Azkaban 源文件的测试类部分进行自动编译构建(使用 ./gradlew mild 指令会对整个源文件全部进行编译),整个过程需要联网,如果网络不好会非常耗时连接中断时需要多次重试。执行上述指令进行编译,经过一段时间后必须看到 BUILD SUCCESSFUL 信息才可确定 Azkaban 源文件编译成功,
  7. 编译成功后 压缩包在各个组件的build/distributions目录里:
  8. azkaban-db/build/distributions
  9. azkaban-web-server/build/distributions
  10. azkaban-exec-server/build/distributions
  11. azkaban-solo-server/build/distributions
  12. 分别在/export/servers/ 目录下创建 azkaban 子目录
  13. mkdir -p /export/servers/azkaban
  14. 解压安装包
  15. 执行如下命令,将上面4个安装包解压到 /export/servers/azkaban/ 目录下
  16. cd /export/servers/azkaban/
  17. tar -zxvf /export/software/azkaban-3.50.0/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz -C ./
  18. tar -zxvf /export/software/azkaban-3.50.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C ./
  19. tar -zxvf /export/software/azkaban-3.50.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C ./
  20. tar -zxvf /export/software/azkaban-3.50.0/azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C ./
  21. 修改目录名称
  22. 为了以后操作方便,将解压安装包产生的4个目录名字中的版本号去掉。
  23. mv azkaban-db-0.1.0-SNAPSHOT azkaban-db
  24. mv azkaban-solo-server-0.1.0-SNAPSHOT azkaban-solo-server
  25. mv azkaban-exec-server-0.1.0-SNAPSHOT azkaban-exec-server
  26. mv azkaban-web-server-0.1.0-SNAPSHOT azkaban-web-server

2、数据库配置

  1. 创建Azkaban数据库及用户
  2. mysql -uroot -p123456
  3. MariaDB>CREATE DATABASE azkaban;
  4. Azkaban数据库表初始化
  5. 连接azkaban数据库
  6. MariaDB>use azkaban;
  7. 创建数据库表
  8. MariaDB[azkaban]>source /export/servers/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql;
  9. 显示创建的所有对象
  10. MariaDB[azkaban]>show tables
  11. 这时可以看到刚才创建的所有azkaban数据库表。
  12. 退出数据库
  13. MariaDB[azkaban]>quit

3、Azkaban Web 服务配置

(1)SSL创建

  1. 在目录 /export/servers/azkaban/azkaban-web-server 下执行如下命令,生成 SSL 密匙库文件
  2. keytool -keystore keystore -alias jetty -genkey -keyalg RSA
  3. 输入密钥库口令: 123456
  4. 再次输入新口令: 123456
  5. 您的名字与姓氏是什么?
  6. [Unknown]: 回车
  7. 您的组织单位名称是什么?
  8. [Unknown]: 回车
  9. 您的组织名称是什么?
  10. [Unknown]: 回车
  11. 您所在的城市或区域名称是什么?
  12. [Unknown]: 回车
  13. 您所在的省//自治区名称是什么?
  14. [Unknown]: 回车
  15. 该单位的双字母国家/地区代码是什么?
  16. [Unknown]: cn
  17. CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
  18. [否]: 是
  19. 输入 <jetty> 的密钥口令
  20. (如果和密钥库口令相同, 按回车):
  21. Warning:
  22. JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore keystore -destkeystore keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12

(2)Azkaban Web 服务器配置        

  1. 进入azkaban-web-server目录
  2. cd /export/servers/azkaban/azkaban-web-server
  3. 创建子目录 extlib、logs
  4. mkdir extlib
  5. mkdir logs
  6. 复制子目录 plugins、conf
  7. cp -r /export/servers/azkaban/azkaban-solo-server/plugins ./
  8. cp -r /export/servers/azkaban/azkaban-solo-server/conf ./

(3)配置azkaban.properties

  1. cd /export/servers/azkaban/azkaban-web-server/conf
  2. vi azkaban.properties
  3. # Azkaban Personalization Settings
  4. azkaban.name=Test
  5. azkaban.label=My Local Azkaban
  6. azkaban.color=#FF3601
  7. azkaban.default.servlet.path=/index
  8. web.resource.dir=/export/servers/azkaban/azkaban-web-server/web/
  9. default.timezone.id=Asia/Shanghai
  10. # Azkaban UserManager class
  11. user.manager.class=azkaban.user.XmlUserManager
  12. user.manager.xml.file=/export/servers/azkaban/azkaban-web-server/conf/azkaban-users.xml
  13. # Loader for projects
  14. executor.global.properties=/export/servers/azkaban/azkaban-web-server/conf/global.properties
  15. azkaban.project.dir=projects
  16. database.type=MariaDB
  17. mysql.port=3306
  18. mysql.host=192.168.8.201
  19. mysql.database=azkaban
  20. mysql.user=root
  21. mysql.password=123456
  22. mysql.numconnections=100
  23. h2.path=./h2
  24. h2.create.tables=true
  25. # Velocity dev mode
  26. velocity.dev.mode=false
  27. # Azkaban Jetty server properties.
  28. jetty.use.ssl=true
  29. jetty.maxThreads=25
  30. jetty.port=8081
  31. jetty.ssl.port=8443
  32. jetty.keystore=keystore
  33. jetty.password=123456
  34. jetty.keypassword=123456
  35. jetty.truststore=keystore
  36. jetty.trustpassword=123456
  37. # Azkaban Executor settings
  38. executor.port=12321
  39. # mail settings
  40. mail.sender=
  41. mail.host=
  42. # User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
  43. # enduser -> myazkabanhost:443 -> proxy -> localhost:8081
  44. # when this parameters set then these parameters are used to generate email links.
  45. # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
  46. # azkaban.webserver.external_hostname=myazkabanhost.com
  47. # azkaban.webserver.external_ssl_port=443
  48. # azkaban.webserver.external_port=8081
  49. job.failure.email=
  50. job.success.email=
  51. lockdown.create.projects=false
  52. cache.directory=cache
  53. # JMX stats
  54. jetty.connector.stats=true
  55. executor.connector.stats=true
  56. # Azkaban plugin settings
  57. azkaban.jobtype.plugin.dir=/export/servers/azkaban/azkaban-web-server/plugins/jobtypes

(4)配置azkaban-users.xml

  1. <azkaban-users>
  2. <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  3. <user password="metrics" roles="metrics" username="metrics"/>
  4. <user password="admin" roles="metrics,admin" username="admin"/>
  5. <role name="admin" permissions="ADMIN"/>
  6. <role name="metrics" permissions="METRICS"/>
  7. </azkaban-users>

(5)配置log4j.properties

  1. vi log4j.properties
  2. 具体配置如下
  3. log4j.rootLogger=INFO, Console
  4. log4j.logger.azkaban=INFO, server
  5. log4j.appender.server=org.apache.log4j.RollingFileAppender
  6. log4j.appender.server.layout=org.apache.log4j.PatternLayout
  7. log4j.appender.server.File=logs/azkaban-webserver.log
  8. log4j.appender.server.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS Z} %5p [%c{1}] [%t] [Azkaban] %m%n
  9. log4j.appender.server.MaxFileSize=102400MB
  10. log4j.appender.server.MaxBackupIndex=2
  11. log4j.appender.Console=org.apache.log4j.ConsoleAppender
  12. log4j.appender.Console.layout=org.apache.log4j.PatternLayout
  13. log4j.appender.Console.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS Z} %5p [%c{1}] [%t] [Azkaban] %m%n

4、azkaban-exec-server配置

  1. 创建子目录 logs
  2. mkdir logs
  3. 这里可以从刚配置好azkaban-web-server下将conf、plugins、extlib拷贝过来
  4. cd /export/servers/azkaban/azkaban-exec-server/
  5. cp -r /export/servers/azkaban/azkaban-web-server/conf/ ./
  6. cp -r /export/servers/azkaban/azkaban-web-server/plugins/ ./
  7. cp -r /export/servers/azkaban/azkaban-web-server/extlib/ ./
  8. 配置azkaban.properties
  9. cd /export/servers/azkaban/azkaban-exec-server/conf
  10. vi azkaban.properties
  11. 这里只需要将jetty移除,参照以下代码
  12. # Azkaban Jetty server properties.
  13. jetty.use.ssl=false
  14. jetty.maxThreads=25
  15. jetty.port=8081
  16. 然后在末尾添加以下代码
  17. # Azkaban Executor settings
  18. executor.port=12321
  19. executor.maxThreads=50
  20. executor.flow.threads=30
  21. azkaban.executor.runtimeProps.override.eager=false
  22. 完整配置如下
  23. # Azkaban Personalization Settings
  24. azkaban.name=Test
  25. azkaban.label=My Local Azkaban
  26. azkaban.color=#FF3601
  27. azkaban.default.servlet.path=/index
  28. web.resource.dir=/export/servers/azkaban/azkaban-web-server/web/
  29. default.timezone.id=Asia/Shanghai
  30. # Azkaban UserManager class
  31. user.manager.class=azkaban.user.XmlUserManager
  32. user.manager.xml.file=/export/servers/azkaban/azkaban-exec-server/conf/azkaban-users.xml
  33. # Loader for projects
  34. executor.global.properties=/export/servers/azkaban/azkaban-exec-server/conf/global.properties
  35. azkaban.project.dir=projects
  36. database.type=MariaDB
  37. mysql.port=3306
  38. mysql.host=localhost
  39. mysql.database=azkaban
  40. mysql.user=root
  41. mysql.password=123456
  42. mysql.numconnections=100
  43. # Velocity dev mode
  44. velocity.dev.mode=false
  45. # Azkaban Jetty server properties.
  46. jetty.use.ssl=false
  47. jetty.maxThreads=25
  48. jetty.port=8081
  49. # Azkaban Executor settings
  50. executor.port=12321
  51. # mail settings
  52. mail.sender=
  53. mail.host=
  54. # User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
  55. # enduser -> myazkabanhost:443 -> proxy -> localhost:8081
  56. # when this parameters set then these parameters are used to generate email links.
  57. # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
  58. # azkaban.webserver.external_hostname=myazkabanhost.com
  59. # azkaban.webserver.external_ssl_port=443
  60. # azkaban.webserver.external_port=8081
  61. job.failure.email=
  62. job.success.email=
  63. lockdown.create.projects=false
  64. cache.directory=cache
  65. # JMX stats
  66. jetty.connector.stats=true
  67. executor.connector.stats=true
  68. # Azkaban plugin settings
  69. azkaban.jobtype.plugin.dir=/export/servers/azkaban/azkaban-exec-server/plugins/jobtypes
  70. # Azkaban Executor settings
  71. executor.port=12321
  72. executor.maxThreads=50
  73. executor.flow.threads=30
  74. azkaban.executor.runtimeProps.override.eager=false

5、Azkzban启动测试

  1. 启动azkaban-exec-server
  2. cd /export/servers/azkaban/azkaban-exec-server
  3. 启动
  4. bin/start-exec.sh
  5. 关闭
  6. bin/shutdown-exec.sh
  7. 启动azkaban-web-server
  8. cd /export/servers/azkaban/azkaban-web-server
  9. 启动
  10. bin/start-web.sh
  11. 关闭
  12. bin/shutdown-web.sh
  13. 访问Azkaban UI
  14. https://localhost:8443/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/559990
推荐阅读
相关标签
  

闽ICP备14008679号

        
cppcmd=keepalive&