ubuntu 18.04安装tomcat,zookeeper,kafka,hadoop,MySQL,maxwell

发布于:2025-04-17 ⋅ 阅读:(33) ⋅ 点赞:(0)

事情是这样的,因为昨天发现我用的ubuntu16.04官方不维护了,以及之前就觉得不是很好用,于是升级到了18.04。如图:
在这里插入图片描述
但是!由于为备份升级前忘记关闭服务,上面装好的东西所剩无几。
于是我重装了。。。

如何启动

1. Java 环境(JDK)

你的系统已安装 jdk1.8.0_371,确保环境变量已配置:

export JAVA_HOME=/home/zhangxuanyu/jdk1.8.0_371
export PATH=$JAVA_HOME/bin:$PATH

验证:

java -version  
结果:
zhangxuanyu@ubuntu:~$ java -version
java version "1.8.0_371"

2. Apache Tomcat

(1)解压并启动

cd ~
tar -xzf apache-tomcat-8.5.100-linux.tar.gz  # 如果未解压
cd apache-tomcat-8.5.100/bin
./startup.sh  # 启动

(2)验证

curl http://localhost:8080  # 或浏览器访问

(3)停止

./shutdown.sh

3. ZooKeeper

(1)解压并配置

cd ~
tar -xzf zookeeper-3.4.14.tar.gz
cd zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg  # 创建默认配置

(2)启动

cd ../bin
./zkServer.sh start  # 启动
结果:
ZooKeeper JMX enabled by default
Using config: /home/zhangxuanyu/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

(3)验证

./zkCli.sh  # 连接本地 ZooKeeper

(4)停止

./zkServer.sh stop
结果:
ZooKeeper JMX enabled by default
Using config: /home/zhangxuanyu/zookeeper-3.4.14/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

4. Kafka

(1)解压并启动

cd ~
tar -xzf kafka_2.12-3.3.2.tgz
#先启动zookeeper
cd kafka_2.12-3.3.2
bin/kafka-server-start.sh config/server.properties

(2)验证

ps aux | grep kafka   #检查进程

(3)停止

bin/kafka-server-stop.sh
bin/zookeeper-server-stop.sh

5. Hadoop

以下是 Ubuntu 18.04 上安装 Hadoop 3.3.5 的详细步骤(基于已有的 hadoop-3.3.5.tar.gz 安装包):


1. 环境准备

安装 Java

Hadoop 依赖 Java 8/11(推荐 OpenJDK 8):

sudo apt update
sudo apt install openjdk-8-jdk -y

# 验证安装
java -version  # 应显示 "openjdk version 1.8.0_xxx"
配置 SSH 免密登录

Hadoop 本地模式需要 SSH 无密码访问:

sudo apt install openssh-server -y
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa  # 生成密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# 测试免密登录
ssh localhost  # 首次需输入yes,之后应直接进入
exit          # 退出SSH会话



终极测试是否ok:


zhangxuanyu@ubuntu:~$ ssh localhost "echo ‘SSH免密登录成功!’"结果:

ssh localhost "echo 'SSH免密登录成功'"
SSH免密登录成功

2. 安装 Hadoop

解压安装包
cd ~
tar -xzvf hadoop-3.3.5.tar.gz  # 解压到当前目录
mv hadoop-3.3.5 hadoop         # 重命名(可选)
配置环境变量

编辑 ~/.bashrc

nano ~/.bashrc

在文件末尾添加:

# Java Environment
export JAVA_HOME=/usr/lib/jnm/jdk1.8.0_371  
export PATH=$JAVA_HOME/bin:$PATH

# Hadoop Environment
export HADOOP_HOME=/home/zhangxuanyu/hadoop  
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

激活配置:

source ~/.bashrc

检查是否生效:

zhangxuanyu@ubuntu:~$ echo $HADOOP_HOME
结果:
/home/zhangxuanyu/hadoop
zhangxuanyu@ubuntu:~$ hadoop version
结果:
Hadoop 3.3.5

3. 配置 Hadoop

修改核心配置文件

进入配置目录:

cd ~/hadoop/etc/hadoop
1. hadoop-env.sh

设置 Java 路径:

echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> hadoop-env.sh
2. core-site.xml

配置 HDFS 地址和临时目录:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/tmp/hadoop-tmp</value>
    </property>
</configuration>

检查:

zhangxuanyu@ubuntu:~/hadoop/etc/hadoop$ cat ~/hadoop/etc/hadoop/core-site.xml | grep -A 1 "hadoop.tmp.dir"
结果:
        <name>hadoop.tmp.dir</name>
        <value>/tmp/hadoop-tmp</value>
3. hdfs-site.xml

配置副本数(单机模式设为1):

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/tmp/hadoop/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/tmp/hadoop/datanode</value>
    </property>
</configuration>

检查:

zhangxuanyu@ubuntu:~/hadoop/etc/hadoop$ hdfs getconf -confKey dfs.replication  
1
zhangxuanyu@ubuntu:~/hadoop/etc/hadoop$ hdfs getconf -confKey dfs.namenode.name.dir  
/tmp/hadoop/namenode
zhangxuanyu@ubuntu:~/hadoop/etc/hadoop$ hdfs getconf -confKey dfs.datanode.data.dir 
/tmp/hadoop/datanode
4. mapred-site.xml

配置使用 YARN:

<configuration>
    <!-- 核心配置:声明使用YARN框架 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

    <!-- 临时目录设置(避免使用默认/tmp) -->
    <property>
        <name>mapreduce.cluster.temp.dir</name>
        <value>/opt/hadoop/tmp/mapred</value>
    </property>

    <!-- 内存资源限制(根据机器配置调整) -->
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>1024</value>  <!-- 每个Map任务的内存 -->
    </property>
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>2048</value>  <!-- 每个Reduce任务的内存 -->
    </property>

    <!-- JVM堆内存限制(需小于上述memory.mb) -->
    <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xmx768m</value>  <!-- Map任务的JVM堆内存 -->
    </property>
    <property>
        <name>mapreduce.reduce.java.opts</name>
        <value>-Xmx1536m</value> <!-- Reduce任务的JVM堆内存 -->
    </property>

    <!-- 任务重试策略 -->
    <property>
        <name>mapreduce.map.maxattempts</name>
        <value>4</value>  <!-- Map任务最大重试次数 -->
    </property>
    <property>
        <name>mapreduce.reduce.maxattempts</name>
        <value>4</value>  <!-- Reduce任务最大重试次数 -->
    </property>

    <!-- 数据本地化优化 -->
    <property>
        <name>mapreduce.tasktracker.prefetch.local</name>
        <value>true</value>  <!-- 优先在数据所在节点执行任务 -->
    </property>
</configuration>
5. yarn-site.xml
<configuration>
    <!-- 你已存在的配置 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 新增关键配置 ▼▼▼ -->
    
    <!-- 1. 指定Shuffle处理类 -->
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>

    <!-- 2. 定义ResourceManager主机 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>ubuntu</value> <!-- 替换为你的主节点主机名 -->
    </property>

    <!-- 3. 内存资源池配置 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>8192</value> <!-- 建议=物理内存*0.8 -->
    </property>

    <!-- 4. 关闭虚拟内存检查(避免任务被误杀) -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

    <!-- 5. 启用日志聚合 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
</configuration>

4. 初始化并启动 Hadoop

格式化 HDFS
hdfs namenode -format  # 仅首次运行需要

成功的标准:

2025-04-13 13:40:23,513 INFO common.Storage: Storage directory /tmp/hadoop/namenode has been successfully formatted.

启动 HDFS 和 YARN
start-dfs.sh      # 启动HDFS
start-yarn.sh     # 启动YARN
验证服务
  • 检查进程

    jps
    

hadoop 启动成功的标志:
在这里插入图片描述

85201 SecondaryNameNode
84900 DataNode
86695 Jps
86264 ResourceManager
84731 NameNode
86447 NodeManager

  • 访问 Web UI

    • HDFS: http://localhost:9870
    • YARN: http://localhost:8088

5. 运行测试任务

创建 HDFS 目录
hdfs dfs -mkdir /input
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input  # 上传测试文件
运行 MapReduce 示例
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep /input /output 'dfs[a-z.]+'
查看结果
hdfs dfs -cat /output/*

6. 停止 Hadoop

stop-yarn.sh
stop-dfs.sh

常见问题解决

  1. 端口冲突

    • 检查 900098708088 端口是否被占用:

      sudo netstat -tulnp | grep -E '9000|9870|8088'
      
  2. 权限问题

    • 如果遇到权限错误,尝试:

      sudo chown -R $USER:$USER /tmp/hadoop*
      
  3. 日志排查

    • 查看日志文件:

      tail -n 100 ~/hadoop/logs/*.log
      

6.安装MySQL

Ubuntu 18.04 上安装 MySQL 的完整步骤如下(适用于 MySQL 5.7,Ubuntu 18.04 默认版本):


方法 1:使用 APT 安装(推荐)

1. 更新软件包列表

sudo apt update

2. 安装 MySQL Server

sudo apt install mysql-server -y
  • 这会安装 MySQL 5.7(Ubuntu 18.04 默认版本)。

3. 运行安全配置向导

sudo mysql_secure_installation
  • 按提示操作
    • 设置 root 密码(我设置的My@Secure123)
    • 移除匿名用户
    • 禁止远程 root 登录
    • 删除测试数据库
    • 立即刷新权限

4. 检查 MySQL 状态

sudo systemctl status mysql
  • 如果显示 active (running),说明安装成功。

进入:

sudo mysql -u root -p

输入密码后:

在这里插入图片描述

为了后面的Maxwell,需要修改mysql配置

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]区块末尾下面加:

server_id                  = 12345
log_bin                    = /var/log/mysql/mysql-bin.log
binlog_format              = ROW
binlog_row_image           = FULL
expire_logs_days           = 10
max_binlog_size            = 100M

再重启Mysql服务:

sudo systemctl restart mysql

7. Maxwell(MySQL Binlog 监听)

(1)解压并配置

cd ~
tar -xzf maxwell-1.29.2.tar.gz
cd maxwell-1.29.2

需修改 config.properties

nano config.properties

修改为:

producer=kafka
kafka.bootstrap.servers=localhost:9092
# mysql login info
host=localhost
user=root   #mysql用户
password=My@Secure123  #mysql密码

(2)启动

bin/maxwell --config config.properties &

在这里插入图片描述

(3)验证

tail -f logs/maxwell.log  # 查看日志

总结

软件 启动命令 停止命令
Tomcat ./startup.sh ./shutdown.sh
Nginx ~/nginx/sbin/nginx ~/nginx/sbin/nginx -s stop
ZooKeeper ./zkServer.sh start ./zkServer.sh stop
Kafka ./kafka-server-start.sh ... ./kafka-server-stop.sh
Hadoop sbin/start-dfs.sh + start-yarn.sh sbin/stop-dfs.sh + stop-yarn.sh
Maxwell bin/maxwell --config ... kill 对应进程

网站公告

今日签到

点亮在社区的每一天
去签到