YYChildren's Garden

杯水长情


  • 首页

  • 归档

  • 搜索

解析 ipip.net datx 格式的Erlang代码

发表于 2018-07-14 | 评论数: | 阅读次数:

解析ipip.net datx 文件

ipip.net 提供datx 格式的IP库文件, 不再提供 dat格式的IP地址库文件更新,

1、为方便用户使用,现统一提供DATX 格式的数据版本,查询性能比 DAT 版本快很多倍,具体请见后台文档说明。

2、本付费服务仅授权于一家公司内使用,如果您需要给关联公司使用,请与我们的售前客服联系。

ipip.net 本身并没有提供Erlang的解析代码,所以就自己参照Python解析代码实现了一个,edatx.

这个实现支持免费版IP库: 17monipdb.datx

代码示例

1
2
3
4
5
% 查询地级市精度的IP库

City = edatx_city:init("/path/to/mydata4vipday2.datx").
io:format("~ts,~ts,~ts,~ts~n", edatx_city:find("8.8.8.258", City)).
io:format("~ts,~ts,~ts,~ts~n", edatx_city:find("255.255.255.255", City)).

edatx 的 github 地址

https://github.com/YYChildren/edatx

数据下载地址

https://www.ipip.net/product/ip.html

ubuntu下安装MooseFS单机版

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

介绍

MooseFS,是千兆级的分布式的文件系统,遵循 POSIX 协议。

资源

官方文档

https://moosefs.com/

github 地址

https://github.com/moosefs/moosefs

安装步骤

添加源

  • Add the key:

    1
    wget -O - https://ppa.moosefs.com/moosefs.key | apt-key add -
  • Add an appropriate repository entry in /etc/apt/sources.list.d/moosefs.list:

    1
    echo "deb http://ppa.moosefs.com/moosefs-3/apt/ubuntu/xenial xenial main" > /etc/apt/sources.list.d/moosefs.list
  • Then run:

    1
    apt update

安装 moosefs-master

  • 安装

    1
    apt install moosefs-master
  • 启动

    1
    mfsmaster start
  • 添加host: /etc/hosts

    1
    192.168.8.30 mfsmaster

安装 moosefs-chunkserver

  • 安装

    1
    apt install moosefs-chunkserver
  • 在/etc/mfs/mfshdd.cfg 添加1个或多个路径,作为分区存储数据,例如

    1
    2
    3
    /data/database/mfs/chunks1
    /data/database/mfs/chunks2
    /data/database/mfs/chunks3

建议使用XFS作为底层文件系统

  • 创建目录和授权

    1
    2
    3
    mkdir -p /data/database/mfs/chunks1 /data/database/mfs/chunks2 /data/database/mfs/chunks3
    chown mfs:mfs /data/database/mfs/chunks1 /data/database/mfs/chunks2 /data/database/mfs/chunks3
    chmod 770 /data/database/mfs/chunks1 /data/database/mfs/chunks2 /data/database/mfs/chunks3
  • 启动

    1
    mfschunkserver start

客户端:挂载MooseFS 文件系统

  • 安装

    1
    apt install moosefs-client
  • 挂载

    1
    2
    mkdir /data/mfs
    mount -t moosefs mfsmaster: /data/mfs
  • 可以在/etc/fstab下添加MooseFS 的挂载

    1
    mfsmaster:    /data/mfs    moosefs    defaults,mfsdelayedinit    0 0
  • 现在,可以切换到 /data/mfs 管理你的文件

web 监控(可选)

  • 安装

    1
    apt install moosefs-cgi moosefs-cgiserv moosefs-cli
  • 启动web监控

    1
    mfscgiserv start

在http://mfsmaster:9425 查看moose文件系统情况

moosefs-metalogger(可选,建议)

  • 强烈建议在不是master节点的机器上安装至少一个Metalogger, Metalogger 不断地同步和备份元数据。

  • 安装

    1
    apt install moosefs-metalogger
  • 启动

    1
    mfsmetalogger start

基于erlang动态编译的简单配置方案:econfig

发表于 2017-11-01 | 评论数: | 阅读次数:

前提

在使用erlang 编程的时候,经常需要抽离配置文件。

通常配置方式有以下三种:

  1. 使用ets存储。
  2. 使用erlang 的 application environment,实际上也是使用ets存储的。文档参考
  3. 使用动态编译,将配置编译成erlang模块。这样程序可以直接访问代码区,并且无锁,另外由于erlang本身将代码保存两份的热更新机制,在更新配置的时候不会出现短暂读取不到配置的情况。单这种方案有个缺点,在配置过多的情况下,动态编译会比较慢。

使用动态编译构建配置

  • 我根据ejabberd的dynamic_compile.erl 构建了一个简单的基于动态编译的配置方案: econfig
  • 使用例子
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    KVs = [{1,1}, {2,2}, {3,3}],
    TestCase = [
    {test1, KVs},
    {test2, fun() -> KVs end}
    ],

    econfig:reload_config(TestCase),
    %% or
    [econfig:reload_config(TestCase) || C <- TestCase],

    %% 访问单个配置
    1 = econfig:find(test1, 1),

    %% 访问不存在的配置
    undefined = econfig:all(4),

    %% 访问所有配置(根据key排序)
    KVs = econfig:all(test1).

impala 解析json

发表于 2017-10-17 | 评论数: | 阅读次数:

前提

直接通过hql查询字段为json字符串里的值,比如

1
获取'{"keyword":1}' 的keyword值 1

网上相关的文章

  • 相关issue: https://issues.apache.org/jira/browse/IMPALA-376

  • 这篇issue提到impala官方仍然为实现impala的json函数,但是评论中有提到2中方法

  1. 直接引用hive的udf
  2. 开源的实现: https://github.com/nazgul33/impala-get-json-object-udf
  • 为了简单起见,我直接使用了第一种方案,impala引入HiveUDF的方法参考: https://www.cloudera.com/documentation/enterprise/latest/topics/impala_udf.html#udfs_hive

  • 该函数的使用方法参考:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

在CDH 集群上的实现

1
2
3
4
5
6
7
8
sudo -u impala hadoop fs -mkdir -p /user/impala/udf
sudo -u impala hadoop fs -put -f /opt/cloudera/parcels/CDH/jars/hive-exec-*.jar /user/impala/udf/hive-exec.jar
impala-shell -q "
CREATE DATABASE IF NOT EXISTS udf;
USE udf;
DROP FUNCTION IF EXISTS udf.get_json_object(string, string);
CREATE FUNCTION udf.get_json_object(string, string) returns string location '/user/impala/udf/hive-exec.jar' symbol='org.apache.hadoop.hive.ql.udf.UDFJson';
"

测试

1
2
3
4
5
6
Query: select udf.get_json_object('{"keyword":1}', '$.keyword')
+---------------------------------------------------+
| udf.get_json_object('{"keyword":1}', '$.keyword') |
+---------------------------------------------------+
| 1 |
+---------------------------------------------------+

pyspark 报错问题

发表于 2017-04-01 | 评论数: | 阅读次数:

运行代码

1
2
3
# pyspark
>>> textFile = sc.textFile("/tmp/1.sh")
>>> textFile.count()

报错

1
Python in worker has different version 2.6 than that in driver 2.7, PySpark cannot run with different minor versions

原因

  • pytspark 启动时使用的是python2.7
  • 内部脚本设置的PYSPARK_PYTHON 是python2.6

解决

增加 config/spark-env.sh 配置

1
PYSPARK_PYTHON=/usr/local/bin/python

CDH 解决办法

Hadoop NameNode 无法启动:删除SnapShot所导致

发表于 2017-02-05 | 评论数: | 阅读次数:

事件回顾

2017-02-03 14:14 时看到Hadoop Namenode的swap占用较高,于是尝试重启NameNode以释放Swap。想不到竟然无法启动。

日志如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2017-02-03 14:15:09,218 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
java.lang.NullPointerException
at org.apache.hadoop.hdfs.server.namenode.INodeDirectory.addChild(INodeDirectory.java:531)
at org.apache.hadoop.hdfs.server.namenode.FSImageFormatPBINode$Loader.addToParent(FSImageFormatPBINode.java:252)
at org.apache.hadoop.hdfs.server.namenode.FSImageFormatPBINode$Loader.loadINodeDirectorySection(FSImageFormatPBINode.java:202)
at org.apache.hadoop.hdfs.server.namenode.FSImageFormatProtobuf$Loader.loadInternal(FSImageFormatProtobuf.java:261)
at org.apache.hadoop.hdfs.server.namenode.FSImageFormatProtobuf$Loader.load(FSImageFormatProtobuf.java:180)
at org.apache.hadoop.hdfs.server.namenode.FSImageFormat$LoaderDelegator.load(FSImageFormat.java:226)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:929)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:913)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImageFile(FSImage.java:732)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:668)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:281)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1061)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:765)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:604)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:663)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:830)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:814)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1507)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1575)
2017-02-03 14:15:09,238 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1

Hadoop 版本信息

我们当时使用的Hadoop版本为CDH5.4.9

问题发现

  1. Google之,得到Apache 官方有提到该Bug
    地址:https://issues.apache.org/jira/browse/HDFS-9406
  2. 另外CDH官方有提到解决该问题的版本
    地址:https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_rn_fixed_in_54.html#fixed_issues_5410
  3. 问题解释
    当删除一个包含INode的最新记录的快照时,fsimage有可能崩溃,因为更早快照的diff的create-list 和 父亲INodeDirectory的child list没有清理。

    When deleting a snapshot that contains the last record of a given INode, the fsimage may become corrupt because the create list of the snapshot diff in the previous snapshot and the child list of the parent INodeDirectory are not cleaned.

解决过程

  1. 尝试以 2017-02-03 12 时的 fsimage 恢复,发现问题依旧。
  2. 升级CDH 版本到5.4.11,发现问题依旧
  3. 继续升级版本到5.7.5,发现问题依旧
  4. 查看修复版本的关键文件 INodeDirectory.java、FSImageFormatPBINode.java、FSImageFormatProtobuf.java(位于hadoop-common项目),发现并没有对空指针异常做处理的代码。
  5. 查看patch,实际上也只是让删除快照变得正常,但是对已经出问题的fsimage没有做好兼容。
    patch关键位置
  6. 针对CDH5.7.5-release,尝试修改代码,在Namenode启动时忽略Null 的INode,主要改动如下

    编译替换后发现了新的异常:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    2017-02-04 15:41:08,581 ERROR org.apache.hadoop.hdfs.server.namenode.FSImage: Failed to load image from FSImageFile(file=/data/dfs/nn/current/fsimage_0000000005899107393, cpktTxId=0000000005899107393)
    java.io.IOException: Cannot find an INode associated with the INode FlumeData.1482923297645 in created list while loading FSImage.
    at org.apache.hadoop.hdfs.server.namenode.snapshot.SnapshotFSImageFormat.loadCreated(SnapshotFSImageFormat.java:158)
    at org.apache.hadoop.hdfs.server.namenode.snapshot.FSImageFormatPBSnapshot$Loader.loadCreatedList(FSImageFormatPBSnapshot.java:244)
    at org.apache.hadoop.hdfs.server.namenode.snapshot.FSImageFormatPBSnapshot$Loader.loadDirectoryDiffList(FSImageFormatPBSnapshot.java:338)
    at org.apache.hadoop.hdfs.server.namenode.snapshot.FSImageFormatPBSnapshot$Loader.loadSnapshotDiffSection(FSImageFormatPBSnapshot.java:189)
    at org.apache.hadoop.hdfs.server.namenode.FSImageFormatProtobuf$Loader.loadInternal(FSImageFormatProtobuf.java:271)
    at org.apache.hadoop.hdfs.server.namenode.FSImageFormatProtobuf$Loader.load(FSImageFormatProtobuf.java:181)
    at org.apache.hadoop.hdfs.server.namenode.FSImageFormat$LoaderDelegator.load(FSImageFormat.java:226)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:948)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:932)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImageFile(FSImage.java:751)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:682)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:291)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1096)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:778)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:609)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:670)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:838)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:817)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1537)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1605)
    2017-02-04 15:41:08,657 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
    java.io.IOException: Failed to load FSImage file, see error(s) above for more info.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:697)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:291)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1096)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:778)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:609)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:670)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:838)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:817)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1537)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1605)
    2017-02-04 15:41:08,660 INFO org.mortbay.log: Stopped HttpServer2$SelectChannelConnectorWithSafeStartup@0.0.0.0:50070
    2017-02-04 15:41:08,761 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping NameNode metrics system...
    2017-02-04 15:41:08,761 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system stopped.
    2017-02-04 15:41:08,761 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system shutdown complete.
    2017-02-04 15:41:08,762 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
    java.io.IOException: Failed to load FSImage file, see error(s) above for more info.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:697)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:291)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1096)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:778)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:609)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:670)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:838)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:817)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1537)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1605)
    2017-02-04 15:41:08,764 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
    2017-02-04 15:41:08,765 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG:
  7. 根据提示,继续修改代码

  8. 重新编译修改后的代码,采用的Java版本为http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.7.5/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm,编译前需要安装protobuf-2.5.0和protobuf-compile-2.5.0,编译指令为

    1
    mvn package -Pdist -DskipTests -Dtar
  9. 替换集群NameNode和SecondaryNamenode 下的 /opt/cloudera/parcels/CDH/jars/hadoop-hdfs-2.6.0-cdh5.7.5.jar 为上面编译后的 hadoop-common-cdh5.7.5-release/hadoop-hdfs-project/hadoop-hdfs/target/hadoop-hdfs-2.6.0-cdh5.7.5.jar

  10. 启动NameNode 成功

    修复总结

  11. 目前暂时通过忽略空节点的方式来绕过fsimage的问题,但是由于对hadoop了解还不够深入,不确定会不会引入新的问题,建议最好启动后备份数据,然后重整集群再恢复。
  12. 备份一定要做好,开源的方案有可能存在bug,导致各种问题。要做到无法何种故障,都有恢复的手段。

最后重点感谢公司强大的大佬和强大运维支持。

单节点 zookeeper 安装

发表于 2016-08-31 | 评论数: | 阅读次数:

安装过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 下载
cd /opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
tar -axvf zookeeper-3.4.8.tar.gz
cd zookeeper-3.4.8

# 环境变量
cat >> ~/.bashrc <<EOF
########## ZOOKEEPER ####################
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.8
export PATH=\$PATH:\$ZOOKEEPER_HOME/bin
export CLASSPATH=\$CLASSPATH:\$ZOOKEEPER_HOME/lib/*
EOF

# 使环境变量生效
source ~/.bashrc
1
2
3
4
# 配置
cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
# 修改zoo.cfg的datadir配置为
dataDir=/data/var/lib/zookeeper

启动

1
2
3
4
# 启动
$ZOOKEEPER_HOME/bin/zkServer.sh start
# 关闭
$ZOOKEEPER_HOME/bin/zkServer.sh stop

参考文档

  • https://zookeeper.apache.org/doc/r3.4.8/
  • https://zookeeper.apache.org/doc/r3.4.8/zookeeperStarted.html

CentOS6 下安装openresty

发表于 2016-08-11 | 评论数: | 阅读次数:

安装过程

  • 安装依赖库

    1
    yum install -y readline-devel pcre-devel openssl-devel gcc postgresql-devel
  • 下载
    从https://openresty.org/cn/download.html下载一个发行版

  • 解压安装到/opt/openresty下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    tar xzvf ngx_openresty-VERSION.tar.gz
    cd ngx_openresty-VERSION/
    ./configure --prefix=/opt/openresty \
    --with-luajit \
    --without-http_redis2_module \
    --with-http_iconv_module \
    --with-http_postgres_module
    make -j8
    make install
  • 添加环境变量

    1
    2
    3
    4
    5
    6
    7
    8
    9
    cat >> ~/.bashrc <<EOF
    ######## openresty #########
    export OPENRESTY_HOME=/opt/openresty
    export PATH=\$PATH:\$OPENRESTY_HOME/bin
    export NGINX_HOME=\$OPENRESTY_HOME/nginx
    export PATH=\$PATH:\$NGINX_HOME/sbin
    export LUAJIT_HOME=\$OPENRESTY_HOME/luajit
    export PATH=\$LUAJIT_HOME/bin:\$PATH
    EOF

参考

  • openresty: https://openresty.org/cn/
  • openresty安装:https://openresty.org/cn/installation.html

apache 的HTTPS设置

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

配置Apache的HTTP支持

  • 创建并切换到ssl目录

    1
    2
    3
    mkdir -p /etc/httpd/ssl
    chmod 600 /etc/httpd/ssl
    cd /etc/httpd/ssl
  • 生成证书和密钥

    1
    2
    3
    4
    5
    6
    # 建立服务器密钥
    openssl genrsa -out server.key 1024
    # 建立服务器公钥
    openssl req -new -key server.key -out server.csr
    # 建立服务器证书
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  • 修改/etc/httpd/conf.d/ssl.conf

    1
    2
    3
    4
    5
    6
    Listen Server_FQDN:443
    SSLEngine on
    SSLCertificateKeyFile /etc/httpd/ssl/server.key
    SSLCertificateFile /etc/httpd/ssl/server.crt
    SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
    SSLCipherSuite ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP

参考:

  • http://httpd.apache.org/docs/2.2/
  • http://security-24-7.com/how-to-implement-ssl-on-apache-2-2-15/
  • http://www.thinksaas.cn/topics/0/280/280017.html

安装Cloudera 5.7.0镜像

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

镜像包含

  • CM5
  • CDH5

安装Apache HTTP server

1
2
3
4
5
yum install httpd
# 查看版本
httpd -v
# Server version: Apache/2.2.15 (Unix)
# Server built: Mar 22 2016 19:03:53

ssl相关模块

1
yum install -y openssl mod_ssl

启动http服务器

注意:这里暂时忽略证书

1
service httpd start

CM与CDH

CM 地址

cm5 5.7.0

CDH 地址
CDH5 rpm形式 5.7.0
CDH5 parcel

下载

1
2
3
4
5
wget http://archive.cloudera.com/cm5/repo-as-tarball/5.7.0/cm5.7.0-centos6.tar.gz
wget http://archive.cloudera.com/cdh5/repo-as-tarball/5.7.0/cdh5.7.0-centos6.tar.gz
wget http://archive.cloudera.com/cdh5/parcels/5.7.0/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel
wget http://archive.cloudera.com/cdh5/parcels/5.7.0/CDH-5.7.0-1.cdh5.7.0.p0.45-el5.parcel.sha1
wget http://archive.cloudera.com/cdh5/parcels/5.7.0/manifest.json

解压

1
2
3
4
5
6
7
8
9
10
11
12
# CM
mkdir -p /var/www/html/cm5/redhat/6/x86_64
tar xvfz cm5.7.0-centos6.tar.gz -C /var/www/html/cm5/redhat/6/x86_64
# CDH
mkdir -p /var/www/html/cdh5
tar xvfz cdh5.7.0-centos6.tar.gz -C /var/www/html/cdh5
mkdir -p /var/www/html/cdh5/parcels/5.7.0/
cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 manifest.json /var/www/html/cdh5/parcels/5.7.0/
cd /var/www/html/cdh5/parcels/
ln -s 5.7.0 5.7
ln -s 5.7.0 5
ln -s 5.7.0 latest

其他文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# CM5
CM5_DIR=/var/www/html/cm5
# CM5 installer
cd $CM5_DIR
wget http://archive.cloudera.com/cm5/installer/5.7.0/cloudera-manager-installer.bin -P installer/5.7.0
cd $CM5_DIR/installer
ln -s 5.7.0 latest

# redhat
REDHAT_DIR=/var/www/html/redhat
mkdir $REDHAT_DIR
cd $REDHAT_DIR

wget http://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera -P cdh/
## 或者
ln -s $PWD/../cdh5/redhat/6/x86_64/cdh .

权限

1
chmod -R ugo+rX /var/www/html/cdh

其他机器访问

在其他机器添加yum 仓库

1
2
3
4
5
6
# cat /etc/yum.repos.d/cloudera.repo
[cloudera]
name=cloudera
baseurl=http://hostname/cm5/redhat/6/x86_64/cm/5
enabled=1
gpgcheck=0

参考

  • http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_create_local_package_repo.html#cmig_topic_21_3
12

YYChildren

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