#大数据学习笔记# 汇总

Java


Linux


Hadoop


Zookeeper


Hive


大数据Hadoop完全分布式环境搭建轻松搞掂步骤

1、Linux虚拟机安装,添加centos用户


Linux发行版:CentOS 7
新增用户:centos

配置分布式的规划IP:

Select Code
1
2
3
4
5
127.0.0.1 localhost
192.168.10.201 s201
192.168.10.202 s202
192.168.10.203 s203
192.168.10.204 s204

配置IP地址:

Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$>vim/etc/sysconfig/network-scripts/ifcfg-eno16777736

TYPE="Ethernet"
BOOTPROTO="static" //修改为静态地址
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="e6767070-2995-451c-bf70-293efa16d962"
DEVICE="eno16777736"
ONBOOT="yes"	//修改为yes
// 新增IP地址配置信息,其他保持不变
IPADDR=192.168.10.201
PREFIX=24	
GATEWAY=192.168.10.2
NETMASK=255.255.255.0
DNS=8.8.8.8
DNS2=114.114.114.114

配置hostname

Select Code
1
$>vim /etc/hostname

输入:s201

s202,s203,s204克隆s201。

2、安装JAVA


下载:jdk-8u65-linux-x64.tar.gz
根目录下创建目录:sudo mkdir /soft

Select Code
1
2
3
4
$>chown centos:centos /soft
$>cd /soft
$>tar -xzvf jdk-8u65-linux-x64.tar.gz
$>ln -s /soft/jdk1.8.0_131 /soft/jdk

3、安装Hadoop


下载:hadoop-2.7.3.tar.gz

Select Code
1
2
$>tar -xzvf hadoop-2.7.3.tar.gz
$>ln -s /soft/hadoop-2.7.3 /soft/hadoop

4、写入环境变量

Select Code
1
$>sudo vim /etc/profile

写入如下配置:

Select Code
1
2
3
4
5
6
7
export JAVA_HOME=/soft/jdk
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export PS1='[\u@\h `pwd`]\$'

使配置生效:

Select Code
1
$>source /etc/profile

检查配置是否生效:

Select Code
1
2
java -version
hadoop version

5、配置Hadoop


配置hadoop,使用符号连接的方式,让三种配置形态共存。

Select Code
1
2
3
4
$>cp -r /soft/hadoop/etc/hadoop /soft/hadoop/etc/local
$>cp -r /soft/hadoop/etc/hadoop /soft/hadoop/etc/pesudo
$>cp -r /soft/hadoop/etc/hadoop /soft/hadoop/etc/full
$>rm -rf /soft/hadoop/etc/hadoop

需要使用哪种模式就创建软链接指向对应的配置:

Select Code
1
$>ln -s /soft/hadoop/etc/full /soft/hadoop/etc/hadoop

a) 进入${HADOOP_HOME}/etc/hadoop目录

b) 编辑core-site.xml

Select Code
1
2
3
4
5
6
7
<?xml version="1.0"?>
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://s201/</value>
	</property>
</configuration>

c) 编辑hdfs-site.xml

Select Code
1
2
3
4
5
6
7
<?xml version="1.0"?>
<configuration>
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
</configuration>

d) 编辑mapred-site.xml

Select Code
1
2
3
4
5
6
7
8
cp mapred-site.xml.template mapred-site.xml
<?xml version="1.0"?>
<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

e) 编辑yarn-site.xml

Select Code
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0"?>
<configuration>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>s201</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
</configuration>

f) 编辑slaves

Select Code
1
2
3
s202
s203
s204

g) 编辑hadoop-env.sh

Select Code
1
2
3
...
export JAVA_HOME=/soft/jdk
...

6、克隆虚拟机


s202,s203,s204克隆s201。

克隆后:修改每台机器的ip地址:

Select Code
1
$>vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

检测是否成功:CMD客户端是否可以ping ip通过。

7、配置SSH无密登录


远程连接s202,s203,s204清空 /home/centos/.ssh,使用centos用户创建 /home/centos/.ssh 目录(注意目录的权限)

在客户端s201生成公钥和秘钥:

Select Code
1
2
3
4
5
6
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

$>scp id_rsa.pub centos@s201:/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s202:/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s203:/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s204:/home/centos/.ssh/authorized_keys

测试

Select Code
1
$>ssh localhost

(注意:/home/centos/.ssh的目录权限为700)

Select Code
1
2
3
-rw-r--r--  1 centos centos  393 Nov 18 04:59 authorized_keys
-rw-------  1 centos centos 1675 Nov 18 04:58 id_rsa
-rw-r--r--  1 centos centos  393 Nov 18 04:58 id_rsa.pub

authorized_keys 文件的权限为 644。

Select Code
1
2
3
4
ssh s201 chmod 644 ~/.ssh/authorized_keys;
ssh s202 chmod 644 ~/.ssh/authorized_keys;
ssh s203 chmod 644 ~/.ssh/authorized_keys;
ssh s204 chmod 644 ~/.ssh/authorized_keys;

测试s201无密登录s202,s203,s204 (登录后exit退出,测试下一个)

8、如果存在临时文件,则需要清空

Select Code
1
2
3
4
5
6
7
8
$>ssh s202 rm -rf /tmp/hadoop-centos/;
ssh s203 rm -rf /tmp/hadoop-centos/;
ssh s204 rm -rf /tmp/hadoop-centos/;
ssh s201 rm -rf /tmp/hadoop-centos/;
ssh s201 rm -rf /soft/hadoop/logs/*;
ssh s202 rm -rf /soft/hadoop/logs/*;
ssh s203 rm -rf /soft/hadoop/logs/*;
ssh s204 rm -rf /soft/hadoop/logs/*;
Select Code
1
hadoop namenode -format;//清空完毕后,格式化

注意:命令可以在一行执行,命令之间使用 ‘;’ 隔开

9、一切准备后续后,开始启动

Select Code
1
$>start-all.sh

完成启动后,jps 测试:
s201
[centos@s201 /home/centos]$jps
24032 SecondaryNameNode
24753 Jps
24211 ResourceManager
23868 NameNode

s202
[centos@s202 /home/centos]$jps
21217 DataNode
21322 NodeManager
21549 Jps

s203
[centos@s203 /home/centos]$jps
21204 Jps
20886 DataNode
20990 NodeManager

s204
[centos@s204 /home/centos]$jps
21028 NodeManager
21241 Jps
20924 DataNode

最终测试WEB页面:
http://192.168.10.201:50070/

《失控:全人类的最终命运和结局》摘要

大型任务如何通过去中心化的方法并借助最少的规则来完成,并非所有的事物都需要事先计划好。

自底向上而非自顶向下地构建事物,去中心化系统的优势,人造与天生之间的连续性。

我们对于如何使大规模复杂事物运作起来的理解仍然少有进展。无论是人工生命还是机器人技术,抑或是生态学或仿真学领域中,并没有出现重大思想。

并行分布式计算非常适用于感知、视觉和仿真领域。

如今,经济学家们认为,只有把产品当服务来做,才能取得最佳的效果。你卖给顾客什么并不重要,重要的是你为顾客做了些什么?

当还原至其本质时,生命很像是计算时用的函数。

世界上最本质的东西就是信息。

一个纯粹网络化的公司,应该具有以下几个特点:分布式、去中心化、协作以及可适应性。

进化中肯定存在着长期趋势,即较小的生物如细菌是早于鲸这类大型生物而出现的。

今天的世界已经够复杂了,而明天的一切将更加复杂。

 

链接:

记录一个团购方案

# 团购 #
1. 后端添加团购活动的商品,必填字段:活动开始时间、活动结束时间、团购活动价格、限制最多团购数量
2. 前端展示团购活动商品列表,详情页展示团购活动信息:团购价格、团购倒计时时间;条件:
<1>. 活动期间内的活动
<2>. 活动状态没有结束
<3>. (活动的团购数量 – 已经参与团购的数量)大于0
3. 添加到购物车
<1>. 校验:活动是否有效,团购库存,团购时间是否过期,是否结束
4. 购物车商品展示
<1>. 判断是活动产品,展示活动价格
5. 购物车价格计算接口
<1>. 判断是否是活动产品,重新计算活动后的价格
6. 提交订单,参与了团购活动的订单,支付成功时,更新团购的商品信息,字段:团购人数
7. 记录参与团购活动的订单日志

2018.3.14

#原创# CMSTOP系统快速入门

# CMSTOP #
熟悉CMSTOP系统,首先别急着阅读源码,毕竟作为一款商业的CMS,直接阅读源码反而不能快速的使用起来!从后台的功能使用上去熟悉是比较容易理解整个应用的构建思想的。
后台也是基于MVC的路径的,可以快速的找到对应的控制器,但CMS前台的则是生成的静态页面,路径根据路径的设置(在后台新建栏目、页面时指定)而生成的一系列静态文件,所以直接通过前台的路径去找源码是相对其他MVC系统而言的一大区别。

1、资源下载
源码:https://coding.net/u/webjust/p/cms_top/git
> 核心文件经过了Zend加密,可以通过解密网站进行解密:http://dezend.qiling.org/free/

2、环境搭建
下载PHPSTUDY2016 http://www.php.cn/xiazai/gongju

2.1、服务器端包含(ssi)
Apache下开启SSI配置使html支持include包含的方法

Select Code
1
2
3
4
5
6
7
8
9
10
11
12
13
<VirtualHost *:80>
    DocumentRoot "D:\phpStudy\WWW\cmstop.info"
    ServerName cmstop.info
    ServerAlias cmstop.info
  <Directory "D:\phpStudy\WWW\cmstop.info">
    Options Indexes FollowSymLinks Includes
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

2.2、magic_quotes_gpc函数关闭:
在php.ini文件内找到
magic_quotes_gpc = On
将其改为
magic_quotes_gpc = Off

2.3、支持index.shtml索引页

Select Code
1
2
3
<IfModule dir_module>
    DirectoryIndex index.html index.shtml index.php index.htm l.php
</IfModule>

2.4 win7x64+PHPStudy2018安装redis扩展
https://blog.csdn.net/leejianjun/article/details/79555026
https://windows.php.net/downloads/pecl/releases/redis/3.0.0/php_redis-3.0.0-7.0-nts-vc14-x86.zip
https://windows.php.net/downloads/pecl/releases/igbinary/2.0.5/php_igbinary-2.0.5-7.0-nts-vc14-x86.zip

3、后台操作流程解读
3.1 新增栏目:

以栏目为例,最终会在数据库存储栏目对应的模板文件、URL路径(理解这部分是理解前台的生成页面的URL的关键所在),大部分CMS属于是静态的页面,所以前台会生成静态文件。

这里,我们还要理解CMSTOP一个比较关键的概念「区块」。下面是一个视图文件的源码;

Select Code
1
<!--{template 'system/header.html'}-->

这是引入公共的模板文件

Select Code
1
<!--#include virtual="{ROOT}section/30.html"-->

这是引入区块。可以认为CMSTOP的每一个前台的页面,都是可以由很多个自定义的区块组合而成一个页面,这样维护人员就可以很容易的在页面上添加一个元素,非常灵活,算是其很大的一个特色了。

3.2 区块
以首页为例:

区块中,你可以定义HTML,也可以根据模板引擎的语法自定义动态的输出等内容;

首页模板:

原先的模板如上,替换掉区块以后的代码就是这样的:

你可能会问:怎么不直接定义在模板文件中呢?区块你可以理解为公共部分的提取,我可能会很灵活的用在多个页面,而管理「区块」的任务也不需要由「程序员」来完成,内容管理员就可以维护区块了。是不是很方便处理像CMS页面上的广告位(类似的这种功能)?

最终存储在数据库 `cmstop_section` 的「区块」,都对应1个ID。

生成的区块的静态文件,都存放在 /section 根目录下,而不需要从数据库读取,至于如何生成这些静态文件,则可以进一步的去理解系统里面是如何生成的,要找到这个方法也是顺其自然的。

如果需要了解进一步生成区块静态文件的方法,就可以根据这个方法找到对应的后台控制器方法

以此类推,可以找到生成栏目页、新闻内容页、自定义的页面:

总之,到这里为止,我们应该充分的理解CMSTOP的前台页面的URL是根据后台设置的规则生成的纯静态文件。

4、其他功能

当然作为一个强大的内容管理系统,内容是核心,而其他的组件都是为内容的维护服务的,可以多在后台使用其他的功能,结合对应的表结构来理解,就可以很容易掌握,从而根据需求来进行一些二次开发的任务。官网也有详细的手册:http://www.cmstop.com/help/

结尾:
至于MVC里面的模板,控制器,模型,可以参考二次开发手册,也可以根据系统已经生产的一套页面的源码,去直接借用即可,这里不做过多的阐述:http://doc.cmstop.com/develop/