2017-07-05:修正几处拼写错误,之前没发现,抱歉!

第一次在cnblogs上发表文章,效果肯定不会好,希望各位多包涵。

编写这个文档的背景是月中的时候,部门老大希望我们能够抽时间学习一下Hadoop大数据方面的技术;给我的学习内容是通过Ambari安装Hadoop集群。通过一周左右的学习和实践,整理出现在这篇安装心得。第一篇,重点放在Ambari-Server的搭建安装上。

安装默认使用Root用户,避免权限问题导致不成功。

使用4台虚拟机构建Ambari-Server、Hadoop集群,分配如下:

-       一台虚拟机,作为Ambari-Server:

Hostname: ambari.server

-       三台虚拟机,作为Hadoop集群:

Hostname01: hadoop.namenode
Hostname02: hadoop.datanode1
Hostname03: hadoop.datanode2

1. 安装前的系统设定

a) 修改机器名、Hosts文件

查看当前的Hostname:

# hostname

  修改Hostname:(以ambari.server为例)

# hostnamectl set-hostname ambari.server

  修改每一台机器上的/etc/hosts文件:

# vim /etc/hosts
192.168.141.159 ambari.server
192.168.141.160 hadoop.namenode
192.168.141.161 hadoop.datanode1
192.168.141.162 hadoop.datanode2

  修改完以后,重启每一台机器。

  b) 设置ntpd自动启动,所有机器

  没有安装ntpd的机器,用yum命令安装一下:

# yum install -y ntp

  设置服务开机启动:

# systemctl enable ntpd

  启动服务:

# systemctl start ntpd

  c) 设置时间同步,所有机器

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# ntpdate us.pool.ntp.org

  d) 关闭Selinux,所有机器

  修改配置:

# vim /etc/sysconfig/selinux
selinux=disalbed

  e) 关闭防火墙

# systemctl stop firewalld
# systemctl disable firewalld

  f) 制作集群的SSH免密码登录

在ambari.server上创建密钥:

# ssh-keygen -t rsa

一路Enter到密钥生成

进入~/.ssh目录,查看密钥文件:

私钥:id_rsa
公钥:id_rsa.pub

  切换到hadoop.namenode等机器上,创建~/.ssh目录

# mkdir ~/.ssh 

从ambari.server上,发送公钥给目标服务器:

# scp ~/.ssh/id_rsa.pub hadoop.namenode:/root/.ssh/authorized_keys_from_ambari
# scp ~/.ssh/id_rsa.pub hadoop.datanode1:/root/.ssh/authorized_keys_from_ambari
# scp ~/.ssh/id_rsa.pub hadoop.datanode2:/root/.ssh/authorized_keys_from_ambari

在被登录的服务器上,合并公钥:

# cd ~/.ssh
# cat authorized_keys_from_ambari >> authorized_keys

对所有服务器上的.ssh目录和文件授权:

# chmod 700 ~/.ssh
# chmod 600 ~/.ssh/*

在ambari.server上验证SHH可以免密码登录目标服务器:

# ssh hadoop.namenode

如果无需输入密码,且用hostname命令查看到正确的主机名,则表示配置免密码登录成功;

如果仍需要输入密码,则不成功;如果不成功,先尝试权限修改;如果仍不成功,则要删除密钥再做一次。

2. 安装JDK1.8

下载JDK 1.8.0.tar.gz文件,解压:

# wget -c http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
# mkdir /usr/local/jdk
# tar -xvf jdk-8u131-linux-x64.tar.gz -C /usr/local/jdk/

配置环境变量,添加以下内容:

# vim /etc/profile

#java
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

执行以下语句,使环境变量立刻生效:

# source /etc/profile

验证Java安装成功:

# java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

3. 安装MySQL

Ambari安装会将安装等信息写入数据库,建议使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL。

Mysql数据库安装过程如下:

下载mysql的repo源(CentOS 7.2的yum源中默认没有mysql,要先下载mysql的repo源):

# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

  安装mysql57-community-release-el7-8.noarch.rpm包:

# rpm -ivh mysql57-community-release-el7-8.noarch.rpm  --nodeps --force

安装这个包后,会获得两个mysql的yum repo源:

# cd /etc/yum.repos.d
# ls -l

确认存在下列两个repo源文件:

安装mysql:

# yum install -y mysql-server

启动mysql服务,查看MySQL服务是否已启动:

# systemctl start mysqld
# service mysqld status

重置root密码:

MySQL5.7会在安装后为root用户生成一个随机密码,而不是像以往版本的空密码。 可以安全模式修改root登录密码或者用随机密码登录修改密码。

下面用随机密码方式:

MySQL为root用户生成的随机密码通过mysqld.log文件可以查找到:

# grep 'temporary password' /var/log/mysqld.log
# mysql -u root -p
mysql> Enter password: (输入刚才查询到的随机密码)

修改root用户密码:(MySQL的密码策略比较复杂,过于简单的密码会被拒绝)。首先修改安全策略,避免过于简单的密码被拒绝:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;

重置用户密码:

mysql> alter user 'root'@'localhost' identified by 'root-1234';

完成后,保存退出:

mysql> flush privileges;
mysql> quit;

使用刚刚设置的新密码登录:

# mysql -u root -p

mysql> use mysql;
如果进行操作出现下面的提示:
You must reset your password using ALTER USER statement before executing this statement. 就再设置一遍密码:
mysql> set password = password('root-1234');

开放3306端口

允许使用用户名root密码root-1234从任何主机连接到mysql服务器。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ' root-1234' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

安装mysql jdbc 驱动:

# yum install -y mysql-connector-java

4. 创建必要的数据库和数据库用户

安装完成后创建ambari数据库及用户,登录root用户执行下面语句:

mysql> create database ambari character set utf8;
mysql> CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari-1234';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
mysql> FLUSH PRIVILEGES;

如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:

mysql> create database hive character set utf8;
mysql> CREATE USER 'hive'@'%' IDENTIFIED BY 'hive-1234';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
mysql> FLUSH PRIVILEGES;

如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:

mysql> create database oozie character set utf8;
mysql> CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie-1234';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
mysql> FLUSH PRIVILEGES;

5. 下载Ambari的资源

下载HortWorks官网上的3个库到本地(也可以在线下载,但是速度会很慢)。

我们先把hortworks官网上需要下载的3个库下载到本地(这个还是需要很长时间的,当然你也可以在线下载,通过wget但是由于文件比较大,所以下载会非常慢)然后把他上传到我们的镜像服务器上。

最新版本链接:http://docs.hortonworks.com/HDPDocuments/Ambari-2.5.0.3/bk_ambari-installation/content/download_the_ambari_repo_lnx7.html   

文档编写时采用的是Ambari 2.2.1.0,但安装方法是一致的。

Ambari Repositories:

http://docs.hortonworks.com/HDPDocuments/Ambari-2.2.1.0/bk_Installing_HDP_AMB/content/_ambari_repositories.html

OS

Format

URL

RedHat 6

CentOS 6

Oracle Linux 6

Base URL

http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.0

Repo File

http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.0/ambari.repo

Tarball md5 |asc

http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.0/ambari-2.2.1.0-centos6.tar.gz

RedHat 7

CentOS 7

Oracle Linux 7

Base URL

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.1.0

Repo File

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.1.0/ambari.repo

Tarball md5 |asc

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.1.0/ambari-2.2.1.0-centos7.tar.gz

  两个是 HDP 2.4 Repositories:

OS

Version Number

Repository Name

Format

URL

RedHat 6

CentOS 6

Oracle Linux 6

HDP-2.4.0.0

HDP

Base URL

http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0

Repo File

http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0/hdp.repo

Tarballmd5 |asc

http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0/HDP-2.4.0.0-centos6-rpm.tar.gz

HDP-UTILS

Base URL

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6

Tarball md5 |asc

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz

RedHat 7

CentOS 7

Oracle Linux 7

HDP-2.4.0.0

HDP

Base URL

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0

Repo File

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0/hdp.repo

Tarball md5 |asc

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0/HDP-2.4.0.0-centos7-rpm.tar.gz

HDP-UTILS

Base URL

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7

Tarball md5 |asc

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz

  尝试新版本的话,请通过最新版链接中的找到最新版安装包。

   (Latest)Ambari 2.5.0 Repositories

OS

Format

URL

RedHat 6

CentOS 6

Oracle Linux 6

Base URL

http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3

Repo File

http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3/ambari.repo

Tarball md5 |asc

http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3/ambari-2.5.0.3-centos6.tar.gz

RedHat 7

CentOS 7

Oracle Linux 7

Base URL

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.0.3

Repo File

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.0.3/ambari.repo

Tarball md5 |asc

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.0.3/ambari-2.5.0.3-centos7.tar.gz

  (Latest)两个是 HDP 2.6 Repositories:

OS

Version Number

Repository Name

Format

URL

RedHat 6

CentOS 6

Oracle Linux 6

HDP-2.6.0.3

HDP

Base URL

http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.0.3

Repo File

http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.0.3/hdp.repo

Tarballmd5 |asc

http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.0.3/HDP-2.6.0.3-centos6-rpm.tar.gz

HDP-UTILS

Base URL

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6

Tarball md5 |asc

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6/HDP-UTILS-1.1.0.21-centos6.tar.gz

RedHat 7

CentOS 7

Oracle Linux 7

HDP-2.4.0.0

HDP

Base URL

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.0.3

Repo File

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.0.3/hdp.repo

Tarball md5 |asc

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.0.3/HDP-2.6.0.3-centos7-rpm.tar.gz

HDP-UTILS

Base URL

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7

Tarball md5 |asc

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz

 

6. 配置本地下载站

在ambari.server上配置httpd服务:

# yum install -y httpd

把下载到的3个资源文件,上传到ambari.server,并解压到制定目录:

# mkdir /var/www/html/ambari-hdp
# mkdir /var/www/html/ambari-hdp/HDP-UTILS
# tar -xvf ambari-2.2.1.0-centos7.tar.gz -C /var/www/html/ambari-hdp/
# tar -xvf HDP-2.4.0.0-centos7-rpm.tar.gz -C /var/www/html/ambari-hdp/
# tar -xvf HDP-UTILS-1.1.0.20-centos7.tar.gz -C /var/www/html/ambari-hdp/HDP-UTILS

启动httpd服务:

# systemctl start httpd

通过浏览器访问本地资源地址,如果能看到以下页面,则表示配置成功:

7. 配置Yum本地Repos资源池

在ambari.server上执行:

# yum install -y yum-plugin-priorities

a) 修改Yum安装源的校验

# vi /etc/yum/pluginconf.d/priorities.conf

#设置为以下内容

[main]
enabled=1
gpgcheck=0

b) 制作本地资源文件

创建Ambari、HDP、HDP-UTIL资源文件:

- ambari.repo:

[ambari-2.2.1.0]
name=ambari-2.2.1.0
baseurl=http://192.168.141.159/ambari-hdp/AMBARI-2.2.1.0/centos7/2.2.1.0-161
gpgcheck=0
gpgkey=http://192.168.141.159/ambari-hdp/AMBARI-2.2.1.0/centos7/2.2.1.0-161/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

- hdp.repo

[HDP-2.4.0.0]
name=Hortonworks Data Platform Version - HDP-2.4.0.0
baseurl=http://192.168.141.159/ambari-hdp/HDP/centos7/2.x/updates/2.4.0.0
gpgcheck=0
gpgkey=http://192.168.141.159/ambari-hdp/HDP/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

- hdp-util.repo

[HDP-UTILS-1.1.0.20]
name=Hortonworks Data Platform Version - HDP-UTILS-1.1.0.20
baseurl= http://192.168.141.159/ambari-hdp/HDP-UTILS-1.1.0.20/repos/centos7
gpgcheck=0
enabled=1
priority=1

制作完成后,移动到/etc/yum.repos.d/;依次执行以下命令,更新本地资源池:

# yum clean list

# yum update list

# yum makecache

等待更新完毕后,查看资源池:

# yum repolist

如果看到以下资源,表示配置成功:

8. 安装Ambari-Server

执行安装命令:

# yum install -y ambari-server

安装过程无需互动

如果提示找不到KEY,则执行如下命令:

rpm --import /var/www/html/ambari-hdp/AMBARI-2.2.1.0/centos7/2.2.1.0-161/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

将Ambari数据库脚本导入到数据库。

Ambari安装会将安装等信息写入数据库,建议使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL。如果使用自己定义的数据库,必须在启动Ambari服务之前导入Ambari的sql脚本。

用root用户登录mysql

# mysql -uroot -p

mysql> use ambari;
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

9. 配置Ambari-Server

执行配置命令:

# ambari-server setup

提示是否自定义设置?输入:y

Customize user account for ambari-server daemon [y/n] (n)? y

ambari-server 账号。输入:root。

Enter user account for ambari-server daemon (root): root

Adjusting ambari-server permissions and ownership...

检查防火墙,如果关闭则不用操作。

Checking firewall status...

Redirecting to /bin/systemctl status iptables.service

设置JDK。输入:3。

Checking JDK...Do you want to change Oracle JDK [y/n] (n)? y

[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK ========================================== Enter choice (1): 3

如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:

/usr/local/jdk/jdk1.8.0_131

WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos, please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /usr/local/jdk/jdk1.8.0_131 Validating JDK on Ambari Server...done.
Completing setup...

数据库配置。选择:y。

Configuring database...Enter advanced database configuration [y/n] (n)? y

选择数据库类型。输入:3。

Configuring database...
======================================== Choose one of the following options: [1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere ========================================== Enter choice (1): 3

设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。

Hostname (localhost): ambari.server
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (ambari-1234):

提示必须安装MySQL JDBC,已安装则直接通过。

WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java.

Press <enter> to continue.

启动ambari-server服务

# ambari-server start

启动后在浏览器输入Ambari地址:

http://192.168.141.159:8080/#/login

看到如下页面,则表示安装成功:

  

进入Ambari配置管理页面:

用户名:admin

密码:   admin

登录成功进入以下页面:

10. 安装Hadoop集群

a) 在集群节点上安装JDK

在3台作为Hadoop集群的机器上安装JDK,要与ambari.server上安装的完全一致

b) 安装ambari-agent

将ambari.server上的3个.repo文件复制到hadoop集群的三台服务器上;并完成yum源更新的命令。

  安装ambari-agent:在集群的3台电脑上执行添加,并添加成开机自启动服务:  

# yum install -y ambari-agent
# chkconfig --add ambari-agent

c) 通过安装向导,配置Hadoop集群

参考文档:

http://www.cnblogs.com/boyzgw/p/6525313.html

http://www.cnblogs.com/zlslch/p/6629235.html

https://yq.aliyun.com/articles/60217

CentOS7 搭建Ambari-Server,安装Hadoop集群(一)的更多相关文章

  1. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建

    Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...

  2. 通过ambari安装hadoop集群,ZT

    通过ambari安装hadoop集群,ZT http://www.cnblogs.com/cenyuhai/p/3295635.html http://www.cnblogs.com/cenyuhai ...

  3. 安装Hadoop集群的最快的软件

    Quick Hadoop是一款安装Hadoop集群的桌面软件,只需要点两下鼠标,一分钟之内安装Hadoop到集群上,超快! 还在每台主机的Shell里一行一行地敲安装Hadoop的命令?别苦逼了! 用 ...

  4. docker安装hadoop集群

    docker安装hadoop集群?图啥呢?不图啥,就是图好玩.本篇博客主要是来教大家如何搭建一个docker的hadoop集群.不要问 为什么我要做这么无聊的事情,答案你也许知道,因为没有女票.... ...

  5. 基于Ambari Server部署HDP集群实战案例

    基于Ambari Server部署HDP集群实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari Server端 博主推荐阅读: https://www.c ...

  6. 搭建 RabbitMQ Server 高可用集群

    阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 ...

  7. 搭建 RabbitMQ Server 高可用集群【转】

    阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 ...

  8. 安装hadoop集群--hdfs

    安装hadoop集群--hdfs 大数据软件 链接:https://pan.baidu.com/s/1-3PYLHMgvvONawJq55hstQ 提取码:izqf 准备一台干净的虚拟机-centos ...

  9. CentOS7 安装Hadoop集群环境

    先按照上一篇安装与配置好CentOS以及zookeeper http://www.cnblogs.com/dopeter/p/4609276.html 本章介绍在CentOS搭建Hadoop集群环境 ...

随机推荐

  1. android studio 2.32躺坑记

    按说这是没啥记录意义的.不过作为一个偶尔用一下ADT开发安卓程序的跨界老码农,遇到一个尴尬事,现在手机已经用上安卓6了,而电脑里的ADT里SDK还是18,19.越来越多的项目是android stud ...

  2. 一天搞定CSS:背景background--03

    背景分为-背景颜色和背景图片 1.背景属性 2.背景颜色 代码演示: <!DOCTYPE html> <html> <head> <meta charset= ...

  3. javaSE_07Java中类和对象-封装特性

    一.谈谈什么是面向对象的思维 理解面向对象,重点是要思考以下的问题 面向过程 vs 面向对象 Ø 谈谈什么是面向过程的编程思想? Ø 为什么有面向过程还要有面向对象? Ø 谈谈什么是面向对象的编程思想 ...

  4. 提升单元测试体验的利器--Mockito使用总结

    为神马要使用Mockito? 在编写单元测试的时候,为了尽可能的保证隔离性,我们时常需要对某些不容易构造或者不容易获取或者对外部环境有依赖的对象,用一个虚拟的对象来创建以便于测试.假设你正在开发的的代 ...

  5. oracle日期时间函数 总结

    表中存在伪列:sysdate,systimestamp 伪列存在但是不显示 select sysdate from dual; select systimestamp from dual; 日期计算公 ...

  6. MyEclipse解决SVN同步冲突问题conflict in the working copy obstructs the current operation

    服务端版本控制软件subversion,客户端是eclipse的插件subclipse.当删除一个东西的时候老是提示错误,说冲突 commit -m "" C:/Users/Adm ...

  7. 关于前后端同构,我的一点思路和心得(vue、nodejs、react、模版、amd)

    最近1年多,前后端同构慢慢变成一个流行词,也许很多人还停留在前后端分离的最佳实践道路上,但实际上又有一批人已经从简单的服务端渲染走向探索最佳前后端同构方案的路上了.不过,我只是膜拜后者的过客. 虽然大 ...

  8. window.close()方法对谷歌和火狐浏览器无效

    在近期的项目中,遇到了一个问题,就是用户到新浪支付进行操作,操作成功后,指定到一个网页,需求是点击确定,关闭该网页.需求出来以后认为这种就是小菜一碟,直接用 window.close()方法就可以实现 ...

  9. tomcat之 JDK8.0安装、tomcat-8.5.15安装

    前言:JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品.自从Java推出以来,JDK已经成为使用最广泛的Java SDK. JDK是整个Ja ...

  10. nodejs 字符串全排列 和 去重

    以前写了个java版的 现在写个nodejs 版的 var list = sort('CCAV');var noRepeat = {};for(var i in list){ noRepeat[lis ...