- 零、服务器(虚拟机)环境
- 一、安装Hadoop2.7.2
- 二、安装Zookeeper 3.4.10
- 三、安装Kafka 0.11.0.2
- 四、安装HBase 1.3.1 ⭐
- 五、安装Solr 5.2.1
- 可修改端口号
SOLR_PORT=8983
7)分发Solr,进行Cloud模式部署
[atguigu @hadoop102 module]$ xsync solr
提示:分发完成后,分别对hadoop103、hadoop104主机/opt/module/solr/bin下的solr.in.sh文件,修改为SOLR_HOST=对应主机名。
8)在三台节点上分别启动Solr,这个就是Cloud模式
[atguigu @hadoop102 solr]$ bin/solr start
[atguigu @hadoop103 solr]$ bin/solr start
[atguigu @hadoop104 solr]$ bin/solr start
提示:启动Solr前,需要提前启动Zookeeper服务。
9)Web访问8983端口,可指定三台节点中的任意一台IP, rel="nofollow" http://hadoop102:8983/solr/#/ - 六、安装Hive 2.3.6
- 七、安装Atlas 0.8.4
- 一、安装Hadoop
- 1.1 安装Hadoop之前的准备
- 1.2 远程终端工具安装
- 1.3 克隆虚拟机
1.3.1 ubuntu 关闭防火墙 - Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
hpcl ALL=(ALL) NOPASSWD:ALL
注意:hpcl 这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了hpcl 具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以hpcl 要放到%wheel这行下面。
5)在/opt目录下创建文件夹,并修改所属主和所属组
(1)在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module
[root@hadoop100 ~]# mkdir /opt/software
(2)修改module、software文件夹的所有者和所属组均为atguigu用户
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module
[root@hadoop100 ~]# chown atguigu:atguigu /opt/software
(3)查看module、software文件夹的所有者和所属组
[root@hadoop100 ~]# cd /opt/
[root@hadoop100 opt]# ll
总用量 12
drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 module
drwxr-xr-x. 2 root root 4096 9月 7 2017 rh
drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 software
6)卸载虚拟机自带的JDK
注意:如果你的虚拟机是最小化安装不需要执行这一步。
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e —nodeps
Ø rpm -qa:查询所安装的所有rpm软件包
Ø grep -i:忽略大小写
Ø xargs -n1:表示每次只传递一个参数
Ø rpm -e –nodeps:强制卸载软件
7)重启虚拟机
[root@hadoop100 ~]# reboot - 1.4 在hadoop102安装JDK环境
- 1.5 在hadoop102安装Hadoop
- 1.6 Hadoop目录结构
- 1.7 Hadoop运行模式
- 二、安装Hive
- 零、常见问题
- 0.2 FAILED: HiveException java.lang.RuntimeException
- 配置环境变量
- 0.4 Zookeeper JAVA_HOME is not set and java could not be found in PATH
- 0.5 Atlas启动服务后的503问题
| 服务名称 | 子服务 | 服务器 hadoop102 |
服务器 hadoop103 |
服务器 hadoop104 |
|---|---|---|---|---|
| HDFS | NameNode | √ | ||
| DataNode | √ | √ | √ | |
| SecondaryNameNode | √ | |||
| Yarn | NodeManager | √ | √ | √ |
| Resourcemanager | √ | |||
| Zookeeper | QuorumPeerMain | √ | √ | √ |
| Kafka | Kafka | √ | √ | √ |
| HBase | HMaster | √ | ||
| HRegionServer | √ | √ | √ | |
| Solr | Jar | √ | √ | √ |
| Hive | Hive | √ | ||
| MySQL | MySQL | √ | ||
| Azkaban | AzkabanWebServer | √ | ||
| AzkabanExecutorServer | √ | |||
| Atlas | atlas | √ | ||
| 服务数总计 | 13 | 7 | 7 |
零、服务器(虚拟机)环境
0.1 改IP,
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" #网络类型(通常是Ethemet)PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static" #IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)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="e83804c1-3257-4584-81bb-660665ac22f6" #随机idDEVICE="ens33" #接口名(设备,网卡)ONBOOT="yes" #系统启动的时候网络接口是否有效(yes/no)#IP地址IPADDR=192.168.10.100#网关GATEWAY=192.168.10.2#域名解析器DNS1=192.168.10.2
0.2 改hostname主机名,主机名称映射hosts
sudo vim /etc/hostname 改成hadoop100
sudo vim /etc/hosts
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
reboot 重启服务器!
0.3 关闭防火墙,关闭防火墙开机自启
1. systemctl stop firewalld
1. systemctl disable firewalld.service
0.4 配置hpcl用户拥有root权限
3. vim /etc/sudoers
3. 修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
hpcl ALL=(ALL) NOPASSWD:ALL
注意:hpcl这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了hpcl具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以hpcl要放到%wheel这行下面。
0.5 在/opt目录下创建文件夹,并修改所属主和所属组
5. 修改module、software文件夹的所有者和所属组均为hpcl用户
1. chown hpcl:hpcl /opt/module
1. chown hpcl:hpcl /opt/software
0.6 克隆
记得改IP和hostname
一、安装Hadoop2.7.2

Hadoop是指分布式的系统架构,围绕hadoop包含了相关很多软件,形成了hadoop生态圈。
3.0以上的hadoop并没有在企业中真实使用(2017)!
Hadoop有3个组件构成:
HDFS:分布式文件管理系统,包含NameNode(nn),DataNode(dn),
YARN:Hadoop 的资源管理器,包含ReourseManager(RM)、NodeManager(NM)、ApplicaitonMaster(AM)、Container(相当于一台独立的服务器)
MapReduce:
将计算分为两个阶段:
Map阶段:并行处理输入数据
Reduce阶段:对Map结果进行汇总
1.1 编写集群分发脚本xsync
1.2 集群配置 ⭐⭐⭐⭐
| hadoop102 | hadoop103 | hadoop104 | |
|---|---|---|---|
| HDFS |
NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
| YARN | NodeManager |
ResourceManager NodeManager |
NodeManager |
| core-site.xml | hadoop-env.sh、yarn-env.sh、mapred-env.sh | hdfs-site.xml |
|---|---|---|
| export JAVA_HOME=/opt/module/jdk | ||
| yarn-site.xml | mapred-site.xml | |
1.3 ssh 无密登录
生成公钥和私钥:
[hpcl@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上
[hpcl@hadoop102 .ssh]$ ssh-copy-id hadoop102
[hpcl@hadoop102 .ssh]$ ssh-copy-id hadoop103
[hpcl@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:
还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
还需要在hadoop103上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
1.4 配置历史服务器、日志的聚集(hadoop3版本教程新出)
1.4.1 历史服务器
vim mapred-site.xml
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property>
同步配置:xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
启动:mapred —daemon start historyserver
http://hadoop102:19888/jobhistory
1.4.2 日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。
vim yarn-site.xml
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>J
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml
sbin/stop-yarn.sh
mapred —daemon stop historyserver
sbin/start-yarn.sh
mapred —daemon start historyserver
删除HDFS上已经存在的输出文件:hadoop fs -rm -r /output
1.5 Hadoop集群常用脚本
配置slaves(3.1版本为workers)
vim /opt/module/hadoop/etc/hadoop/slaves
hadoop102
hadoop103
hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件
xsync /opt/module/hadoop/etc
脚本编写
cd ~/bin
vim myhadoop.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop/sbin/start-yarn.sh"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
添加运行权限 chmod +x myhadoop.sh
vim jpsall
#!/bin/bash
# 执行jps命令查询每台服务器上的节点状态
echo ======================集群节点状态====================
for i in hadoop102 hadoop103 hadoop104
do
echo ====================== $i ====================
ssh hpcl@$i '/opt/module/jdk/bin/jps'
done
echo ======================执行完毕====================
添加运行权限 chmod +x jpsall
同步脚本:xsync /home/hpcl/bin/
查看
web端查看HDFS文件系统
http://hadoop102:50070/dfshealth.html#tab-overview
注意:如果不能查看,看如下帖子处理
http://www.cnblogs.com/zlslch/p/6604189.html
Web端查看SecondaryNameNode
浏览器中输入:http://hadoop104:50090/status.html
查看SecondaryNameNode信息
1.6 常用端口
常用端口号说明
| 端口名称 | Hadoop2.x | Hadoop3.x |
|---|---|---|
| NameNode内部通信端口 | 8020 / 9000 | 8020 / 9000/9820 |
| NameNode HTTP UI | 50070 | 9870 |
| MapReduce查看执行任务端口 | 8088 | 8088 |
| 历史服务器通信端口 | 19888 | 19888 |
1.7 集群基本测试
1.7.0 本地运行模式(单机模式!)
官方Grep案例
在hadoop安装文件夹(/opt/module/hadoop)中
mkdir input
cp etc/hadoop/.xml input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output ‘dfs[a-z.]+’
output文件夹必须不能存在
cat output/
WordCount案例
mkdir wcinput
cd wcinput
vim wc.input
hadoop yarn
hadoop mapreduce
hpcl
hpcl
回到/opt/module/hadoop
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
查看结果:cat wcoutput/part-r-00000
1.7.1 上传文件到集群
hdfs dfs -mkdir -p /user/hpcl/input
hdfs dfs -put wcinput/wc.input /user/hpcl/input
1.8 集群时间同步
二、安装Zookeeper 3.4.10
Zookeeper为分布式框架提供协调服务:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
配置服务器编号:
zk.sh
#! /bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "/opt/module/zookeeper/bin/zkServer.sh start"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "/opt/module/zookeeper/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "/opt/module/zookeeper/bin/zkServer.sh status"
done
};;
esac
三、安装Kafka 0.11.0.2
3.1 脚本kf.sh
#! /bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------启动 $i Kafka-------"
# 用于KafkaManager监控
ssh $i "export JMX_PORT=9988 && /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties "
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------停止 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh stop"
done
};;
esac
3.2 Kafka命令行操作
1)查看当前服务器中的所有topic
bin/kafka-topics.sh —zookeeper hadoop102:2181 —list
2)创建topic
bin/kafka-topics.sh —zookeeper hadoop102:2181 \ —create —replication-factor 3 —partitions 1 —topic first
选项说明:
—topic 定义topic名
—replication-factor 定义副本数
—partitions 定义分区数
3)删除topic
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh —zookeeper hadoop102:2181 \ —delete —topic first
需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。
4)发送消息
[atguigu@hadoop102 kafka]$ bin/kafka-console-producer.sh \ —broker-list hadoop102:9092 —topic first
>hello world
>atguigu atguigu
5)消费消息
[atguigu@hadoop103 kafka]$ bin/kafka-console-consumer.sh \ —zookeeper hadoop102:2181 —from-beginning —topic first —from-beginning:会把first主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。
6)查看某个Topic的详情
bin/kafka-topics.sh —zookeeper hadoop102:2181 \ —describe —topic first
四、安装HBase 1.3.1 ⭐
4.1 修改配置文件
hbase-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
export HBASE_MANAGES_ZK=false
hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
regionservers
hadoop102
hadoop103
hadoop104
软连接hadoop配置文件到hbase:
ln -s /opt/module/hadoop/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
ln -s /opt/module/hadoop/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
远程发送到其他集群
服务启动
启动方式1
启动方式2
bin/start-HBase.sh
对应的停止服务:
bin/stop-HBase.sh
五、安装Solr 5.2.1

1)Solr版本要求必须是5.2.1,见官网
2)Solr下载:http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz
3)把solr-5.2.1.tgz上传到hadoop102的/opt/software目录下
4)解压solr-5.2.1.tgz到/opt/module/目录下面
[atguigu@hadoop102 software]$ tar -zxvf solr-5.2.1.tgz -C /opt/module/
5)修改solr-5.2.1的名称为solr
[atguigu@hadoop102 module]$ mv solr-5.2.1/ solr
6)进入solr/bin目录,修改solr.in.sh文件
[atguigu@hadoop102 solr]$ vim bin/solr.in.sh
#添加下列指令
ZK_HOST=”hadoop102:2181,hadoop103:2181,hadoop104:2181”
SOLR_HOST=”hadoop102”
Sets the port Solr binds to, default is 8983
可修改端口号
SOLR_PORT=8983
7)分发Solr,进行Cloud模式部署
[atguigu@hadoop102 module]$ xsync solr
提示:分发完成后,分别对hadoop103、hadoop104主机/opt/module/solr/bin下的solr.in.sh文件,修改为SOLR_HOST=对应主机名。
8)在三台节点上分别启动Solr,这个就是Cloud模式
[atguigu@hadoop102 solr]$ bin/solr start
[atguigu@hadoop103 solr]$ bin/solr start
[atguigu@hadoop104 solr]$ bin/solr start
提示:启动Solr前,需要提前启动Zookeeper服务。
9)Web访问8983端口,可指定三台节点中的任意一台IP,http://hadoop102:8983/solr/#/
提示:UI界面出现Cloud菜单栏时,Solr的Cloud模式才算部署成功。
10)编写Solr启动停止脚本
(1)在hadoop102的/home/atguigu/bin目录下创建脚本
[atguigu@hadoop102 bin]$ vim s.sh
在脚本中编写如下内容
#!/bin/bash
case $1 in
“start”){
for i in hadoop102 hadoop103 hadoop104
do
ssh $i “/opt/module/solr/bin/solr start”
done
};;
“stop”){
for i in hadoop102 hadoop103 hadoop104
do
ssh chmod 777 s.sh
(3)Solr集群启动脚本
[atguigu@hadoop102 module]$ s.sh start
(4)Solr集群停止脚本
[atguigu@hadoop102 module]$ s.sh stop
六、安装Hive 2.3.6
Hive.docx
1)上传apache-hive-2.3.0-bin.tar.gz 到/opt/software目录下,并解压到/opt/module
[atguigu@hadoop102 software]$ tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /opt/module/
2)修改apache-hive-2.3.6-bin名称为hive
[atguigu@hadoop102 module]$ mv apache-hive-2.3.6-bin hive
3)将Mysql的mysql-connector-java-5.1.27-bin.jar拷贝到/opt/module/hive/lib/
[atguigu@hadoop102 module]$ cp /opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/
4)在/opt/module/hive/conf路径上,创建hive-site.xml文件
[atguigu@hadoop102 conf]$ vim hive-site.xml
添加如下内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
</configuration>
5)服务启动完毕后在启动Hive
[atguigu@hadoop102 hive]$ bin/hive
七、安装Atlas 0.8.4
一、安装Hadoop
1.1 安装Hadoop之前的准备
创建hadoop100虚拟机
https://www.bilibili.com/video/BV1Qp4y1n7EN?p=19
虚拟机要求分配的硬盘空间为50G,其他的默认就好
安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G
更改VMware IP地址
更改hadoop100 IP地址
注意!Centos和Ubuntu设置是不同的啊!!!
第一步:先获取网卡名称,输入ifconfig,如下图,我们的网卡名称为 ens33
$ ifconfig
第二步:修改网卡配置文件sudo vim /etc/network/interfaces(如何是只读模式,可以使用sudo chmod 777 interfaces 来修改权限!)
$ sudo vim /etc/network/interfaces
第三步:修改DNS配置
$ sudo vim /etc/resolvconf/resolv.conf.d/head
第四部:重启网络服务 $ sudo /etc/init.d/networking restart
$ sudo /etc/init.d/networking restart
到此为止就设置好静态IP了.
附:如果你的CRT连接报错The remote system refused the connection.
可能是没有安装ssh 服务,输入下面命令即可
$ sudo apt-get install openssh-server
更改主机IP 地址(使IP地址是固定的)
修改主机名和hosts文件
1)修改主机名称
[root@hadoop100 ~]# vim /etc/hostname
hadoop100
2)配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts
[root@hadoop100 ~]# vim /etc/hosts
添加如下内容
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
3)重启克隆机hadoop102
4)修改windows的主机映射文件(hosts文件)
(1)如果操作系统是window7,可以直接修改
(a)进入C:\Windows\System32\drivers\etc路径
(b)打开hosts文件并添加如下内容,然后保存
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
(2)如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可
(a)进入C:\Windows\System32\drivers\etc路径
(b)拷贝hosts文件到桌面
(c)打开桌面hosts文件并添加如下内容
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
(d)将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件
1.2 远程终端工具安装
1.2.1 配置XSHELL终端
1)创建新链接
2)编辑新链接
是host!
ubuntu中要安装ssh
1.安装ssh服务端
sudo apt-get install openssh-server;
2.确认sshserver是否启动了
ps -e | grep ssh
如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了
3.启动sshserver
/etc/init.d/ssh start
显示
ssh服务器拒绝了密码 请再试一次
应该是ssh的设置不允许root用户用密码远程登录
1、修改 vim /etc/ssh/sshd_config
找到# Authentication:
LoginGraceTime 120
PermitRootLogin without passwd
StrictModes yes
改成
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
2、重启ssh
systemctl restart sshd
成功!
1.3 克隆虚拟机
1.3.1 ubuntu 关闭防火墙
关闭
sudo ufw disable
查看防火墙状态
sudo ufw status
1.3.2 创建hpcl用户
3)创建hpcl用户,并修改hpcl用户的密码
[root@hadoop100 ~]# useradd hpcl
设置密码,一路回车即可!
[root@hadoop100 ~]# passwd hpcl
4)配置atguigu用户具有root权限,方便后期加sudo执行root权限的命令
[root@hadoop100 ~]# vim /etc/sudoers
修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
hpcl ALL=(ALL) NOPASSWD:ALL
注意:hpcl 这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了hpcl 具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以hpcl 要放到%wheel这行下面。
5)在/opt目录下创建文件夹,并修改所属主和所属组
(1)在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module
[root@hadoop100 ~]# mkdir /opt/software
(2)修改module、software文件夹的所有者和所属组均为atguigu用户
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module
[root@hadoop100 ~]# chown atguigu:atguigu /opt/software
(3)查看module、software文件夹的所有者和所属组
[root@hadoop100 ~]# cd /opt/
[root@hadoop100 opt]# ll
总用量 12
drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 module
drwxr-xr-x. 2 root root 4096 9月 7 2017 rh
drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 software
6)卸载虚拟机自带的JDK
注意:如果你的虚拟机是最小化安装不需要执行这一步。
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e —nodeps
Ø rpm -qa:查询所安装的所有rpm软件包
Ø grep -i:忽略大小写
Ø xargs -n1:表示每次只传递一个参数
Ø rpm -e –nodeps:强制卸载软件
7)重启虚拟机
[root@hadoop100 ~]# reboot
1.3.3 开始克隆
记得把hadoop100关机!

成功克隆后
接下来就是给克隆后的系统的修改IP和主机名,之前有讲过哦,需要用到以下几行代码:
改IP:sudo vim /etc/network/interfaces
改hostname:sudo vim /etc/hostname
1.4 在hadoop102安装JDK环境
1.4.1 解压包
将jdk的tar包放入/opt/software文件夹中,并将解压后的文件移动到/opt/module文件夹中
1.4.2 配置环境变量
1)新建/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
(2)保存后退出
:wq
(3)source一下/etc/profile文件,让新的环境变量PATH生效
source /etc/profile
测试JDK是否安装成功
java -version
如果能看到以下结果,则代表Java安装成功。
1.5 在hadoop102安装Hadoop
Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
1)用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下面
2)进入到Hadoop安装包路径下
[atguigu@hadoop102 ~]$ cd /opt/software/
3)解压安装文件到/opt/module下面
[atguigu@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
4)查看是否解压成功
[atguigu@hadoop102 software]$ ls /opt/module/
hadoop-3.1.3
5)将Hadoop添加到环境变量
(1)获取Hadoop安装路径
[atguigu@hadoop102 hadoop-3.1.3]$ pwd
/opt/module/hadoop-3.1.3
(2)打开/etc/profile.d/my_env.sh文件
[atguigu@hadoop102 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh
Ø 在my_env.sh文件末尾添加如下内容:(shift+g)
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
Ø 保存并退出: :wq
(3)让修改后的文件生效
[atguigu@hadoop102 hadoop-3.1.3]$ source /etc/profile
6)测试是否安装成功
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop version
Hadoop 3.1.3
7)重启(如果Hadoop命令不能用再重启虚拟机)
[atguigu@hadoop102 hadoop-3.1.3]$ sudo reboot
1.6 Hadoop目录结构
1)查看Hadoop目录结构
ll
总用量 52
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 bin
drwxr-xr-x. 3 atguigu atguigu 4096 5月 22 2017 etc
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 include
drwxr-xr-x. 3 atguigu atguigu 4096 5月 22 2017 lib
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 libexec
-rw-r—r—. 1 atguigu atguigu 15429 5月 22 2017 LICENSE.txt
-rw-r—r—. 1 atguigu atguigu 101 5月 22 2017 NOTICE.txt
-rw-r—r—. 1 atguigu atguigu 1366 5月 22 2017 README.txt
drwxr-xr-x. 2 atguigu atguigu 4096 5月 22 2017 sbin
drwxr-xr-x. 4 atguigu atguigu 4096 5月 22 2017 share
2)重要目录
(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
1.7 Hadoop运行模式
1)Hadoop官方网站:http://hadoop.apache.org/
2)Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Ø 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
Ø 伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
Ø 完全分布式模式:多台服务器组成分布式环境。生产环境使用。
1.7.1 本地运行模式(官方WordCount)
1)创建在hadoop-3.1.3文件下面创建一个wcinput文件夹
mkdir wcinput
2)在wcinput文件下创建一个word.txt文件
cd wcinput
3)编辑word.txt文件
vim word.txt
在文件中输入如下内容
hadoop yarn
hadoop mapreduce
atguigu
atguigu
Ø 保存退出::wq
4)回到Hadoop目录/opt/module/hadoop-3.1.3
5)执行程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
6)查看结果
cat wcoutput/part-r-00000
看到如下结果:
hpcl 2
hadoop 2
mapreduce 1
yarn 1
1.7.2 完全分布式运行模式(开发重点)
分析:
1)准备3台客户机(关闭防火墙、静态IP、主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群
1.7.2.1 虚拟机准备
1.7.2.2 编写集群分发脚本xsync
1)scp(secure copy)安全拷贝
(1)scp定义
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
(2)基本语法
scp -r $pdir/$fname $user@$host:$pdir/$fname
命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
(3)案例实操
前提:在hadoop102、hadoop103、hadoop104都已经创建好的/opt/module、 /opt/software两个目录,并且已经把这两个目录修改为atguigu:atguigu
sudo chown hpcl:hpcl -R /opt/module
所有者:组 处理指定目录以及其子目录下的所有文件 文件…
小贴士:
chown(change owner):命令用于设置文件所有者和文件关联组的命令。
(a)在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。
scp -r /opt/module/jdk1.8.0_212 hpcl@hadoop103:/opt/module
(b)在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上。
scp -r hpcl@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/
(c)在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上。
scp -r hpcl@hadoop102:/opt/module/ hpcl@hadoop104:/opt/module 
Host key verification failed.
lost connection
这个问题我没解决啊,那就目前只用a、b两种方法传输吧!
*看1.7.2.3 有解决方法,但没用
2)rsync远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:
用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
(1)基本语法
rsync -av $pdir/$fname $user@$host:$pdir/$fname
命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
选项参数说明
选项 功能
-a 归档拷贝
-v 显示复制过程
(2)案例实操
(a)删除hadoop103中/opt/module/hadoop-3.1.3/wcinput
rm -rf wcinput/
(b)同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103
rsync -av hadoop-3.1.3/ hpcl@hadoop103:/opt/module/hadoop-3.1.3/
3)xsync集群分发脚本
(1)需求:循环复制文件到所有节点的相同目录下
(2)需求分析:
(a)rsync命令原始拷贝:
rsync -av /opt/module hpcl@hadoop103:/opt/
(b)期望脚本:
xsync要同步的文件名称
(c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)
[hpcl@hadoop102 ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/hpcl/bin:/opt/module/jdk1.8.0_212/bin
cd /home/hpcl
mkdir bin
cd bin
vim xsync
在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
f
(b)修改脚本 xsync 具有执行权限
[hpcl@hadoop102 bin]$ chmod +x xsync
(c)测试脚本
[hpcl@hadoop102 ~]$ xsync /home/hpcl/bin
(d)将脚本复制到/bin中,以便全局调用
[hpcl@hadoop102 bin]$ sudo cp xsync /bin/
(e)同步环境变量配置(root所有者)
[hpcl@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
注意:如果用了sudo,那么xsync一定要给它的路径补全。
让环境变量生效
[atguigu@hadoop103 bin]$ source /etc/profile
[atguigu@hadoop104 opt]$ source /etc/profile
1.7.2.3 SSH无密登录配置
1)配置ssh
(1)基本语法
ssh另一台电脑的IP地址
(2)ssh连接时出现Host key verification failed的解决方法
[atguigu@hadoop102 ~]$ ssh hadoop103
如果出现如下内容
Are you sure you want to continue connecting (yes/no)?
输入yes,并回车
(3)退回到hadoop102
exit
2)无密钥配置
(1)免密登录原理
(2)生成公钥和私钥
[hpcl@hadoop102 .ssh]$ pwd
[hpcl@hadoop102 .ssh]$ /home/hpcl/.ssh
[hpcl@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
注意:
还需要在hadoop103上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
还需要在hadoop104上采用atguigu账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
还需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
3).ssh文件夹下(~/.ssh)的文件功能解释
| known_hosts | 记录ssh访问过计算机的公钥(public key) |
|---|---|
| id_rsa | 生成的私钥 |
| id_rsa.pub | 生成的公钥 |
| authorized_keys | 存放授权过的无密登录服务器公钥 |
1.7.3 常见错误及解决方案
1)防火墙没关闭、或者没有启动YARN
INFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:8032
2)主机名称配置错误
3)IP地址配置错误
4)ssh没有配置好
5)root用户和atguigu两个用户启动集群不统一
6)配置文件修改不细心
7)不识别主机名称
java.net.UnknownHostException: hadoop102: hadoop102
at java.net.InetAddress.getLocalHost(InetAddress.java:1475)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:146)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
解决办法:
(1)在/etc/hosts文件中添加192.168.10.102 hadoop102
(2)主机名称不要起hadoop hadoop000等特殊名称
8)DataNode和NameNode进程同时只能工作一个。
9)执行命令不生效,粘贴Word中命令时,遇到-和长–没区分开。导致命令失效
解决办法:尽量不要粘贴Word中代码。
10)jps发现进程已经没有,但是重新启动集群,提示进程已经开启。
原因是在Linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。
11)jps不生效
原因:全局变量hadoop java没有生效。解决办法:需要source /etc/profile文件。
12)8088端口连接不上
[hpcl@hadoop102 桌面]$ cat /etc/hosts
注释掉如下代码
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 hadoop102
13)mkdir: Permission denied: user=hpcl, access=WRITE, inode=”/“:root:supergroup:drwxr-xr-x
二、安装Hive
零、常见问题
0.1 Exception in thread “main”
Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1380)
…
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
原因:
hadoop和hive的两个guava.jar版本不一致
两个位置分别位于下面两个目录:
- /usr/local/hive/lib/
- /usr/local/hadoop/share/hadoop/common/lib/
解决办法:
0.2 FAILED: HiveException java.lang.RuntimeException
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
0.3
##################################################################################
Atlas Server (STARTUP)
project.name: apache-atlas<br /> project.description: Metadata Management and Data Governance Platform over Hadoop<br /> build.user: milkcoffee<br /> build.epoch: 1593498856378<br /> project.version: 2.0.0-SNAPSHOT<br /> build.version: 2.0.0-SNAPSHOT<br /> vc.revision: 789a7df555c9e5c41bb71bec9bf39155d2fff767<br /> vc.source.url: scm:git:git://git.apache.org/atlas.git/atlas-webapp<br />######################################################################################## (Atlas:215)<br />2021-09-03 03:25:39,285 INFO - [main:] ~ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Atlas:216)<br />2021-09-03 03:25:39,285 INFO - [main:] ~ Server starting with TLS ? false on port 21000 (Atlas:217)<br />2021-09-03 03:25:39,285 INFO - [main:] ~ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< (Atlas:218)<br />2021-09-03 03:25:42,079 WARN - [main:] ~ **Unable to load native-hadoop library for your platform...不能建立本地的hadoop库 using builtin-java classes where applicable (NativeCodeLoader:60)**<br />2021-09-03 03:25:42,127 INFO - [main:] ~ Logged in user root (auth:SIMPLE) (LoginProcessor:77)<br />2021-09-03 03:25:44,264 INFO - [main:] ~ Not running setup per configuration atlas.server.run.setup.on.start. (SetupSteps$SetupRequired:189)<br />2021-09-03 03:25:48,174 WARN - [ReadOnlyZKClient-hadoop102:2181,hadoop103:2181,hadoop104:2181@0x526b2f3e:] ~ 0x526b2f3e to hadoop102:2181,hadoop103:2181,hadoop104:2181 failed for get of /hbase/hbaseid, code = CONNECTIONLOSS, retries = 1 (ReadOnlyZKClient$ZKTask$1:183)<br />2021-09-03 03:25:48,647 WARN - [ReadOnlyZKClient-hadoop102:2181,hadoop103:2181,hadoop104:2181@0x526b2f3e-SendThread(hadoop104:2181):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)<br />java.net.ConnectException: Connection refused<br /> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)<br /> at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)<br /> at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)<br /> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)<br />**1、Unable to load native-hadoop library for your platform...不能建立本地的hadoop库 using builtin-java classes where applicable (NativeCodeLoader:60)**<br />**法一:**
配置环境变量
在/etc/profile中,添加下面配置:
export HADOOP_HOME=/opt/module/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
最后记得使配置生效:source /etc/profile
并把相同配置添加到hadoop-env.sh文件末尾。
自检
hadoop checknative –a

然而没啥用,但已经可以检查到本地库啦!
新的报错
2021-09-03 05:54:46,858 WARN - [ReadOnlyZKClient-hadoop102:2181,hadoop103:2181,hadoop104:2181@0x526b2f3e:] ~ 0x526b2f3e to hadoop102:2181,hadoop103:2181,hadoop104:2181 failed for get of /hbase/meta-region-server, code = CONNECTIONLOSS, retries = 27 (ReadOnlyZKClient$ZKTask$1:183)
2021-09-03 05:54:48,427 WARN - [ReadOnlyZKClient-hadoop102:2181,hadoop103:2181,hadoop104:2181@0x526b2f3e-SendThread(hadoop103:2181):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2021-09-03 05:54:48,529 WARN - [ReadOnlyZKClient-hadoop102:2181,hadoop103:2181,hadoop104:2181@0x526b2f3e:] ~ 0x526b2f3e to hadoop102:2181,hadoop103:2181,hadoop104:2181 failed for get of /hbase/meta-region-server, code = CONNECTIONLOSS, retries = 28 (ReadOnlyZKClient$ZKTask$1:183)
2021-09-03 05:54:49,523 WARN - [ReadOnlyZKClient-hadoop102:2181,hadoop103:2181,hadoop104:2181@0x526b2f3e-SendThread(hadoop104:2181):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2021-09-03 05:54:49,624 WARN - [ReadOnlyZKClient-hadoop102:2181,hadoop103:2181,hadoop104:2181@0x526b2f3e:] ~ 0x526b2f3e to hadoop102:2181,hadoop103:2181,hadoop104:2181 failed for get of /hbase/meta-region-server, code = CONNECTIONLOSS, retries = 29 (ReadOnlyZKClient$ZKTask$1:183)
0.4 Zookeeper JAVA_HOME is not set and java could not be found in PATH
https://blog.csdn.net/single_cong/article/details/103792242?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.essearch_pc_relevant
0.5 Atlas启动服务后的503问题
什么是503?
503 Service Unavailable 服务器不可访问




