从0开始搭建分布式Hadoop+Spark+Flink+Hbase+Kafka+Hive+Flume+Zookeeper+Mysql等

        该博客由上海第二工业大学数据科学与大数据技术专业师生共同探索、共同打造,期间踩坑无数,旨在为后续教学工作提供参考,为其他有需要的同行提供便利。

一、写在前面——一些工具

        一些实用工具附链接

  1. Vm17 百度网盘链接   许可证可以到某宝买一个,几块钱 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=O83Ahttps://pan.baidu.com/s/17D18OCBCe84iOb-8w64PbQ?pwd=1234
  2. centos7  https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.isoicon-default.png?t=O83Ahttps://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso
  3. Xshell+Xftp家庭/学校免费 - NetSarang Websiteicon-default.png?t=O83Ahttps://www.xshell.com/zh/free-for-home-school/

     4.一些安装包,下载速度过慢的话可以到百度网盘下载,会实时更新
        https://pan.baidu.com/s/1M6eWjWHcWFtOY757-Ufo_A?pwd=o7ps

    5.阿里云提供的apache安装包下载,速度快一些

apache安装包下载_开源镜像站-阿里云apache安装包是阿里云官方提供的开源镜像免费下载服务,每天下载量过亿,阿里巴巴开源镜像站为包含apache安装包的几百个操作系统镜像和依赖包镜像进行免费CDN加速,更新频率高、稳定安全。icon-default.png?t=O83Ahttps://mirrors.aliyun.com/apache/?spm=a2c6h.25603864.0.0.77fc2da0VRY2KE

二、安装及配置虚拟机+Xshell

1.安装Centos7及基本配置

1.vm17下载好以后一直下一步安装最后输入许可证运行即可

2.修改虚拟机网络,按如下图

3.修改好以后新建一台虚拟机

    

4.选择之前下好的系统镜像文件

5.设置名称及目录(建议设成hadoop01)

6.一直下一步,创建完成后运行虚拟机(windows11系统存在部分蓝屏情况,百度解决吧)

7.选择第二个,安装系统

8.选择中文简体,然后下一步,哪里亮了点哪里,无需进行修改

9.这里设置密码为root

10.进入系统

11.账号为root,密码为root,进入系统

12.配置静态ip

#配置静态ip,进入系统后执行

vi /etc/sysconfig/network-scripts/ifcfg-ens33


#将里面的内容全部删除,替换为

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=dccf9ab3-f2fe-435b-88b0-ed33668ce2a5
DEVICE=ens33
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.100.101
GATEWAY=192.168.100.2
DNS1=114.114.114.114
DNS2=8.8.8.8


#保存退出,重启网卡
systemctl restart network


#重启后测试网络

ping baidu.com

#确保网络没问题继续下面步骤

13.修改yum源

 国内除阿里外其他镜像站都不再提供yum源,yum install wget如遇错误,参考以下步骤

 下载yum源替换文件https://mirrors.aliyun.com/repo/Centos-7.repo

  修改文件名称如图,并将原目录下的文件替换

  执行 yum clean all  ,问题解决

14.安装一些工具

yum install vim
yum install wget
yum install net-tools

15.禁用防火墙       

systemctl stop firewalld
systemctl disable firewalld

2.克隆虚拟机

按如下图,克隆两台一模一样的虚拟机,分别命名为hadoop02,hadoop03

3.修改IP及hostname

#修改IP,分别打开克隆好的hadoop02,hadoop03,执行

vim /etc/sysconfig/network-scripts/ifcfg-ens33

#分别修改其中IPADDR最后三位为102 103
#保存并退出,重启网卡

#修改hostname,修改三台设备的hostname
vim /etc/hostname

#在下方插入一行,分别为hadoop01 hadoop02 hadoop03


#保存退出,执行reboot,重启三台机器

后续操作在Xshell进行

4.Xshell连接三台机器

1.新建会话,输入名称为hadoop01 hadoop02 hadoop03 以及对应ip

2.连接三台机器,输入账号密码均为root

3.这里有一个小技巧,可以在一个窗口输入命令,三个窗口同时执行,方便后续操作

5.配置host

#配置hosts

vim /etc/hosts

#文件下方插入

192.168.100.101 hadoop01
192.168.100.102 hadoop02
192.168.100.103 hadoop03

6.配置及分发公钥

#选择一个窗口,输入命令,三台机器同时操作

#生成公钥,执行以下命令一直回车即可
ssh-keygen -t rsa

#分发公钥,执行以下命令,期间需要输入一次密码,密码为root
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

7.测试

#任意一台机器上可以免密连接任意一台机器即可

ssh hadoop01
ssh hadoop02
ssh hadoop03

#连接ssh后可通过Ctrl+D退出连接

8.创建目录

三台机器同时操作

#创建目录,三台机器同时操作

cd /
mkdir bigdata

至此,三台机器联通,基本配置完成,以上步骤是通过回忆写出来的,如有遗漏可以自行百度,也欢迎在评论区共同完善。

三、Anconda+JDK

1.安装Anconda 

1.下载链接如下

https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.shicon-default.png?t=O83Ahttps://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh

2.下载完成后通过Xftp,拖拽至三台虚拟机

以下步骤在三台机器同时执行,Xshell连接三台机器后可同时操作

#在/bigdata目录下安装

cd /bigdata 

#给刚刚下载的文件赋执行权限

chmod +x ./Anaconda3-2024.06-1-Linux-x86_64.sh

#运行安装文件

./Anaconda3-2024.06-1-Linux-x86_64.sh

#出现下方选择安装目录,默认为/root/anaconda3,我们这里改为/bigdata/anaconda

#安装完成后配置一下变量

echo 'export PATH="/bigdata/anaconda/bin:$PATH"' >> ~/.bashrc

vim ~/.bashrc
#在末尾插入

export CONDA_ENVS_PATH=/bigdata/anaconda/envs

#刷新

source ~/.bashrc

#创建python3.8

conda create --name py38 python=3.8

#切换至py38

conda activate py38

python --version #验证版本

另外两台机器重复上述操作   

至此,anaconda+python3.8配置完成

2.配置jupyter

jupyter只在hadoop01配置即可

#配置jupyter,仅在hadoop01配置即可

#进入py38环境
conda activate py38

#安装jupyter

pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple/

#生成jupyter配置文件
jupyter notebook --generate-config

#设置jupyter密码
jupyter notebook password

#这里密码设置成root,重复输入两次

#修改jupyter配置文件
vim ~/.jupyter/jupyter_notebook_config.py

#找到以下行并修改,需要把第一个字符#删掉
c.ServerApp.ip = '*'
c.ServerApp.open_browser = False
c.ServerApp.port = 8888


#保存退出
#后台运行
cd /bigdata
nohup jupyter notebook --allow-root&

3.安装JDK

#进入目录
cd /bigdata

#下载jdk
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

#解压缩
tar -zxvf jdk-8u202-linux-x64.tar.gz

#修改文件名
mv jdk1.8.0_202/ jdk1.8

#配置环境变量
vim /etc/profile
#在文件头部插入
export JAVA_HOME=/bigdata/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

#保存退出并刷新
source /etc/profile

#查看版本
java -version

另外两台机器重复上述操作,如果三台机器同时操作则不需要再重复。

至此,jdk安装完成

四、Hadoop

1.下载解压及基础配置

#下载hadoop3.3.6,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
cd /bigdata
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

#解压
tar -zxvf hadoop-3.3.6.tar.gz

#改名并进入目录
mv hadoop-3.3.6 hadoop
cd hadoop

#创建pids、logs、namenode、datanode
mkdir logs
mkdir pids
mkdir namenode
mkdir datanode
mkdir nm-local-dir
mkdir nm-log-dir
mkdir nm-remote-app-log-dir

2.修改etc/hadoop/hadoop-env.sh文件

#修改etc/hadoop/hadoop-env.sh文件
vim /bigdata/hadoop/etc/hadoop/hadoop-env.sh

#直接在头部添加

export JAVA_HOME=/bigdata/jdk1.8
export HADOOP_PID_DIR=/bigdata/hadoop/pids
export HADOOP_LOG_DIR=/bigdata/hadoop/logs
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


3.修改etc/hadoop/core-site.xml

#修改etc/hadoop/core-site.xml

vim /bigdata/hadoop/etc/hadoop/core-site.xml

#在<configuration>标签中间加入

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
    </property>
    
    <property>
        <name>io.file.buffer.size</name>                                
        <value>131072</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
        <description>Hadoop的超级用户root能代理的节点</description>
    </property>

    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
        <description>Hadoop的超级用户root能代理的用户组</description>
    </property>

4.修改etc/hadoop/hdfs-site.xml

#修改etc/hadoop/hdfs-site.xml
vim /bigdata/hadoop/etc/hadoop/hdfs-site.xml

#在<configuration>标签中间加入

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

    <property>
        <name>dfs.namenode.name.dir</name>                              
        <value>/bigdata/hadoop/namenode</value>
    </property>
        
    <property>
        <name>dfs.blocksize</name>                                      
        <value>268435456</value>
    </property>

    <property>
        <name>dfs.namenode.handler.count</name>                 
        <value>100</value>
    </property>
    
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/bigdata/hadoop/datanode</value>
    </property>

5.修改etc/hadoop/mapred-site.xml

#修改etc/hadoop/mapred-site.xml
vim /bigdata/hadoop/etc/hadoop/mapred-site.xml

#在<configuration>标签中间加入

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

 6.修改etc/hadoop/yarn-site.xml

#修改etc/hadoop/yarn-site.xml
vim /bigdata/hadoop/etc/hadoop/yarn-site.xml

#在<configuration>标签中间加入

   <property>
        <!--NodeManager获取数据的方式-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--指定YARN集群的管理者(ResourceManager)的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property>



7.修改workers文件

#修改workers文件
vim /bigdata/hadoop/etc/hadoop/workers

#将其中全部内容修改为
hadoop02
hadoop03

8.分发

分发(如果只在hadoop01上进行配置则需要分发,如果三台机器同时配置则不需要再分发)

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp -r /bigdata/hadoop root@hadoop02:/bigdata
scp -r /bigdata/hadoop root@hadoop03:/bigdata

分发profile并在各台机器刷新

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp /etc/profile root@hadoop02:/etc/profile
scp /etc/profile root@hadoop03:/etc/profile


#分发完成后每台机器都要执行
source /etc/profile

9.添加环境变量

#添加环境变量
vim /etc/profile

#加入
export HADOOP_HOME=/bigdata/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

#保存退出并刷新
source /etc/profile

10.HDFS初始化

仅在hadoop01执行

hdfs namenode -format

11.启动HDFS

仅在hadoop01执行

start-dfs.sh	

成功启动

12.启动yarn

仅在hadoop01执行

start-yarn.sh

成功启动

至此,hadoop配置完成

五、Zookeeper

 1.下载解压及基础配置

#下载hadoop3.3.6,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
cd /bigdata
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

#解压
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz

#改名并进入目录
mv apache-zookeeper-3.8.4-bin zookeeper
cd zookeeper

#创建data
mkdir data


#修改环境变量
vim /etc/profile
#加入
export ZOOKEEPER_HOME=/bigdata/zookeeper
PATH=$ZOOKEEPER_HOME/bin:$PATH


#保存并刷新
source /etc/profile

 2.配置zoo.cfg

#配置zoo.cfg
mv /bigdata/zookeeper/conf/zoo_sample.cfg /bigdata/zookeeper/conf/zoo.cfg
vim /bigdata/zookeeper/conf/zoo.cfg

#修改
dataDir=/bigdata/zookeeper/data

#最后一行添加
server.0=hadoop01:2888:3888
server.1=hadoop02:2888:3888
server.2=hadoop03:2888:3888

        zoo.cfg配置解释

tickTime:	以毫秒为单位。是 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔。
dataDir: Zookeeper 保存数据的目录。默认情况下,Zookeeper 会将数据的日志文件也保存在这个目录。
clientPort:客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
initLimit:配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。
syncLimit:标识 Leader 与 Follower 之间发送消息、请求和应答的时间长度,最长不能超过多少个 tickTime 的时间长度。
server.A = B:C:D : 
        A表示这个是几号服务器
        B 是服务器的 ip 地址
        C 是这个服务器与集群中的 Leader 服务器交换信息的端口;
        D 是若集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader

3.分发

如果三台机器同时配置则无需分发

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp -r /bigdata/zookeeper root@hadoop02:/bigdata
scp -r /bigdata/zookeeper root@hadoop03:/bigdata

分发profile并在各台机器刷新

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp /etc/profile root@hadoop02:/etc/profile
scp /etc/profile root@hadoop03:/etc/profile


#分发完成后每台机器都要执行
source /etc/profile

4.配置myid

#进入刚刚创建的data文件夹
cd /bigdata/zookeeper/data
vim myid
#这里myid中的文件内容为刚刚配置的server.0 .1 .2,hadoop01对应myid为0,hadoop02对应myid为1,以此类推,每台机器都需要配置

#修改好以后,保存退出

5.启动

zkServer.sh start

6.状态检查

zkServer.sh status

至此,zookeeper配置完成

六、Spark+Scala+Pyspark

1.安装配置Scala        

#下载scala-2.12.0,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
cd /bigdata
wget https://downloads.lightbend.com/scala/2.12.0/scala-2.12.0.tgz

#解压
tar -zxvf scala-2.12.0.tgz

#改名
mv scala-2.12.0 scala


#配置环境变量
vim /etc/profile
#插入
export SCALA_HOME=/bigdata/scala
export PATH=$SCALA_HOME/bin:$PATH

#刷新
source /etc/profile


#验证
scala -version

2.安装Spark

1.下载安装及基础配置

#下载,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
cd /bigdata
wget https://archive.apache.org/dist/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz

#解压
tar -zxvf spark-3.4.3-bin-hadoop3.tgz

#改名
mv spark-3.4.3-bin-hadoop3 spark


#配置环境变量
vim /etc/profile
#插入
export SPARK_HOME=/bigdata/spark
export PATH=$PATH:$SPARK_HOME/bin
export PYSPARK_PYTHON=/bigdata/anaconda/envs/py38/bin/python

#刷新
source /etc/profile

2.local部署模式 

#local部署模式 spark-env.sh,复制local部署模式 spark-env.sh.template
cd /bigdata/spark/conf

cp spark-env.sh.template spark-env.sh

#配置spark-env.sh

vim spark-env.sh

#插入
export JAVA_HOME=/bigdata/jdk1.8
export SCALA_HOME=/bigdata/scala
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_HOME=/bigdata/spark
export HADOOP_HOME=/bigdata/hadoop
export HADOOP_CONF_DIR=/bigdata/hadoop
export YARN_CONF_DIR=/bigdata/hadoop/etc/hadoop

 3.yarn部署模式 

#yarn部署模式 – spark-defaults.conf,复制spark-defaults.conf.template
cd /bigdata/spark/conf

cp spark-defaults.conf.template spark-defaults.conf

#配置spark-defaults.conf

vim spark-defaults.conf

#插入
spark.eventLog.enabled          true
spark.eventLog.dir              hdfs://hadoop01:9000/user/spark/directory
spark.pyspark.python            /bigdata/anaconda/envs/py38/bin/python3

4.修改workers

#配置works,复制 workers.template
cd /bigdata/spark/conf

cp workers.template workers

#配置workers

vim workers

#删除原本内容插入
hadoop01
hadoop02
hadoop03

#保存退出

5.上传jar包

#在hdfs创建文件夹
hdfs dfs -mkdir -p /user/spark/directory

#上传spark中的jar包
hdfs dfs -put /bigdata/spark/jars/* /user/spark/directory

3.分发

分发Scala和Spark(如果多台机器一起配置则不需要分发)

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp -r /bigdata/scala root@hadoop02:/bigdata
scp -r /bigdata/scala root@hadoop03:/bigdata
scp -r /bigdata/spark root@hadoop02:/bigdata
scp -r /bigdata/spark root@hadoop03:/bigdata

分发profile并在各台机器刷新

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp /etc/profile root@hadoop02:/etc/profile
scp /etc/profile root@hadoop03:/etc/profile


#分发完成后每台机器都要执行
source /etc/profile

4.启动Spark

sbin/start-all.sh

#jps查看进程,worker存在

8081端口访问正常

5.测试Spark

#hadoop01上执行
spark-submit --master yarn --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark-examples_2.12-3.4.3.jar 

yarn中可以看到测试成功

6.测试PySpark

#在hadoop01上安装相关库
pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple/
#打开jupyter,访问http://192.168.100.101:8888/tree
#新建一个workspace文件夹存放各类代码
#新建一个ipynb,粘贴以下代码直接运行

测试通过没有问题

至此,Spark+Scala+PySpark配置完成

七、Hbase 

 1.下载解压及基础配置

#下载hbase-2.5.10,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机

cd /bigdata
wget https://mirrors.aliyun.com/apache/hbase/2.5.10/hbase-2.5.10-bin.tar.gz

#解压
tar -zxvf hbase-2.5.10.tar.gz

#改名并进入目录
mv hbase-2.5.10 habse
cd hbase



#修改环境变量
vim /etc/profile
#加入
export HBASE_HOME=/bigdata/hbase
export PATH=$PATH:$HBASE_HOME/bin



#保存并刷新
source /etc/profile

 2.配置hbase-env.sh

#配置hbase-env.sh

vim /bigdata/hbase/conf/hbase-env.sh

#文件开头加入

export HBASE_MANAGES_ZK=false
export JAVA_HOME=/bigdata/jdk1.8
export HBASE_CLASSPATH=/bigdata/hadoop/etc/hadoop
export HADOOP_HOME=/bigdata/hadoop
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

 3.配置hbase-site.xml

#配置hbase-site.xml,
vim /bigdata/hbase/conf/hbase-site.xml

#将<configuration>标签内的内容替换为

<property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop01:9000/hbase</value>
        <description>这个目录是regin server的共享目录,用来持久化Hbase</description>
</property>
<property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
        <description>Hbase的运行模式。false是单机模式,true是分布式模式</description>
</property>
<property>
        <name>hbase.master</name>
        <value>hdfs://hadoop01:60000</value>
        <description>hmaster port</description>
</property>

<property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop01,hadoop02,hadoop03</value>
        <description>zookeeper集群的URL配置,多个host中ian用逗号(,)分割</description>
</property>

<property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/bigdata/zookeeper/data</value>
        <description>zookeepe的zooconf中的配置,快照的存储位置</description>
</property>

<property>
 <name>hbase.zookeeper.property.clientPort</name>
  <value>2181</value>
</property>
<property>
  <name>hbase.master.info.port</name>
  <value>60010</value>
</property>


#修改好以后,保存退出

4.配置regionservers

#配置regionservers

vim /bigdata/hbase/conf/regionservers

#删除localhost,替换为


hadoop02
hadoop03

 5.拷贝Hadoop配置

#拷贝Hadoop配置
cp /bigdata/hadoop/etc/hadoop/hdfs-site.xml /bigdata/hbase/conf
cp /bigdata/hadoop/etc/hadoop/core-site.xml /bigdata/hbase/conf

6.分发

如果三台机器同时配置则无需分发

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp -r /bigdata/hbase root@hadoop02:/bigdata
scp -r /bigdata/hbase root@hadoop03:/bigdata

分发profile并在各台机器刷新

#如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
#分发命令参考下方
scp /etc/profile root@hadoop02:/etc/profile
scp /etc/profile root@hadoop03:/etc/profile


#分发完成后每台机器都要执行
source /etc/profile

7.启动

#在hadoop01
/bigdata/hbase/bin/start-hbase.sh

8.状态检查

jps

#hadoop01上增加HMaster进程
#hadoop02,hadoop03上增加HRegionServer进程

60010端口正常访问

9.测试

进入hbase shell,创建表、插入数据、查询(在hadoop01),如下图

至此,hbase配置完成

八、Hive+MySQL

1.MySQL

1.安装

#进入bigdata文件夹

cd /bigdata

#依次执行以下命令,三台机器同步执行,期间需要输入两个y

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install mysql-server

2.启动

systemctl start mysqld

3.修改my.cnf

#修改my.cnf
vim /etc/my.cnf

#在最后加入

skip-grant-tables
[client]
port=3306
socket=/var/lib/mysql/mysql.sock



#重启mysql服务
systemctl restart mysqld

4.配置远程登陆

#直接执行mysql,然后依次执行以下指令

flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
flush privileges;
use mysql;
update user set Host='%' where User='root';
flush privileges;

5.连接验证

正常连接,没有问题

2.Hive

1.下载安装及基本配置

#下载apache-hive-3.1.3,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机

cd /bigdata
wget https://mirrors.aliyun.com/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

#解压
tar -zxvf apache-hive-3.1.3-bin.tar.gz

#改名并进入目录
mv apache-hive-3.1.3-bin hive
cd hive

#配置环境变量
vim /etc/profile

#加入
export HADOOP_HOME=/bigdata/hadoop
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
export HIVE_HOME=/bigdata/hive
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export JAVA_HOME=/bigdata/jdk1.8
export PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH


#保存退出并刷新

source /etc/profile

2.修改hive-env.sh

#配置hive-env.sh
#先复制一份hive-env.sh.template
cd /bigdata/hive/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh

#加入以下内容
export JAVA_HOME=/bigdata/jdk1.8
export HIVE_HOME=/bigdata/hive
export HIVE_CONF_DIR=/bigdata/hive/conf
export HIVE_AUX_JARS_PATH=/bigdata/hive/lib
export HADOOP_HOME=/bigdata/hadoop

#保存退出

3.修改hive-site.xml

#先复制一份配置文件
cd /bigdata/hive/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml 

#这一部分比较啰嗦,可以按每个<property>标签中的<name>标签来寻找,然后修改<value>标签中的值,
#下面提供对应的<name><value>的值,一一对应,逐一修改


        <name>                                       <value>
hive.exec.local.scratchdir                      /bigdata/hive/tmp/
hive.downloaded.resources.dir                   /bigdata/hive/tmp/${hive.session.id}_resources
hive.querylog.location                          /bigdata/hive/tmp/
hive.server2.logging.operation.log.location     /bigdata/hive/tmp/root/operation_logs
javax.jdo.option.ConnectionDriverName           com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL                  jdbc:mysql://192.168.100.101:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8
javax.jdo.option.ConnectionUserName             root
javax.jdo.option.ConnectionPassword             root

这里出了一个小插曲,在6步初始化时报了一个hive-site.xml第3215行的错,查看以后发现是<description>标签中有一个&符号,删掉即可,或者干脆把<description></description>整个标签及里面的内容都删掉。

4.添加JDBC驱动jar包

#mysql-connector-java-5.1.38-bin.jar ,到文章开始一.4百度网盘链接下载
#下载完成后,移动到
/bigdata/hive/lib       目录下

5.在HDFS上创建目录

#由于在该配置文件中有如下两个配置项注明了hive在HDFS中数据存储的目录,因此我们需要在HDFS上手动创建并赋权限,也就是需要在hdfs上创建/tmp/hive 和/user/hive/warehouse
#在hadoop01上执行
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod -R 777 /user/hive/warehouse
hadoop fs -mkdir -p /tmp/hive/ 
hadoop fs -chmod -R 777 /tmp/hive 

6.对hive元数据初始化

/bigdata/hive/bin/schematool -initSchema -dbType mysql

7.测试

#执行以下命令,进入hive交互模式

/bigdata/hive/bin/hive

根据以下指令测试hive,图示显示测试没问题

至此,hive配置完成

九、Kafka

1.下载安装及基本配置

#下载kafka_2.13-3.7.1,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机

cd /bigdata
wget https://mirrors.aliyun.com/apache/kafka/3.7.1/kafka_2.13-3.7.1.tgz

#解压
tar -zxvf kafka_2.13-3.7.1.tar.gz

#改名并进入目录
mv kafka_2.13-3.7.1 kafka
cd kafka

#创建日志目录
mkdir logs

#配置环境变量
vim /etc/profile

#加入
export KAFKA_HOME=/bigdata/kafka
export PATH=$PATH:$KAFKA_HOME/bin

#保存退出并刷新

source /etc/profile

2.修改server.properties

#配置server.properties
cd /bigdata/kafka/config

vim server.properties

#修改以下内容
broker.id=0               #默认都为0,将hadoop01保持为broker.id=0,hadoop02修改为broker.id=1,hadoop03修改为broker.id=2

log.dirs=/bigdata/kafka/logs          #log.dirs路径修改为/bigdata/kafka/logs

zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka          #zookeeper.connect修改为 hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka

#保存退出

3.编写启动脚本

#因为启动kafka需要每台机器都执行命令,所以写一个脚本,只在hadoop01上运行即可

cd /bigdata

vim kf.sh

#插入以下内容 

#!/bin/bash

case $1 in
"start"){
        for host in hadoop01 hadoop02 hadoop03
        do
                echo "正在启动 $host Kafka 服务"
                ssh $host "source /etc/profile;kafka-server-start.sh -daemon /bigdata/kafka/config/server.properties"
        done
};;
"stop"){
        for host in hadoop01 hadoop02 hadoop03
        do
                echo "正在停止 $host Kafka 服务"
                ssh $host 'source /etc/profile;kafka-server-stop.sh stop'
        done
};;
*){
        echo "参数有误,请选择 【start】 或 【stop】!"
};;
esac



#保存并退出

#修改kf.sh执行权限

chmod 777 kf.sh


4.启动

#在hadoop01上执行
/bigdata/kf.sh

5.查看运行状态

#在hadoop01上进入zkCli

zkCli.sh

ls /


#结果如图,kafka正常启动

#另外两台机器通过jps查看Kafka进程正常

至此,kafka配置完成

十、Flume

1.下载安装及基本配置

#下载apache-flume-1.11.0-bin,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机

cd /bigdata
wget https://mirrors.aliyun.com/apache/flume/1.11.0/apache-flume-1.11.0-bin.tar.gz

#解压
tar -zxvf apache-flume-1.11.0-bin.tar.gz

#改名并进入目录
mv apache-flume-1.11.0-bin flume
cd flume



#配置环境变量
vim /etc/profile

#加入
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$PATH:$FLUME_HOME/bin


#保存退出并刷新

source /etc/profile

2.修改flume-env.sh

#配置flume-env.sh
cd /bigdata/flume/conf

#复制一份flume-env.sh

cp flume-env.sh.template flume-env.sh

vim flume-env.sh

#加入以下内容
export JAVA_HOME=/bigdata/jdk1.8

#保存退出

3.编写配置文件

#编写配置文件供测试用

cd /bigdata/flume/conf

vim hdfs-avro.conf

#插入以下内容 



# 定义这个agent的名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 配置源,用于监控文件
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /bigdata/flume/test/1.log
a1.sources.r1.channels = c1
# 配置接收器,用于HDFS
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://hadoop01:9000/flume/events/%y-%m-%d/%H-%M
a1.sinks.k1.hdfs.filePrefix = events-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.rollSize = 1024
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.channel = c1
# 配置通道,内存型
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 绑定源和接收器到通道
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1



#保存退出

4.测试

#在hadoop01上执行
cd /bigdata/flume

bin/flume-ng agent -c ./conf -f ./conf/hdfs-avro.conf -n a1 -Dflume.root.logger=INFO,console

这里界面会停止,并不是卡顿,需要重新开一个hadoop01的ssh链接。

#在/bigdata/flume下创建test文件夹

cd /bigdata/flume
mkdir test

vim 1.log
#保存并退出,这里1.log不需要有内容,保存即可



#向1.log中插入内容
echo 'hello'>>1.log


#发现HDFS有监控文件生成

至此,flume配置完成

十一、Flink+PyAlink

1.下载安装及基本配置

#下载flink-1.17.2-bin-scala_2.12,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机

cd /bigdata
wget https://mirrors.aliyun.com/apache/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz
#解压
tar -zxvf flink-1.17.2-bin-scala_2.12.tar

#改名并进入目录
mv flink-1.17.2-bin-scala_2.12 flink
cd flink



2.配置单节点模式、启动Cluster

#启动flink-cluster
/bigdata/flink/bin/start-cluster.sh

访问flink web界面,没有问题

3.配置yarn模式

#修改yarn-conf.yaml

cd /bigdata/flink/conf

vim yarn-conf.yaml

#修改以下内容,注意是修改,不是新增


jobmanager.rpc.address: hadoop01
jobmanager.rpc.port: 6123
jobmanager.bind-host: hadoop01
taskmanager.bind-host: hadoop01
taskmanager.host: hadoop01
rest.address: hadoop01
rest.port:8081
rest.bind-port: 8080-8090
rest.bind-address: 0.0.0.0


#保存退出


vim workers

#修改为
hadoop02
hadoop03

#保存退出

vim masters
#修改为
hadoop01

#保存退出

4.配置pyalink

#在所有机器上配置py3.6环境上
conda create -n py36 python=3.6

#安装完成后进入py36环境,

conda activate py36

#将py36内核添加至jupyter
pip install ipykernel
python -m ipykernel install --user --name "py36"


#安装pyalink
pip3 install pyalink --user -i https://mirrors.aliyun.com/pypi/simple --ignore-installed PyYAML

#切回py38环境

conda activate py38

5.测试

访问jupyter,将内核修改为py36,进行测试

from pyalink.alink import *
import pandas as pd
 
useLocalEnv(1)
 
 
df = pd.DataFrame(
    [
        [2009, 0.5],
        [2010, 9.36],
        [2011, 52.0],
        [2012, 191.0],
        [2013, 350.0],
        [2014, 571.0],
        [2015, 912.0],
        [2016, 1207.0],
        [2017, 1682.0]
    ]
)
 
train_set = BatchOperator.fromDataframe(df, schemaStr='sumMoney double, fraud double')
 
 
trainer = LinearRegTrainBatchOp()\
    .setFeatureCols(["sumMoney"])\
    .setLabelCol("fraud")
 
train_set.link(trainer);
train_set.print()

至此,flink配置完成

十二、总结

整个安装过程大致需要两到三个小时,具体时间因人而异,尽管安装过程已经很详细,也不免会出现一些小错误,敬请指正,更细节的配置需要根据个人需要进行摸索,下面是安装目录以及进程图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值