异度部落格

学习是一种生活态度。

0%

Cloudera Manager 安装

1)安装 Postgresql

具体安装及配置参见:Postgresql 安装及配置

修改 yum.conf

由于 Cloudera 的服务器在国外,网络连接较慢,经常在安装过程中包下载失败,进而导致安装失败。

1
sudo gedit /etc/yum.conf

添加timeout=0

1
sudo yum update

3)安装 Cloudera Manager

下载地址: https://ccp.cloudera.com/display/SUPPORT/Downloads

1
2
sudo +x cloudera-manager-installer.bin
sudo ./cloudera-manager-installer.bin

之后一路 Next/Yes 即可

安装完成试着访问http://localhost:7180/, 如没问题说明安装完成

Cloudera Cluster 安装

1) 修改/etc/hosts

添加

1
2
10.182.251.250 zhenlhua-master
10.182.251.239 zhenlhua-slave1

2)创建无密码 SSH 链接*

在 master 机器上执行 ssh-keygen -t rsa,在~/.ssh/中生成 id_rsa 和 id_rsa.pub。

将 id_rsa.pub 拷贝到 slave 机器,并且将 id_rsa.pub 的内容添加到~/.ssh/authorized_keys 中,修改权限.

1
2
3
touch ~/.ssh/authorized_keys
sudo chmod 700  ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys

在 master 里连接 slave

1
2
ssh zhenlhua-slave1
ssh zhenlhua-slave2

3)安装 Cloudera Cluster

① 登录 访问 http://10.182.251.250:7180
用户名:admin
密码:admin
image

② 版本选择
image

③ 安装组件列表
image

④ 指定主机名
image

⑤ 选择软件安装方式
image

⑥ 集群安装
image

⑦ 检查主机正确性
image

⑧ 安装 CDH4 服务
image

⑨ 安装数据库
image

⑩ 适合配置
image

安装

1
sudo yum install postgresql postgresql-server

初始化数据库

1
  service postgresql initdb

配置 postgresql.conf

1
sudo vi /var/lib/pgsql/data/postgresql.conf
1
2
3
4
5
6
7
8
#---------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#---------------------------------------------------------------------------
listen_addresses = '*'              # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost', '*' = all
                                        # (change requires restart)
port = 5432                          # (change requires restart)

配置 pg_hba.conf

1
sudo vi /var/lib/pgsql/data/pg_hba.conf
1
2
3
4
5
6
7
8
9
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all         192.168.137.2/16        md5 
host    all         all         192.168.137.3/16        md5 
# IPv6 local connections:
host    all         all         ::1/128               md5 

重启服务

1
sudo service postgresql restart

主机系统:Windows 7 Professional

虚拟系统:Oracle Linux 6

虚拟机:VirtualBox

步骤:

1)开启主机网卡网络共享

image

2)虚拟机选择网卡

image

3)虚拟机内系统网卡配置

此处 Gateway:192.168.137.1,为 VirtualBox Host-Only Ethernet Adapter 的 IP 地址,此处 DNS 是必须的,如果不加 DNS 将无法访问外网。

image

1)将 Word 文档另存为 XML 格式的文件。

2)修改 XML 文件,删去 w:documentProtection 的一段标签。

3)使用 Word 打开 XML 文件,将文件再转成 Word 文件。

Equals:

Object 类中的 equals 方法用于检测一个对象是否等于另一个对象。

实现:

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
26
27
28
29
30
public class MyClass {

private Integer field1;

private String field2;

@Override
public boolean equals(Object otherObject) {

// 判断是否引用同一个对象
if (this == otherObject) {
return true;
}

// 检测otherObject是否为空
if (otherObject == null) {
return false;
}

// 比较this和otherObject是不是属于同一个类
if (!(otherObject instanceof MyClass)) {
return false;
}

// 比较每个域是否相等
MyClass other = (MyClass) otherObject;
return this.field1.equals(other.field1)
&& this.field2.equals(other.field2);
}
}

Windows 版的 python2.7 是由 Visual Studio 2008 生成,而本机所安装的 visual studio 不是 2008,这时候需要新建环境变 VS90COMNTOOLS,使其指向已安装 VS 版本的路径,如 E:/Program Not only do you have to win all your casino games , you are doing just the opposite of a teaser in that your GIVING AWAY points instead of receiving them. Files/Microsoft Visual Studio 10.0/Common7/Tools/。

攻略:

在网页源码中有着这么一段话

1
2
3
<peakhell src="banner.p">
<!-- peak hell sounds familiar ? -->
</peakhell>

这里包含有两个信息:数据文件 banner.p 以及 pickle 模块
pickle 是 Python 的序列化模块,提供 Python 对象的序列化与反序列化

代码:

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
26
27
28
29
30
#!/usr/bin/env/python
#coding:utf8
'''
Created on May 13, 2013

@author: killua
@url: http://www.pythonchallenge.com/pc/def/peak.html
@target: http://www.pythonchallenge.com/pc/def/channel.html
'''

import urllib
import pickle

def read_page(url):
text = urllib.urlopen(url)
return text

def deserialization(text):
return pickle.loads(text)

if __name__ == '__main__':
text = open('./input/level05.in').read()
orgin_objects = deserialization(text)

#draw graph by lists
for obj in orgin_objects:
line = ''
for item in obj:
line += item[0] * item[1]
print line

完整代码:

Github:https://github.com/zhenlohuang/python-challenge

攻略:

1
2
3
4
K + 2 = M
O + 2 = Q
E + 2 = G
也就是译码问题,将所有字母的ASC码加2

代码:

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
26
27
28
29
30
#!/usr/bin/env/python
#coding:utf8
'''
Created on May 2, 2013

@author: killua
@url:http://www.pythonchallenge.com/pc/def/map.html
@target: @url:http://www.pythonchallenge.com/pc/def/ocr.html
'''

#version 1
print chr(ord("m") + 2)+chr(ord("a") + 2)+chr(ord("p") + 2)

"""
PS:
字符与ASCII转换
char->ascii ord()
ascii->char chr()
"""

#version 2
print '*' * 20

import string

s1 = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
s2 = "map"
t = t=string.maketrans( 'abcdefghijklmnopqrstuvwxyz ', 'cdefghijklmnopqrstuvwxyzab ')
print string.translate(s1,t)
print string.translate(s2, t)

完整代码:

Github:https://github.com/zhenlohuang/python-challenge

攻略:

查看网页源代码,你就可以看到一堆字符,只要在里面找出 rare characters(出现次数最少的字符)就可以了。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env/python
#coding:utf8
'''
Created on May 2, 2013

@author: killua
@url: http://www.pythonchallenge.com/pc/def/ocr.html
@target: http://www.pythonchallenge.com/pc/def/equality.html
'''

import re

data = open('./input/level02.in').read()

res = re.findall(r"[A-Za-z]", data)
print ''.join(res)

完整代码:

Github:https://github.com/zhenlohuang/python-challenge