YYChildren's Garden

杯水长情


  • 首页

  • 归档

  • 搜索

CDH 5.7 安装

发表于 2016-05-04 | 评论数: | 阅读次数:

搭建镜像

安装位置:192.168.8.209
参考:http://yychildren.leanote.com/post/安装Cloudera-5.7.0镜像/

准备三台机器

1
2
3
ycj1.mingchao.com
ycj2.mingchao.com
ycj3.mingchao.com

安装基本软件

安装yum库

1
yum install -y wget
  • 163的yum库

    1
    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -P /etc/yum.repos.d
  • epel库

    1
    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

基本软件

1
2
3
4
5
6
yum install -y vim lrzsz python openssh openssh-clients
# vim
# lrzsz
# python 2.6/2.7
# openssh
# openssh-clients

host 设置

1
2
3
4
5
6
# 你的镜像服务器,参考"安装Cloudera 5.7.0镜像"
192.168.8.209 archive.cloudera.com

192.168.116.21 ycj1.mingchao.com
192.168.116.22 ycj2.mingchao.com
192.168.116.23 ycj3.mingchao.com

生成ssh密钥对

1
ssh-keygen

添加公钥

ycj1.mingchao.com上做

1
2
3
ssh-copy-id ycj1.mingchao.com
ssh-copy-id ycj2.mingchao.com
ssh-copy-id ycj3.mingchao.com

禁用selinux

参考:http://www.thegeekstuff.com/2009/06/how-to-disable-selinux-redhat-fedora-debian-unix/
永久

1
2
cat /etc/selinux/config
## 之后重启电脑

1
2
3
4
5
6
7
8
9
10
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

临时(没成功)

1
2
3
echo 0 > /selinux/enforce
## or
setenforce 0

查看selinux状态

1
2
getenforce
# Disabled

关闭防火墙

永久(需重启)

1
chkconfig iptables off

临时

1
service iptables stop

yum 不检验ssl

原因是5.7.0的访问以https的形式

1
2
# 在/etc/yum.conf 下添加
sslverify=false

安装Cloudera manager

ycj1.mingchao.com上做

1
2
3
4
5
6
wget http://archive.cloudera.com/cm5/installer/5.7.0/cloudera-manager-installer.bin
chmod u+x cloudera-manager-installer.bin
# 从Internet安装
sudo ./cloudera-manager-installer.bin
# 从本地库安装 (这里不采用)
sudo ./cloudera-manager-installer.bin --skip_repo_package=1

安装完后等待,直到

1
2
3
netstat -anp | grep 7180
# tcp 0 0 0.0.0.0:7180
# 0.0.0.0:* LISTEN 1676/java

cloudera-manager

登录

链接:http://192.168.116.21:7180/
账号:admin
密码:admin

下一步到


可以选择使用数据包或者使用Parcel


使用以下搜索主机:

1
ycj[1-3].mingchao.com

继续–安装JDK


选定:

继续–SSH登录凭据


选择:


继续–等待安装


权限问题解决

1
2
3
4
sudo -u hdfs hadoop fs -chmod 777  /
sudo -u hdfs hadoop fs -mkdir -p /user/spark/applicationHistory
sudo -u hdfs hadoop fs -chown -R spark /user/spark
sudo -u hdfs hadoop fs -chmod 1777 /user/spark/applicationHistory

安装完成

证书问题

报错:


原因

没有cloudera的证书

解决

  • 中止安装
  • yum 不验证ssl
    1
    2
    3
    ># 在/etc/yum.conf 下添加
    >sslverify=false
    >
  • 卸载失败的主机
  • 重试失败的主机

    添加证书

    但在CentOS 6下无效的方法,已经被确定为CentOS的bug:https://www.centos.org/forums/viewtopic.php?t=1073
    更新ca-certificates
    1
    2
    >yum --disablerepo=cloudera-manager -y update ca-certificates
    >

导出cloudera的证书为cloudera.cer




导入证书

1
2
3
4
5
转换格式 .cer 到 .pem
openssl x509 -inform der -in cloudera.cer -out cloudera.pem
追加到信任列表
cat cloudera.pem >> /etc/pki/tls/certs/ca-bundle.crt
>

参考

  • http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_install_path_a.html#cmig_topic_6_5

我眼中的程序

发表于 2016-04-24 | 评论数: | 阅读次数:

背景

随着程序越写越多,接触的语言逐渐广泛,开始思考程序到底是什么,怎样编写程序。以下是个人的一些理解,并非权威定义,欢迎探讨与批判。

通常介绍

尼古拉斯·沃斯 :算法+数据结构=程序

我的理解

算法:对于0个或多个输入数据进行一系列有限步骤之后得出1个或以上的输出结果。本质上是一个行为说明书。
数据结构:对数据以及数据之间的关联关系的描述。本质上就是数据。
程序:通过上面的理解,可以认为程序=数据+行为

  • 这样说或许比较抽象,可以参考一个例子:
  • 我从商场买了回来一个吊扇,现在我要把她装到我的床上:
  • 那么:
  • 数据:里面的螺丝、扇翼等基本配件可以认为是数据。
  • 行为:介绍如可安装电风扇的说明说就是行为。

程序在编程语言上的体现

编程语言大致可以分为三种:


  • 面向过程:
  1. 对于一个问题,详细描述解决问题的过程。
  2. 典型代表,C语言
  • 面向对象:
  1. 重在数据,通过封装将数据抽象化,将方法应用于特定抽象化数据。
  2. 工业界主流,C++、Java、Python等
  • 函数式编程:
  1. 重在行为,将行为定义成函数,函数可作为参数传递以及作为返回值返回。
  2. schema、erlang、scala等。

可以看到实际上面向对象实际上将重点放在数据的组织上,让程序看起来就像是现实世界上不同个体与整体的映射。
而函数式编程这是重在行为,意看起来是将现实中的种种方法步骤以函数作为载体映射到程序里。
至于面向过程,我使用较少,不做评论。


那么有没有数据和行为都重点关注的语言呢?
有的,如

  • python:面向对象语言,把一切看做对象,函数也是对象。
  • scala:函数式编程语言,运行于Java虚拟机。虽然推崇函数式编程,但也提供了对象的封装。

编程语言的两个极端

  • Lisp:计算的需求,也就是行为的体现。
  • C:抽象的需求,也就是数据的体现。
12

YYChildren

12 日志
GitHub
© 2018 YYChildren
由 Hexo 强力驱动 v3.7.0
|
主题 — NexT.Mist v6.1.0