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

打印 上一主题 下一主题

主题 683|帖子 683|积分 2049

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

        一些实用工具附链接

  • Vm17 百度网盘链接   许可证可以到某宝买一个,几块钱 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册利用百度网盘即可享受免费存储空间
    https://pan.baidu.com/s/17D18OCBCe84iOb-8w64PbQ?pwd=1234
  • centos7  https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso
    https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso
  • Xshell+Xftp家庭/学校免费 - NetSarang Website
    https://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加速,更新频率高、稳定安全。
https://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
  1. #配置静态ip,进入系统后执行
  2. vi /etc/sysconfig/network-scripts/ifcfg-ens33
  3. #将里面的内容全部删除,替换为
  4. TYPE=Ethernet
  5. PROXY_METHOD=none
  6. BROWSER_ONLY=no
  7. BOOTPROTO=static
  8. DEFROUTE=yes
  9. IPV4_FAILURE_FATAL=no
  10. IPV6INIT=yes
  11. IPV6_AUTOCONF=yes
  12. IPV6_DEFROUTE=yes
  13. IPV6_FAILURE_FATAL=no
  14. IPV6_ADDR_GEN_MODE=stable-privacy
  15. NAME=ens33
  16. UUID=dccf9ab3-f2fe-435b-88b0-ed33668ce2a5
  17. DEVICE=ens33
  18. ONBOOT=yes
  19. NETMASK=255.255.255.0
  20. IPADDR=192.168.100.101
  21. GATEWAY=192.168.100.2
  22. DNS1=114.114.114.114
  23. DNS2=8.8.8.8
  24. #保存退出,重启网卡
  25. systemctl restart network
  26. #重启后测试网络
  27. ping baidu.com
  28. #确保网络没问题继续下面步骤
复制代码
13.修改yum源
 国内除阿里外其他镜像站都不再提供yum源,yum install wget如遇错误,参考以下步调
 下载yum源替换文件https://mirrors.aliyun.com/repo/Centos-7.repo
  修改文件名称如图,并将原目录下的文件替换
  执行 yum clean all  ,标题解决

14.安装一些工具
  1. yum install vim
  2. yum install wget
  3. yum install net-tools
复制代码
15.禁用防火墙       
  1. systemctl stop firewalld
  2. systemctl disable firewalld
复制代码
2.克隆假造机

按如下图,克隆两台千篇一律的假造机,分别定名为hadoop02,hadoop03

3.修改IP及hostname

  1. #修改IP,分别打开克隆好的hadoop02,hadoop03,执行
  2. vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3. #分别修改其中IPADDR最后三位为102 103
  4. #保存并退出,重启网卡
  5. #修改hostname,修改三台设备的hostname
  6. vim /etc/hostname
  7. #在下方插入一行,分别为hadoop01 hadoop02 hadoop03
  8. #保存退出,执行reboot,重启三台机器
复制代码

后续操作在Xshell举行
4.Xshell连接三台呆板

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

2.连接三台呆板,输入账号暗码均为root

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

5.配置host

  1. #配置hosts
  2. vim /etc/hosts
  3. #文件下方插入
  4. 192.168.100.101 hadoop01
  5. 192.168.100.102 hadoop02
  6. 192.168.100.103 hadoop03
复制代码


6.配置及分发公钥

  1. #选择一个窗口,输入命令,三台机器同时操作
  2. #生成公钥,执行以下命令一直回车即可
  3. ssh-keygen -t rsa
  4. #分发公钥,执行以下命令,期间需要输入一次密码,密码为root
  5. ssh-copy-id hadoop01
  6. ssh-copy-id hadoop02
  7. ssh-copy-id hadoop03
复制代码
7.测试

  1. #任意一台机器上可以免密连接任意一台机器即可
  2. ssh hadoop01
  3. ssh hadoop02
  4. ssh hadoop03
  5. #连接ssh后可通过Ctrl+D退出连接
复制代码
8.创建目录

三台呆板同时操作
  1. #创建目录,三台机器同时操作
  2. cd /
  3. mkdir bigdata
复制代码
至此,三台呆板联通,基本配置完成,以上步调是通过回想写出来的,如有遗漏可以自行百度,也欢迎在品评区共同美满。
三、Anconda+JDK

1.安装Anconda 

1.下载链接如下
https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh

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

以下步调在三台呆板同时执行,Xshell连接三台呆板后可同时操作

  1. #在/bigdata目录下安装
  2. cd /bigdata
  3. #给刚刚下载的文件赋执行权限
  4. chmod +x ./Anaconda3-2024.06-1-Linux-x86_64.sh
  5. #运行安装文件
  6. ./Anaconda3-2024.06-1-Linux-x86_64.sh
  7. #出现下方选择安装目录,默认为/root/anaconda3,我们这里改为/bigdata/anaconda
复制代码

  1. #安装完成后配置一下变量
  2. echo 'export PATH="/bigdata/anaconda/bin:$PATH"' >> ~/.bashrc
  3. vim ~/.bashrc
  4. #在末尾插入
  5. export CONDA_ENVS_PATH=/bigdata/anaconda/envs
  6. #刷新
  7. source ~/.bashrc
  8. #创建python3.8
  9. conda create --name py38 python=3.8
  10. #切换至py38
  11. conda activate py38
  12. python --version #验证版本
复制代码
另外两台呆板重复上述操作   
至此,anaconda+python3.8配置完成
2.配置jupyter

jupyter只在hadoop01配置即可
  1. #配置jupyter,仅在hadoop01配置即可
  2. #进入py38环境
  3. conda activate py38
  4. #安装jupyter
  5. pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple/
  6. #生成jupyter配置文件
  7. jupyter notebook --generate-config
  8. #设置jupyter密码
  9. jupyter notebook password
  10. #这里密码设置成root,重复输入两次
  11. #修改jupyter配置文件
  12. vim ~/.jupyter/jupyter_notebook_config.py
  13. #找到以下行并修改,需要把第一个字符#删掉
  14. c.ServerApp.ip = '*'
  15. c.ServerApp.open_browser = False
  16. c.ServerApp.port = 8888
  17. #保存退出
  18. #后台运行
  19. cd /bigdata
  20. nohup jupyter notebook --allow-root&
复制代码
3.安装JDK

  1. #进入目录
  2. cd /bigdata
  3. #下载jdk
  4. wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
  5. #解压缩
  6. tar -zxvf jdk-8u202-linux-x64.tar.gz
  7. #修改文件名
  8. mv jdk1.8.0_202/ jdk1.8
  9. #配置环境变量
  10. vim /etc/profile
  11. #在文件头部插入
  12. export JAVA_HOME=/bigdata/jdk1.8
  13. export JRE_HOME=${JAVA_HOME}/jre
  14. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  15. export PATH=${JAVA_HOME}/bin:$PATH
  16. #保存退出并刷新
  17. source /etc/profile
  18. #查看版本
  19. java -version
复制代码
另外两台呆板重复上述操作,如果三台呆板同时操作则不需要再重复。
至此,jdk安装完成
四、Hadoop

1.下载解压及底子配置

  1. #下载hadoop3.3.6,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
  4. #解压
  5. tar -zxvf hadoop-3.3.6.tar.gz
  6. #改名并进入目录
  7. mv hadoop-3.3.6 hadoop
  8. cd hadoop
  9. #创建pids、logs、namenode、datanode
  10. mkdir logs
  11. mkdir pids
  12. mkdir namenode
  13. mkdir datanode
  14. mkdir nm-local-dir
  15. mkdir nm-log-dir
  16. mkdir nm-remote-app-log-dir
复制代码
2.修改etc/hadoop/hadoop-env.sh文件

  1. #修改etc/hadoop/hadoop-env.sh文件
  2. vim /bigdata/hadoop/etc/hadoop/hadoop-env.sh
  3. #直接在头部添加
  4. export JAVA_HOME=/bigdata/jdk1.8
  5. export HADOOP_PID_DIR=/bigdata/hadoop/pids
  6. export HADOOP_LOG_DIR=/bigdata/hadoop/logs
  7. export HDFS_NAMENODE_USER=root
  8. export HDFS_DATANODE_USER=root
  9. export HDFS_SECONDARYNAMENODE_USER=root
  10. export YARN_RESOURCEMANAGER_USER=root
  11. export YARN_NODEMANAGER_USER=root
复制代码
3.修改etc/hadoop/core-site.xml

  1. #修改etc/hadoop/core-site.xml
  2. vim /bigdata/hadoop/etc/hadoop/core-site.xml
  3. #在<configuration>标签中间加入
  4. <property>
  5.         <name>fs.defaultFS</name>
  6.         <value>hdfs://hadoop01:9000</value>
  7.     </property>
  8.    
  9.     <property>
  10.         <name>io.file.buffer.size</name>                                
  11.         <value>131072</value>
  12.     </property>
  13.     <property>
  14.         <name>hadoop.proxyuser.root.hosts</name>
  15.         <value>*</value>
  16.         <description>Hadoop的超级用户root能代理的节点</description>
  17.     </property>
  18.     <property>
  19.         <name>hadoop.proxyuser.root.groups</name>
  20.         <value>*</value>
  21.         <description>Hadoop的超级用户root能代理的用户组</description>
  22.     </property>
复制代码
4.修改etc/hadoop/hdfs-site.xml

  1. #修改etc/hadoop/hdfs-site.xml
  2. vim /bigdata/hadoop/etc/hadoop/hdfs-site.xml
  3. #在<configuration>标签中间加入
  4.    <property>
  5.         <name>dfs.replication</name>
  6.         <value>1</value>
  7.     </property>
  8.     <property>
  9.         <name>dfs.namenode.name.dir</name>                              
  10.         <value>/bigdata/hadoop/namenode</value>
  11.     </property>
  12.         
  13.     <property>
  14.         <name>dfs.blocksize</name>                                      
  15.         <value>268435456</value>
  16.     </property>
  17.     <property>
  18.         <name>dfs.namenode.handler.count</name>                 
  19.         <value>100</value>
  20.     </property>
  21.    
  22.     <property>
  23.         <name>dfs.datanode.data.dir</name>
  24.         <value>/bigdata/hadoop/datanode</value>
  25.     </property>
复制代码
5.修改etc/hadoop/mapred-site.xml

  1. #修改etc/hadoop/mapred-site.xml
  2. vim /bigdata/hadoop/etc/hadoop/mapred-site.xml
  3. #在<configuration>标签中间加入
  4.     <property>
  5.         <name>mapreduce.framework.name</name>               
  6.         <value>yarn</value>
  7.     </property>
复制代码
 6.修改etc/hadoop/yarn-site.xml

  1. #修改etc/hadoop/yarn-site.xml
  2. vim /bigdata/hadoop/etc/hadoop/yarn-site.xml
  3. #在<configuration>标签中间加入
  4.    <property>
  5.         <!--NodeManager获取数据的方式-->
  6.         <name>yarn.nodemanager.aux-services</name>
  7.         <value>mapreduce_shuffle</value>
  8.     </property>
  9.     <!--指定YARN集群的管理者(ResourceManager)的地址-->
  10.     <property>
  11.         <name>yarn.resourcemanager.hostname</name>
  12.         <value>hadoop01</value>
  13.     </property>
复制代码
7.修改workers文件

  1. #修改workers文件
  2. vim /bigdata/hadoop/etc/hadoop/workers
  3. #将其中全部内容修改为
  4. hadoop02
  5. hadoop03
复制代码
8.分发

分发(如果只在hadoop01上举行配置则需要分发,如果三台呆板同时配置则不需要再分发)
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp -r /bigdata/hadoop root@hadoop02:/bigdata
  4. scp -r /bigdata/hadoop root@hadoop03:/bigdata
复制代码
分发profile并在各台呆板刷新
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp /etc/profile root@hadoop02:/etc/profile
  4. scp /etc/profile root@hadoop03:/etc/profile
  5. #分发完成后每台机器都要执行
  6. source /etc/profile
复制代码
9.添加环境变量

  1. #添加环境变量
  2. vim /etc/profile
  3. #加入
  4. export HADOOP_HOME=/bigdata/hadoop
  5. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  6. #保存退出并刷新
  7. source /etc/profile
复制代码
10.HDFS初始化

仅在hadoop01执行
  1. hdfs namenode -format
复制代码
11.启动HDFS

仅在hadoop01执行
  1. start-dfs.sh       
复制代码

乐成启动
12.启动yarn

仅在hadoop01执行
  1. start-yarn.sh
复制代码

乐成启动
至此,hadoop配置完成
五、Zookeeper

 1.下载解压及底子配置

  1. #下载hadoop3.3.6,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
  4. #解压
  5. tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
  6. #改名并进入目录
  7. mv apache-zookeeper-3.8.4-bin zookeeper
  8. cd zookeeper
  9. #创建data
  10. mkdir data
  11. #修改环境变量
  12. vim /etc/profile
  13. #加入
  14. export ZOOKEEPER_HOME=/bigdata/zookeeper
  15. PATH=$ZOOKEEPER_HOME/bin:$PATH
  16. #保存并刷新
  17. source /etc/profile
复制代码
 2.配置zoo.cfg

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

如果三台呆板同时配置则无需分发
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp -r /bigdata/zookeeper root@hadoop02:/bigdata
  4. scp -r /bigdata/zookeeper root@hadoop03:/bigdata
复制代码
分发profile并在各台呆板刷新
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp /etc/profile root@hadoop02:/etc/profile
  4. scp /etc/profile root@hadoop03:/etc/profile
  5. #分发完成后每台机器都要执行
  6. source /etc/profile
复制代码
4.配置myid

  1. #进入刚刚创建的data文件夹
  2. cd /bigdata/zookeeper/data
  3. vim myid
  4. #这里myid中的文件内容为刚刚配置的server.0 .1 .2,hadoop01对应myid为0,hadoop02对应myid为1,以此类推,每台机器都需要配置
  5. #修改好以后,保存退出
复制代码
5.启动

  1. zkServer.sh start
复制代码
6.状态查抄

  1. zkServer.sh status
复制代码
至此,zookeeper配置完成
六、Spark+Scala+Pyspark

1.安装配置Scala        

  1. #下载scala-2.12.0,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://downloads.lightbend.com/scala/2.12.0/scala-2.12.0.tgz
  4. #解压
  5. tar -zxvf scala-2.12.0.tgz
  6. #改名
  7. mv scala-2.12.0 scala
  8. #配置环境变量
  9. vim /etc/profile
  10. #插入
  11. export SCALA_HOME=/bigdata/scala
  12. export PATH=$SCALA_HOME/bin:$PATH
  13. #刷新
  14. source /etc/profile
  15. #验证
  16. scala -version
复制代码
2.安装Spark

1.下载安装及底子配置

  1. #下载,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://archive.apache.org/dist/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz
  4. #解压
  5. tar -zxvf spark-3.4.3-bin-hadoop3.tgz
  6. #改名
  7. mv spark-3.4.3-bin-hadoop3 spark
  8. #配置环境变量
  9. vim /etc/profile
  10. #插入
  11. export SPARK_HOME=/bigdata/spark
  12. export PATH=$PATH:$SPARK_HOME/bin
  13. export PYSPARK_PYTHON=/bigdata/anaconda/envs/py38/bin/python
  14. #刷新
  15. source /etc/profile
复制代码
2.local摆设模式 

  1. #local部署模式 spark-env.sh,复制local部署模式 spark-env.sh.template
  2. cd /bigdata/spark/conf
  3. cp spark-env.sh.template spark-env.sh
  4. #配置spark-env.sh
  5. vim spark-env.sh
  6. #插入
  7. export JAVA_HOME=/bigdata/jdk1.8
  8. export SCALA_HOME=/bigdata/scala
  9. export SPARK_WORKER_MEMORY=1g
  10. export SPARK_WORKER_CORES=2
  11. export SPARK_HOME=/bigdata/spark
  12. export HADOOP_HOME=/bigdata/hadoop
  13. export HADOOP_CONF_DIR=/bigdata/hadoop
  14. export YARN_CONF_DIR=/bigdata/hadoop/etc/hadoop
复制代码
 3.yarn摆设模式 

  1. #yarn部署模式 – spark-defaults.conf,复制spark-defaults.conf.template
  2. cd /bigdata/spark/conf
  3. cp spark-defaults.conf.template spark-defaults.conf
  4. #配置spark-defaults.conf
  5. vim spark-defaults.conf
  6. #插入
  7. spark.eventLog.enabled          true
  8. spark.eventLog.dir              hdfs://hadoop01:9000/user/spark/directory
  9. spark.pyspark.python            /bigdata/anaconda/envs/py38/bin/python3
复制代码
4.修改workers

  1. #配置works,复制 workers.template
  2. cd /bigdata/spark/conf
  3. cp workers.template workers
  4. #配置workers
  5. vim workers
  6. #删除原本内容插入
  7. hadoop01
  8. hadoop02
  9. hadoop03
  10. #保存退出
复制代码
5.上传jar包

  1. #在hdfs创建文件夹
  2. hdfs dfs -mkdir -p /user/spark/directory
  3. #上传spark中的jar包
  4. hdfs dfs -put /bigdata/spark/jars/* /user/spark/directory
复制代码
3.分发

分发Scala和Spark(如果多台呆板一起配置则不需要分发)
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp -r /bigdata/scala root@hadoop02:/bigdata
  4. scp -r /bigdata/scala root@hadoop03:/bigdata
  5. scp -r /bigdata/spark root@hadoop02:/bigdata
  6. scp -r /bigdata/spark root@hadoop03:/bigdata
复制代码
分发profile并在各台呆板刷新
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp /etc/profile root@hadoop02:/etc/profile
  4. scp /etc/profile root@hadoop03:/etc/profile
  5. #分发完成后每台机器都要执行
  6. source /etc/profile
复制代码
4.启动Spark

  1. sbin/start-all.sh
  2. #jps查看进程,worker存在
复制代码


8081端口访问正常

5.测试Spark

  1. #hadoop01上执行
  2. 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

  1. #在hadoop01上安装相关库
  2. pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple/
  3. #打开jupyter,访问http://192.168.100.101:8888/tree
  4. #新建一个workspace文件夹存放各类代码
  5. #新建一个ipynb,粘贴以下代码直接运行
复制代码
测试通过没有标题

至此,Spark+Scala+PySpark配置完成
七、Hbase+Phoenix

1.Hbase

 1.下载解压及底子配置

  1. #下载hbase-2.5.10,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://mirrors.aliyun.com/apache/hbase/2.5.10/hbase-2.5.10-bin.tar.gz
  4. #解压
  5. tar -zxvf hbase-2.5.10.tar.gz
  6. #改名并进入目录
  7. mv hbase-2.5.10 habse
  8. cd hbase
  9. #修改环境变量
  10. vim /etc/profile
  11. #加入
  12. export HBASE_HOME=/bigdata/hbase
  13. export PATH=$PATH:$HBASE_HOME/bin
  14. #保存并刷新
  15. source /etc/profile
复制代码
 2.配置hbase-env.sh

  1. #配置hbase-env.sh
  2. vim /bigdata/hbase/conf/hbase-env.sh
  3. #文件开头加入
  4. export HBASE_MANAGES_ZK=false
  5. export JAVA_HOME=/bigdata/jdk1.8
  6. export HBASE_CLASSPATH=/bigdata/hadoop/etc/hadoop
  7. export HADOOP_HOME=/bigdata/hadoop
  8. export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
复制代码
 3.配置hbase-site.xml

  1. #配置hbase-site.xml,
  2. vim /bigdata/hbase/conf/hbase-site.xml
  3. #将<configuration>标签内的内容替换为
  4. <property>
  5.         <name>hbase.rootdir</name>
  6.         <value>hdfs://hadoop01:9000/hbase</value>
  7.         <description>这个目录是regin server的共享目录,用来持久化Hbase</description>
  8. </property>
  9. <property>
  10.         <name>hbase.cluster.distributed</name>
  11.         <value>true</value>
  12.         <description>Hbase的运行模式。false是单机模式,true是分布式模式</description>
  13. </property>
  14. <property>
  15.         <name>hbase.master</name>
  16.         <value>hdfs://hadoop01:60000</value>
  17.         <description>hmaster port</description>
  18. </property>
  19. <property>
  20.         <name>hbase.zookeeper.quorum</name>
  21.         <value>hadoop01,hadoop02,hadoop03</value>
  22.         <description>zookeeper集群的URL配置,多个host中ian用逗号(,)分割</description>
  23. </property>
  24. <property>
  25.         <name>hbase.zookeeper.property.dataDir</name>
  26.         <value>/bigdata/zookeeper/data</value>
  27.         <description>zookeepe的zooconf中的配置,快照的存储位置</description>
  28. </property>
  29. <property>
  30. <name>hbase.zookeeper.property.clientPort</name>
  31.   <value>2181</value>
  32. </property>
  33. <property>
  34.   <name>hbase.master.info.port</name>
  35.   <value>60010</value>
  36. </property>
  37. #修改好以后,保存退出
复制代码
4.配置regionservers

  1. #配置regionservers
  2. vim /bigdata/hbase/conf/regionservers
  3. #删除localhost,替换为
  4. hadoop02
  5. hadoop03
复制代码
 5.拷贝Hadoop配置

  1. #拷贝Hadoop配置
  2. cp /bigdata/hadoop/etc/hadoop/hdfs-site.xml /bigdata/hbase/conf
  3. cp /bigdata/hadoop/etc/hadoop/core-site.xml /bigdata/hbase/conf
复制代码
6.分发

如果三台呆板同时配置则无需分发
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp -r /bigdata/hbase root@hadoop02:/bigdata
  4. scp -r /bigdata/hbase root@hadoop03:/bigdata
复制代码
分发profile并在各台呆板刷新
  1. #如果仅在hadoop01上进行配置的话需要分发给另外两台机器,我这里同时配置的三台机器,所以不需要再分发
  2. #分发命令参考下方
  3. scp /etc/profile root@hadoop02:/etc/profile
  4. scp /etc/profile root@hadoop03:/etc/profile
  5. #分发完成后每台机器都要执行
  6. source /etc/profile
复制代码
7.启动

  1. #在hadoop01
  2. /bigdata/hbase/bin/start-hbase.sh
复制代码
8.状态查抄

  1. jps
  2. #hadoop01上增加HMaster进程
  3. #hadoop02,hadoop03上增加HRegionServer进程
复制代码
60010端口正常访问

9.测试

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


至此,hbase配置完成
2.Phoenix

以下配置为三台呆板同步执行
 1.下载解压及底子配置

  1. #下载phoenix-hbase-2.5-5.1.3,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://mirrors.aliyun.com/apache/phoenix/phoenix-5.1.3/phoenix-hbase-2.5-5.1.3-bin.tar.gz
  4. #解压
  5. tar -zxvf phoenix-hbase-2.5-5.1.3-bin.tar.gz
  6. #改名并进入目录
  7. mv phoenix-hbase-2.5-5.1.3-bin phoenix
  8. cd phoenix
  9. #修改环境变量
  10. vim /etc/profile
  11. #加入
  12. export PHOENIX_HOME=/bigdata/phoenix
  13. export PHOENIX_CLASSPATH=$PHOENIX_HOME
  14. export PATH=$PHOENIX_HOME/bin:$PATH
  15. #保存并刷新
  16. source /etc/profile
复制代码
 2.复制server.jar及htrace文件到$HBASE_HOME/lib目录下(每台呆板都要发送)

  1. #复制server.jar文件到$HBASE_HOME/lib目录下(每台机器都要发送)
  2. cd /bigdata/phoenix
  3. #下载htrace-core-3.1.0-incubating.jar
  4. wget https://repo1.maven.org/maven2/org/apache/htrace/htrace-core/3.1.0-incubating/htrace-core-3.1.0-incubating.jar
  5. #复制
  6. cp /bigdata/phoenix/phoenix-server-hbase-2.5-5.1.3.jar /bigdata/hbase/lib/
  7. cp /bigdata/phoenix/htrace-core-3.1.0-incubating.jar /bigdata/hbase/lib/
复制代码
 3.修改Hbase的hbase-site.xml文件配置

  1. #配置hbase-site.xml,
  2. vim /bigdata/hbase/conf/hbase-site.xml
  3. #在<configuration>标签内加入
  4. <!-- 支持可变索引 -->
  5. <property>
  6.         <name>hbase.regionserver.wal.codec</name>
  7.         <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
  8. </property>
  9. <!-- 开启phoenix命名空间的自动映射 -->
  10. <!-- 使用schema和Namespace对应的配置 -->
  11. <property>
  12.         <name>phoenix.schema.isNamespaceMappingEnabled</name>
  13.         <value>true</value>
  14. </property>
  15. <property>
  16.         <name>phoenix.schema.mapSystemTablesToNamespace</name>
  17.         <value>true</value>
  18. </property>
  19. <!-- 开启用户自定义函数(UDFs) -->
  20. <property>
  21.         <name>phoenix.functions.allowUserDefinedFunctions</name>
  22.         <value>true</value>
  23. </property>
  24. #修改好以后,保存退出
  25. #将hbase-site.xml拷贝到phoenix/bin下
  26. cp /bigdata/hbase/conf/hbase-site.xml /bigdata/phoenix/bin/
复制代码
4.重启Hbase

  1. #重启Hbase
  2. /bigdata/hbase/bin/stop-hbase.sh
  3. /bigdata/hbase/bin/start-hbase.sh
  4. #安装依赖
  5. yum install python-argparse
复制代码
5.测试

  1. #启动sqlline.py
  2. /bigdata/phoenix/bin/sqlline.py
  3. #查看表
  4. !tables
  5. #创建表
  6. CREATE TABLE IF NOT EXISTS us_population (
  7.       state CHAR(2) NOT NULL,
  8.       city VARCHAR NOT NULL,
  9.       population BIGINT
  10.       CONSTRAINT my_pk PRIMARY KEY (state, city));
  11. #更新表
  12. UPSERT INTO us_population VALUES('NY','New York',8143197);
  13. UPSERT INTO us_population VALUES('CA','Los Angeles',3844829);
  14. UPSERT INTO us_population VALUES('IL','Chicago',2842518);
  15. UPSERT INTO us_population VALUES('TX','Houston',2016582);
  16. UPSERT INTO us_population VALUES('PA','Philadelphia',1463281);
  17. UPSERT INTO us_population VALUES('AZ','Phoenix',1461575);
  18. UPSERT INTO us_population VALUES('TX','San Antonio',1256509);
  19. UPSERT INTO us_population VALUES('CA','San Diego',1255540);
  20. UPSERT INTO us_population VALUES('CA','San Jose',912332);
  21. #查看表内容
  22. !desc US_POPULATION
复制代码




至此,Phoenix配置完成
八、Hive+MySQL

1.MySQL

1.安装

  1. #进入bigdata文件夹
  2. cd /bigdata
  3. #依次执行以下命令,三台机器同步执行,期间需要输入两个y
  4. wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  5. rpm -ivh mysql57-community-release-el7-9.noarch.rpm
  6. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  7. yum install mysql-server
复制代码
2.启动

  1. systemctl start mysqld
复制代码
3.修改my.cnf

  1. #修改my.cnf
  2. vim /etc/my.cnf
  3. #在最后加入
  4. skip-grant-tables
  5. [client]
  6. port=3306
  7. socket=/var/lib/mysql/mysql.sock
  8. #重启mysql服务
  9. systemctl restart mysqld
复制代码
4.配置远程登陆

  1. #直接执行mysql,然后依次执行以下指令
  2. flush privileges;
  3. ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
  4. flush privileges;
  5. use mysql;
  6. update user set Host='%' where User='root';
  7. flush privileges;
复制代码

5.连接验证

正常连接,没有标题

2.Hive

1.下载安装及基本配置

  1. #下载apache-hive-3.1.3,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://mirrors.aliyun.com/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
  4. #解压
  5. tar -zxvf apache-hive-3.1.3-bin.tar.gz
  6. #改名并进入目录
  7. mv apache-hive-3.1.3-bin hive
  8. cd hive
  9. #配置环境变量
  10. vim /etc/profile
  11. #加入
  12. export HADOOP_HOME=/bigdata/hadoop
  13. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  14. export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
  15. export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
  16. export HIVE_HOME=/bigdata/hive
  17. export HIVE_CONF_DIR=${HIVE_HOME}/conf
  18. export JAVA_HOME=/bigdata/jdk1.8
  19. export PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH
  20. #保存退出并刷新
  21. source /etc/profile
复制代码
2.修改hive-env.sh

  1. #配置hive-env.sh
  2. #先复制一份hive-env.sh.template
  3. cd /bigdata/hive/conf
  4. cp hive-env.sh.template hive-env.sh
  5. vim hive-env.sh
  6. #加入以下内容
  7. export JAVA_HOME=/bigdata/jdk1.8
  8. export HIVE_HOME=/bigdata/hive
  9. export HIVE_CONF_DIR=/bigdata/hive/conf
  10. export HIVE_AUX_JARS_PATH=/bigdata/hive/lib
  11. export HADOOP_HOME=/bigdata/hadoop
  12. #保存退出
复制代码
3.修改hive-site.xml

  1. #先复制一份配置文件
  2. cd /bigdata/hive/conf
  3. cp hive-default.xml.template hive-site.xml
  4. vim hive-site.xml
  5. #这一部分比较啰嗦,可以按每个<property>标签中的<name>标签来寻找,然后修改<value>标签中的值,
  6. #下面提供对应的<name><value>的值,一一对应,逐一修改
  7.         <name>                                       <value>
  8. hive.exec.local.scratchdir                      /bigdata/hive/tmp/
  9. hive.downloaded.resources.dir                   /bigdata/hive/tmp/${hive.session.id}_resources
  10. hive.querylog.location                          /bigdata/hive/tmp/
  11. hive.server2.logging.operation.log.location     /bigdata/hive/tmp/root/operation_logs
  12. javax.jdo.option.ConnectionDriverName           com.mysql.jdbc.Driver
  13. javax.jdo.option.ConnectionURL                  jdbc:mysql://192.168.100.101:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8
  14. javax.jdo.option.ConnectionUserName             root
  15. javax.jdo.option.ConnectionPassword             root
复制代码
这里出了一个小插曲,在6步初始化时报了一个hive-site.xml第3215行的错,查看以后发现是<description>标签中有一个&符号,删掉即可,或者干脆把<description></description>整个标签及内里的内容都删掉。
4.添加JDBC驱动jar包

  1. #mysql-connector-java-5.1.38-bin.jar ,到文章开始一.4百度网盘链接下载
  2. #下载完成后,移动到
  3. /bigdata/hive/lib       目录下
复制代码
5.在HDFS上创建目录

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

  1. /bigdata/hive/bin/schematool -initSchema -dbType mysql
复制代码
7.测试

  1. #执行以下命令,进入hive交互模式
  2. /bigdata/hive/bin/hive
复制代码
根据以下指令测试hive,图示显示测试没标题

至此,hive配置完成
九、Kafka

1.下载安装及基本配置

  1. #下载kafka_2.13-3.7.1,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://mirrors.aliyun.com/apache/kafka/3.7.1/kafka_2.13-3.7.1.tgz
  4. #解压
  5. tar -zxvf kafka_2.13-3.7.1.tar.gz
  6. #改名并进入目录
  7. mv kafka_2.13-3.7.1 kafka
  8. cd kafka
  9. #创建日志目录
  10. mkdir logs
  11. #配置环境变量
  12. vim /etc/profile
  13. #加入
  14. export KAFKA_HOME=/bigdata/kafka
  15. export PATH=$PATH:$KAFKA_HOME/bin
  16. #保存退出并刷新
  17. source /etc/profile
复制代码
2.修改server.properties

  1. #配置server.properties
  2. cd /bigdata/kafka/config
  3. vim server.properties
  4. #修改以下内容
  5. broker.id=0               #默认都为0,将hadoop01保持为broker.id=0,hadoop02修改为broker.id=1,hadoop03修改为broker.id=2
  6. log.dirs=/bigdata/kafka/logs          #log.dirs路径修改为/bigdata/kafka/logs
  7. zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka          #zookeeper.connect修改为 hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka
  8. #保存退出
复制代码
3.编写启动脚本

  1. #因为启动kafka需要每台机器都执行命令,所以写一个脚本,只在hadoop01上运行即可
  2. cd /bigdata
  3. vim kf.sh
  4. #插入以下内容
  5. #!/bin/bash
  6. case $1 in
  7. "start"){
  8.         for host in hadoop01 hadoop02 hadoop03
  9.         do
  10.                 echo "正在启动 $host Kafka 服务"
  11.                 ssh $host "source /etc/profile;kafka-server-start.sh -daemon /bigdata/kafka/config/server.properties"
  12.         done
  13. };;
  14. "stop"){
  15.         for host in hadoop01 hadoop02 hadoop03
  16.         do
  17.                 echo "正在停止 $host Kafka 服务"
  18.                 ssh $host 'source /etc/profile;kafka-server-stop.sh stop'
  19.         done
  20. };;
  21. *){
  22.         echo "参数有误,请选择 【start】 或 【stop】!"
  23. };;
  24. esac
  25. #保存并退出
  26. #修改kf.sh执行权限
  27. chmod 777 kf.sh
复制代码
4.启动

  1. #在hadoop01上执行
  2. /bigdata/kf.sh
复制代码
5.查看运行状态

  1. #在hadoop01上进入zkCli
  2. zkCli.sh
  3. ls /
  4. #结果如图,kafka正常启动
  5. #另外两台机器通过jps查看Kafka进程正常
复制代码


至此,kafka配置完成
十、Flume

1.下载安装及基本配置

  1. #下载apache-flume-1.11.0-bin,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://mirrors.aliyun.com/apache/flume/1.11.0/apache-flume-1.11.0-bin.tar.gz
  4. #解压
  5. tar -zxvf apache-flume-1.11.0-bin.tar.gz
  6. #改名并进入目录
  7. mv apache-flume-1.11.0-bin flume
  8. cd flume
  9. #配置环境变量
  10. vim /etc/profile
  11. #加入
  12. export FLUME_CONF_DIR=$FLUME_HOME/conf
  13. export PATH=$PATH:$FLUME_HOME/bin
  14. #保存退出并刷新
  15. source /etc/profile
复制代码
2.修改flume-env.sh

  1. #配置flume-env.sh
  2. cd /bigdata/flume/conf
  3. #复制一份flume-env.sh
  4. cp flume-env.sh.template flume-env.sh
  5. vim flume-env.sh
  6. #加入以下内容
  7. export JAVA_HOME=/bigdata/jdk1.8
  8. #保存退出
复制代码
3.编写配置文件

  1. #编写配置文件供测试用
  2. cd /bigdata/flume/conf
  3. vim hdfs-avro.conf
  4. #插入以下内容
  5. # 定义这个agent的名称
  6. a1.sources = r1
  7. a1.sinks = k1
  8. a1.channels = c1
  9. # 配置源,用于监控文件
  10. a1.sources.r1.type = exec
  11. a1.sources.r1.command = tail -F /bigdata/flume/test/1.log
  12. a1.sources.r1.channels = c1
  13. # 配置接收器,用于HDFS
  14. a1.sinks.k1.type = hdfs
  15. a1.sinks.k1.hdfs.path = hdfs://hadoop01:9000/flume/events/%y-%m-%d/%H-%M
  16. a1.sinks.k1.hdfs.filePrefix = events-
  17. a1.sinks.k1.hdfs.round = true
  18. a1.sinks.k1.hdfs.roundValue = 10
  19. a1.sinks.k1.hdfs.roundUnit = minute
  20. a1.sinks.k1.hdfs.rollInterval = 0
  21. a1.sinks.k1.hdfs.rollSize = 1024
  22. a1.sinks.k1.hdfs.rollCount = 0
  23. a1.sinks.k1.hdfs.useLocalTimeStamp = true
  24. a1.sinks.k1.channel = c1
  25. # 配置通道,内存型
  26. a1.channels.c1.type = memory
  27. a1.channels.c1.capacity = 1000
  28. a1.channels.c1.transactionCapacity = 100
  29. # 绑定源和接收器到通道
  30. a1.sources.r1.channels = c1
  31. a1.sinks.k1.channel = c1
  32. #保存退出
复制代码
4.测试

  1. #在hadoop01上执行
  2. cd /bigdata/flume
  3. bin/flume-ng agent -c ./conf -f ./conf/hdfs-avro.conf -n a1 -Dflume.root.logger=INFO,console
复制代码


这里界面会停止,并不是卡顿,需要重新开一个hadoop01的ssh链接。
  1. #在/bigdata/flume下创建test文件夹
  2. cd /bigdata/flume
  3. mkdir test
  4. vim 1.log
  5. #保存并退出,这里1.log不需要有内容,保存即可
  6. #向1.log中插入内容
  7. echo 'hello'>>1.log
  8. #发现HDFS有监控文件生成
复制代码

至此,flume配置完成
十一、Flink+PyAlink

1.下载安装及基本配置

  1. #下载flink-1.17.2-bin-scala_2.12,如果下载速度过慢,可以通过物理机浏览器下载,下载完成后通过Xftp上传到虚拟机
  2. cd /bigdata
  3. wget https://mirrors.aliyun.com/apache/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz
  4. #解压
  5. tar -zxvf flink-1.17.2-bin-scala_2.12.tar
  6. #改名并进入目录
  7. mv flink-1.17.2-bin-scala_2.12 flink
  8. cd flink
复制代码
2.配置单节点模式、启动Cluster

  1. #启动flink-cluster
  2. /bigdata/flink/bin/start-cluster.sh
复制代码
访问flink web界面,没有标题


3.配置yarn模式

  1. #修改yarn-conf.yaml
  2. cd /bigdata/flink/conf
  3. vim yarn-conf.yaml
  4. #修改以下内容,注意是修改,不是新增
  5. jobmanager.rpc.address: hadoop01
  6. jobmanager.rpc.port: 6123
  7. jobmanager.bind-host: hadoop01
  8. taskmanager.bind-host: hadoop01
  9. taskmanager.host: hadoop01
  10. rest.address: hadoop01
  11. rest.port:8081
  12. rest.bind-port: 8080-8090
  13. rest.bind-address: 0.0.0.0
  14. #保存退出
  15. vim workers
  16. #修改为
  17. hadoop02
  18. hadoop03
  19. #保存退出
  20. vim masters
  21. #修改为
  22. hadoop01
  23. #保存退出
复制代码
4.配置pyalink

  1. #在所有机器上配置py3.6环境上
  2. conda create -n py36 python=3.6
  3. #安装完成后进入py36环境,
  4. conda activate py36
  5. #将py36内核添加至jupyter
  6. pip install ipykernel
  7. python -m ipykernel install --user --name "py36"
  8. #安装pyalink
  9. pip3 install pyalink --user -i https://mirrors.aliyun.com/pypi/simple --ignore-installed PyYAML
  10. #切回py38环境
  11. conda activate py38
复制代码
5.测试

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

  1. from pyalink.alink import *
  2. import pandas as pd
  3. useLocalEnv(1)
  4. df = pd.DataFrame(
  5.     [
  6.         [2009, 0.5],
  7.         [2010, 9.36],
  8.         [2011, 52.0],
  9.         [2012, 191.0],
  10.         [2013, 350.0],
  11.         [2014, 571.0],
  12.         [2015, 912.0],
  13.         [2016, 1207.0],
  14.         [2017, 1682.0]
  15.     ]
  16. )
  17. train_set = BatchOperator.fromDataframe(df, schemaStr='sumMoney double, fraud double')
  18. trainer = LinearRegTrainBatchOp()\
  19.     .setFeatureCols(["sumMoney"])\
  20.     .setLabelCol("fraud")
  21. train_set.link(trainer);
  22. train_set.print()
复制代码


至此,flink配置完成
十二、总结

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



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表