CDH-5.12_CentOS7_详细安装教程_cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz安装包-程序员宅基地

技术标签: CDH  Hadoop  mysql  hadoop  Hadoop生态圈  centos  

一、文档说明

本文档用于指导在虚拟机环境中搭建CDH环境。

二、CDH简介

Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop,简化了大数据平台的安装、使用难度。

三、环境准备

3.1 操作系统版本

在本机虚拟机搭建环境,建议使用CentOS7.0(64bit)及以上,查看系统版本相关命令如下:

[root@hadoop22 etc]# more /etc/centos-release
CentOS Linux release 7.4.1708 (Core) 

[root@hadoop22 installPackage]# cat /proc/version 
Linux version 3.10.0-693.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017

#确认OS是32bit还是64bit
[root@hadoop22 installPackage]# getconf LONG_BIT   
64

3.2 软件安装包明细

3.2.1. CM

安装包名称及版本:cloudera-manager-centos7-cm5.12.x_x86_64.tar.gz
下载地址:http://archive.cloudera.com/cm5/cm/5/

3.2.2. CDH

安装包名称及版本:
CDH-5.12.0-1.cdh5.12.0.p0.29-el7.parcel
CDH-5.12.0-1.cdh5.12.0.p0.29-el7.parcel.sha
manifest.json
下载地址:http://archive.cloudera.com/cdh5/parcels/

3.2.3. JDK

安装包名称及版本:JDK1.8
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

3.2.4. MySQL

安装包名称及版本:
mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
mysql-connector-java-5.1.46.tar.gz
下载地址:
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
https://dev.mysql.com/downloads/connector/j/3.0.html

3.3 硬件环境配置

环境搭建采用vmware虚拟机安装,服务器规划规划如下:

主机名称 IP地址 CPU 内存 备注
hadoop22 10.141.71.22 2颗 x 1核 16GB 主节点
hadoop23 10.141.71.23 2颗 x 1核 8GB
hadoop24 10.141.71.24 2颗 x 1核 8GB
hadoop25 10.141.71.25 2颗 x 1核 8GB

3.4 服务器配置

3.4.1 修改主机名

因为虚拟机是通过vmware的克隆功能拷贝的,4台虚拟机名称相同,我们需要将其修改为规划的名称。使用"hostnamectl set-hostname 主机名"即可修改,例如将hadoop22修改为hadoop23:
#修改本机hostname
hostnamectl set-hostname hadoop23

3.4.2 配置网卡信息

这里我们采用固定IP,执行修改配置文件即可,网卡的配置文件在"/etc/sysconfig/network-script/"下面,以hadoop22这台主机为例,这里使用的网卡为:ifcfg-ens33,将其配置信息修改为如下:

# 编辑网卡信息
[root@hadoop22 network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

# 参照以下进行配置
TYPE=Ethernet
NAME=ens33
UUID=a043a2bb-babb-4864-8e2a-c2c98dbdd8b5
DEVICE=ens33
ONBOOT=yes
IPADDR=10.141.71.22
NETMASK=255.255.255.0
GATEWAY=10.141.71.254

备注:所有服务器都需要按照以上要求进行配置

3.4.3 添加主机节点映射

修改4台主机的"/etc/hosts"文件,注意,127.0.0.1和::1不能删除。

# 编辑hosts文件
[root@hadoop22 ~]# vim /etc/hosts

# 根据实际情况参考以下配置内容进行修改
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 添加映射
10.141.71.22 hadoop22
10.141.71.23 hadoop23
10.141.71.24 hadoop24
10.141.71.25 hadoop25

3.4.4 关闭防火墙

# 停止firewall
[root@hadoop22 ~]# systemctl stop firewalld.service 

# 禁止firewall开机启动,如果不执行,服务器重启之后firewall会启动
[root@hadoop22 ~]# systemctl disable firewalld.service 

# 查看防火墙状态
[root@hadoop22 ~]# firewall-cmd --state  
not running

3.4.5 关闭selinux

修改"/etc/selinux/config"文件,将SELINUX值改为disabled。

[root@hadoop22 ~]# vi /etc/selinux/config
SELINUX=disabled

3.4.6 配置ssh无密码访问

配置完成后,节点之间相互不需要密码。

1、执行以下命令,生成文件:

[root@hadoop22 ~]# ssh-keygen -t rsa
# 此时会生成.ssh文件
[root@hadoop22 ~]# pwd
/root
[root@hadoop22 ~]# ll -a
...
drwx------.  2 root root   80 Apr  6 15:48 .ssh
...
# 里面有2个文件
[root@hadoop22 .ssh]# ll
total 16
-rw-------. 1 root root 1679 Apr  6 15:46 id_rsa
-rw-r--r--. 1 root root  395 Apr  6 15:46 id_rsa.pub

2、添加公钥到认证文件中

[root@hadoop22 .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3、然后把authorized_keys文件scp到其它节点,在这之前,需要在其它节点先创建.ssh文件夹

# 在23、24、25节点执行
[root@hadoopxx ~]# mkdir .ssh   

# 将密钥复制到其他节点服务器 
[root@hadoop22 ~]# scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
[root@hadoop22 ~]# scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
[root@hadoop22 ~]# scp ~/.ssh/authorized_keys [email protected]:~/.ssh/

注意,确保.ssh文件夹的权限为700,id_rsa.pub和authorized_keys权限为644,其他权限都会导致SSH出问题。

3.4.7 时间同步配置

CDH集群的时间必须同步,,否则安装完成会报错:不良 : 无法找到主机的 NTP 服务,或该服务未响应时钟偏差请求。

1、NTP规划
由于在局域网内安装,不能访问互联网,故采用hadoop22的本地时间来做同步。规划如下:

NTP属性 主机 IP地址
NTP server hadoop22 10.141.71.22
NTP client hadoop23、hadoop24、hadoop25 10.141.71.23、10.141.71.24、10.141.71.25

2、查看是否安装了NTP软件包

[root@hadoop22 ~]# rpm -qa ntp
ntp-4.2.6p5-25.el7.centos.2.x86_64
# centos7.4自带了ntp软件包,无需再安装。

3、修改NTP server

# 修改"/etc/ntp.conf"配置文件,如下:
driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default ignore   #新增行1     
restrict 10.141.71.0  mask 255.255.255.0 notrap nomodify  #新增行2:运行71网段的所有IP同步

/var/lib/ntp/drift  #新增行3
fudge   127.127.1.0 stratum 10  #新增行4
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1 
restrict ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 127.127.1.0  #新增行5:ntp server服务器地址,127.127.1.0是本服务器的IP
server 10.141.71.22  #新增行6:ntp server服务器地址
#broadcast 192.168.1.255 autokey   # broadcast server 
#broadcastclient                   # broadcast client

4、 NTP client
去除原来的ntp server,添加新的ntp server。

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.141.71.22  #新增行1:添加ntp服务器

5、启动ntp服务
在所有节点上执行如下命令启动ntp服务。

# /bin/systemctl restart ntpd.service #启动ntp服务
# /bin/systemctl enable ntpd.service  #设置开机启动

6、查看ntp服务时间同步信息
ntpdc用于查询ntpd守护进程对其当前状态和要求的变化。程序可以运行在交互模式下使用命令行参数或控制。ntpdc -np可以看到所使用的时间服务器。

7、进行时间同步
在ntp client节点执行ntpdate hadoop22命令,将所有客户端的时间与服务器同步。
说明:NTP服务启动需要大约五分钟时间,服务启动之前,若客户端同步时间,则会出现错误“no server suitable for synchronization found”。

8、配置每天进行一次时间同步
在3台ntp client上配置crontab,执行:

[root@hadoop23 ~]# crontab -e
# 添加1行
30 12 * * * /usr/sbin/ntpdate 10.141.71.22 >> /tmp/ntdp.log

该行信息表示,每天12:30执行一次时间同步,并将执行结果输出到"/tmp/ntpd.log"文件中。

3.4.8 jdk安装

在所有节点安装jdk,这里现在主节点安装,然后scp到其它节点。

1、查找已安装的openjdk

[root@hadoop22 ~]# rpm -qa |grep java
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
tzdata-java-2017b-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64                     #open jdk
java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64                   #open jdk
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64          #open jdk

2、卸载已安装的openjdk

# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64

3、安装新的jdk
解压下载好的jdk,并重新命名(重新命名只是方便简化路径)

[root@hadoop22 opt]# tar -xzvf /root/Desktop/installPackage/jdk-8u161-linux-x64.tar.gz
[root@hadoop22 opt]# mv jdk1.8.0_161 jdk1.8
[root@hadoop22 opt]# ls
jdk1.8  

4、配置环境变量

root@hadoop22 opt]# vim /etc/profile
#添加以下:
export JAVA_HOME=/opt/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

5、使生效

[root@hadoop22 opt]# source /etc/profile

6、测试

[root@hadoop22 opt]# echo $JAVA_HOME
/opt/jdk1.8

7、复制到其它节点:

scp -r /opt/jdk1.8 [email protected]:/opt
scp -r /opt/jdk1.8 [email protected]:/opt
scp -r /opt/jdk1.8 [email protected]:/opt

8、修改剩余系统环境变量

3.4.9 安装mysql数据库

mysql数据库只需要在主节点(hadoop22)安装即可。

1、卸载mariadb

[root@hadoop22 installPackage]# rpm -qa |grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@hadoop22 installPackage]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

2、解压mysql

[root@hadoop22 opt]# tar -xvf /root/Desktop/installPackage/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 
[root@hadoop22 opt]# ls
jdk1.8 mysql-community-libs-5.7.16-1.el7.x86_64.rpm
mysql-community-client-5.7.16-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.16- 
1.el7.x86_64.rpm
mysql-community-common-5.7.16-1.el7.x86_64.rpm mysql-community-minimal-debuginfo-5.7.16- 
1.el7.x86_64.rpm
mysql-community-devel-5.7.16-1.el7.x86_64.rpm mysql-community-server-5.7.16- 
1.el7.x86_64.rpm
mysql-community-embedded-5.7.16-1.el7.x86_64.rpm mysql-community-server-minimal-5.7.16- 
1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.16-1.el7.x86_64.rpm mysql-community-test-5.7.16-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.16-1.el7.x86_64.rpm rh

3、只需要按顺序安装4个包即可

[root@hadoop22 opt]# rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
[root@hadoop22 opt]# rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm 
[root@hadoop22 opt]# rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
[root@hadoop22 opt]# rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

备注:HUE需要安装mysql-community-devel-5.7.24-1.el7.x86_64.rpm

4、mysql 启动停

# 查看mysql是否启动
service mysqld status

# 启动mysql
service mysqld start

# 停止mysql
service mysqld stop

# 重启mysql
service mysqld restart

5、设定开机自启动

[root@hadoop22 opt]# vim /etc/rc.local 
添加 service mysqld start

6、确认mysql初始密码

[root@hadoop22 log]# more /var/log/mysqld.log |grep password
2018-04-03T11:50:22.636798Z 1 [Note] A temporary password is generated for root@localhost: 
xMsoLF;oa7h=

7、登录mysql

[root@hadoop22 log]# mysql -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16

8、修改密码(大写+小写+特殊字符)

mysql> set password = password("Mysql_123456");
Query OK, 0 rows affected, 1 warning (0.00 sec)

9、使用新密码重新登陆就好了

[root@hadoop22 log]# mysql -uroot -pMysql_123456

10、创建3个数据库,并授权

#建库命令
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

grant all privileges on *.* to 'root'@'hadoop22' identified by 'Mysql_123456' with grant option;
flush privileges;

四、安装Cloudera Manager

4.1 在主节点解压cloudera manager

cloudera manager默认安装在"/opt"目录下,进入"/opt"目录,解压安装包,生成2个文件夹cloudera和cm-5.7.x

[root@hadoop22 ~]# cd /opt
[root@hadoop22 opt]# tar -xzvf /root/Desktop/installPackage/cloudera-manager-centos7-cm5.12.x_x86_64.tar.gz 

4.2 在主节点为cloudera manager建立数据库

首先解压jdbc包:

tar -xzvf mysql-connector-java-5.1.46

解压后的文件如下:
在这里插入图片描述
其中"mysql-connector-java-5.1.46-bin.jar"是我们需要的,将其拷贝到"/opt/cm-5.12.x/share/cmf/lib"路径下。

在主节点初始化CM的数据库:

/opt/cm-5.12.x/share/cmf/schema/scm_prepare_database.sh mysql -hhadoop22 -uroot -pMysql_123456 --scm-host hadoop22 scm scm Scm_123456

说明:这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
-hhadoop22:数据库建立在hadoop22主机上面。也就是主节点上面。注意主机前面有个“h”
-uroot:root身份运行mysql。-Mysql_123456:mysql的root密码是Mysql_123456。
–scm-host hadoop22:CMS的主机,一般是和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。

4.3 配置agent信息

修改主节点的agent配置文件,仅需修改server_host参数即可:

[root@hadoop22 ~]# vim /opt/cm-5.12.x/etc/cloudera-scm-agent/config.ini
server_host=hadoop22

4.4将CM拷贝到其它节点

scp -r /opt/cm-5.12.x/ root@hadoop23:/opt/
scp -r /opt/cm-5.12.x/ root@hadoop24:/opt/
scp -r /opt/cm-5.12.x/ root@hadoop25:/opt/

4.5 再所有节点创建cloudera-scm用户

useradd --system --home=/opt/cm-5.12.x/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

4.6 准备parcels,用于安装CDH5

将CDH5相关的包放到主节点的"/opt/cloudera/parcel-repo"路径下,parcels相关文件有以下3个

[root@hadoop22 parcel-repo]# cd /opt/cloudera/parcel-repo/
[root@hadoop22 parcel-repo]# ll
-rw-r--r--. 1 root root 1448796525 Apr 5 18:40 CDH-5.12.x-1.cdh5.12.x.p0.6-el7.parcel
-rw-r--r--. 1 root root 41         Apr 5 18:37 CDH-5.12.x-1.cdh5.12.x.p0.6-el7.parcel.sha1
-rw-r--r--. 1 root root 51240      Apr 5 18:38 manifest.json

重命名"CDH-5.12.x-1.cdh5.12.x.p0.6-el7.parcel.sha1"为"CDH-5.12.x-1.cdh5.12.x.p0.6-el7.parcel.sha",如果不修改,系统会重新下载"CDH-5.12.x-1.cdh5.12.x.p0.6-el7.parcel"文件。

4.7 启动cm server

启动脚本使用方法如下:

[root@hadoop22 ~]# /opt/cm-5.12.x/etc/init.d/cloudera-scm-server 
Usage: cloudera-scm-server {
    start|force_next_start|stop|restart|status|condrestart}

1、在主节点启动cm server

[root@hadoop22 ~]# /opt/cm-5.12.x/etc/init.d/cloudera-scm-server start

2、在所有节点(包括主节点)启动cm agent

[root@hadoop23 ~]# /opt/cm-5.12.x/etc/init.d/cloudera-scm-agent start

3、查看server和agent的状态
在主节点,server和agent都在运行:
在主节点,server和agent都在运行
其它节点,server不运行,只有agent运行:
其它节点,server不运行,只有agent运行

五、安装CDH文件

5.1 登陆http://10.141.71.22:7180

在这里插入图片描述

5.2 选择免费版本,继续

在这里插入图片描述

5.3 选择主机,全部选上,继续

在这里插入图片描述

5.4 选择安装方式,我们使用Parcesl,继续

在这里插入图片描述

5.5 漫长的等待安装

在这里插入图片描述

5.6 选择需要安装的组件,可自定义

在这里插入图片描述

5.7 安装成功的系统首页

在这里插入图片描述

六、遇到的问题及解决方法

6.1 初始化cm的数据总是报错

解决办法:
	1、去除密码策略
	2、每次执行命令前确认上一次生成的cm库被删除
	3、密码确认,可通过工具修改
	4、修改scm账户地址为%

6.2 hue测试连接不通过

解决办法:
	yum install mysql*

6.3 Hue错误: Load Balancer 该角色的进程启动失败

解决办法:	
	需要提前安装环境  httpd, mod_ssl
	yum install httpd
	yum install mod_ssl

6.4 副本不足的块超多

原因:配置环境的时候,设置了datanode是2个,但是hdfs默认副本块是3
解决办法:	
	在CM中添加一个新的datanode实例

6.5 HDFS异常

ntp服务没有正常运行

6.6 HDFS添加 NFS Gateway 角色实例启动失败

原因:查看日志发现系统组件不全
解决办法:
	补全组件:portmap or rpcbind

6.7 CDH版本 HDFS NFS Gateway 无法启动、挂载失败问题

HDFS NFS Gateway工作需要依附 rpcbind 服务,所以启动前需要确定rpcbind服务正常开启。 
service rpcbind start
但是HDFS NFS 服务会与系统自带的NFS服务冲突,所以在启动前需要关闭系统自带的NFS服务。
service nfs stop
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46422300/article/details/107116828

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签