CDH 安装配置指南(Tarball方式)
采用CDH Tarbal方式安装Hadoop集群。
1. 环境组件版本
|
组件名称
|
组件版本
|
用途
|
|---|---|---|
| jdk 1.8 | jdk-8u191-linux-x64 | oracle jdk |
| mysql |
mysql-5.7.13-linux-glibc2.5-x86_64 |
存放cloudera manager配置文件 |
| zookeeper | zookeeper-3.4.5-cdh5.12.2 | 分布式协调服务 |
| hadoop |
hadoop-2.6.0-cdh5.12.2 |
包含HDFS和YARN,支撑分布式存储和资源管理。 |
| hbase | hbase-1.2.0-cdh5.12.2 | 存储特性数据,并支持实时更新特性 |
| hive | hive-1.1.0-cdh5.12.2 | 数据离线分区存储,离线分析 |
| kafka | kafka_2.11-0.10.2.0 | 消息中间件(0.10.2.0+kafka2.2.0+110) |
| azkaban | azkaban-3.52.0 | 调度服务 |
| elasticsearch | elasticsearch-6.3.2 | Ad-hoc查询,简单实时统计分析 |
2. 主机规划
|
IP地址
|
主机名
|
角色
|
|---|---|---|
| 172.23.7.138 | sz-pg-entps-dev-001.tendcloud.com | NameNode, ResourceManager, HMaster, Hive, Azkaban |
| 172.23.7.139 | sz-pg-entps-dev-002.tendcloud.com | NameNode, ResourceManager, HMaster, Hive |
| 172.23.7.140 | sz-pg-entps-dev-003.tendcloud.com | JournalNode, DataNode, NodeManager, HRegionServer, Zookeeper, Kafka, ES, KafkaManager |
| 172.23.7.141 | sz-pg-entps-dev-004.tendcloud.com | JournalNode, DataNode, NodeManager, HRegionServer, Zookeeper, Kafka, ES |
| 172.23.7.142 | sz-pg-entps-dev-005.tendcloud.com | JournalNode, DataNode, NodeManager, HRegionServer, Zookeeper, Kafka, ES |
| 172.23.7.143 | sz-pg-entps-dev-006.tendcloud.com | mysql |
3. 安装配置
3.1 基础环境
JDK 1.8 - Hadoop是用Java开发的,Hadoop的编译及MapReduce的运行都需要使用JDK。
1. 上传tar包并解压tarjdk-8u191-linux-x64.tar.gz2. 配置java环境变量
3. 加载配置文件
source~/.bash_profileSSH - Hadoop需要通过SSH来启动salve列表中各台主机的守护进程,因此SSH也是必须安装的。
1. 检查 ~/.ssh目录下是否有公私钥对文件(如果存在则跳过第2步)
2. 生成公私钥对
ssh-keygen -t rsa (一直回车)
3. 将每台机器的公钥都追加到 authorized_keys文件
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
内容类似:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPKrND6Fnn3fZOdV9yseMhNruIFJQJXL8nA3s8QoR3dc0/qJ6GHFHOcVv9zK0o+AYmfxzYupIqwZKX9oqbHR3EOhecoafODY0ynopbvdWbx+VUDub3uQ4W5vgKZQYRxSmqk4xBJSVGnIOjxN0fadUIQx/MwZ/MIBEHs7A5ECLIssvJPehvzcUiLl7SIRnDcRZjdCHJLMMVjzFRq0xJ3i7v04a82bSPrycSuQazvEG7apherZvbfxoD+oa3G0ATq9mOaqvT47dPQ9/lSNXsmMWcT3n3Y8WCPHbbrdJoi51ZrdSrqs8e616rZIj1J06e+mewGbtB61CQSuwhamWR+4o1 hadoop@sz-pg-entps-dev-001.tendcloud.comssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzfEL1MZv4mJXldBPIvwUIY6KfsG6cjel8i2stMx/AomoWY7XfcdZeXagUh/LsslQ92wOqVegj1MBiUkiaA2NR5rZERZECJrJuc3DILaxesotq+l1W7EYPQmCGrCJmC3RWWhte5bkIXxFbwKTEbgre5HgdigTnrs5/wf0wqyn/JpTpJGYOF71lVHX4gW9SgWSVBfsqfA4nO61agp4bahQcAPVmfcNHpbXig5mgPF14nPTMuqsrfiqxthup7XZvgXWMvK07nyUv/+rR3FRyv1sP8l+Exx9N0o7X9SG0GfeZXohzBGVv11tzBdCSn+TSE1I5WLZV0bT7b9wB/PLGwSZX hadoop@sz-pg-entps-dev-002.tendcloud.com...4. 检查能否免密登录各节点
- 安装mysql(略)
3.2 Zookeeper安装
解压安装包中的`zookeeper-3.4.5-cdh5.12.2.tar.gz`到指定的安装目录
- 修改zookeeper配置文件(conf/zoo.cfg)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/cdp/zookeeper-3.4.5-cdh5.12.2/data
dataLogDir=/data/cdp/zookeeper-3.4.5-cdh5.12.2/log (文件夹必须存在,否则启动不起来)
clientPort=2181server.1=sz-pg-entps-dev-003.tendcloud.com:2888:3888
server.2=sz-pg-entps-dev-004.tendcloud.com:2888:3888
server.3=sz-pg-entps-dev-005.tendcloud.com:2888:3888 上面已经在一台机器(sz-pg-entps-dev-003.tendcloud.com)上配置完zookeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下
创建文件夹并设置myid
在配置的dataDir指定目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机。
server.X 中 X为什么数字,则myid文件中就输入这个数字。- 启动zookeeper集群(在zookeeper集群的每个节点上,执行启动脚本)
~/zookeeper-3.4.5-cdh5.12.2/bin/zkServer.sh start - 安装验证
~/zookeeper-3.4.5-cdh5.12.2/bin/zkServer.sh status
3.3 Hadoop安装
- 解压安装包中的`hadoop-2.6.0-cdh5.12.2.tar.gz到指定的安装目录
tar -zxvf hadoop-2.6.0-cdh5.12.2.tar.gz - 将hadoop目录添加到环境变量
vim ~/.bash_profile
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0-cdh5.12.2
export PATH=$PATH:$HADOOP_HOME/bin应用环境变量
source ~/.bash_profile - 配置hadoop-env.sh
export JAVA_HOME=/home/hadoop/jdk1.8.0_191 配置core-site.xml
<configuration><property><value>hdfs://ns1</value></property><property><value>sz-pg-entps-dev-003.tendcloud.com:2181,sz-pg-entps-dev-004.tendcloud.com:2181,sz-pg-entps-dev-005.tendcloud.com:2181</value></property><property></property></configuration>配置hdfs-site.xml
<configuration><property><value>3</value></property><property><value>false</value></property><property><!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致--><value>ns1</value></property><property><value>nn1,nn2</value></property><property></property><property></property><property></property><property></property><property></property><property></property><property><value>true</value></property><property><value>qjournal://sz-pg-entps-dev-003.tendcloud.com:8485;sz-pg-entps-dev-004.tendcloud.com:8485;sz-pg-entps-dev-005.tendcloud.com:8485/ns1</value></property><property></property><property></property><property><value>sshfence</value></property><property><value>/home/hadoop/.ssh/id_rsa</value></property><property><value>30000</value></property><property><value>100</value></property></configuration>配置datanode的slaves文件
配置yarn-site.xml
<configuration><property><value>sz-pg-entps-dev-003.tendcloud.com:2181,sz-pg-entps-dev-004.tendcloud.com:2181,sz-pg-entps-dev-005.tendcloud.com:2181</value></property><property><value>mapreduce_shuffle</value></property><property><value>true</value></property><property><value>yrc</value></property><property><value>rm1,rm2</value></property><property></property><property></property></configuration>配置marped-site.xml
<configuration><property><value>yarn</value></property></configuration>将配置好的hadoop复制到集群其他节点
启动流程:
- 启动JournalNode(必须在格式化NameNode之前启动)
在namenode节点(sz-pg-entps-dev-002.tendcloud.com)启动 journalnode
~/hadoop-2.6.0-cdh5.12.2/sbin/hadoop-daemons.sh start journalnode
- 在NameNode节点格式化zookeeper - 目的是在ZooKeeper集群上建立HA的相应节点
hdfs zkfc -formatZK - 格式化NameNode(必须开启JournalNode进程)
hadoop namenode -format
注意:如果不是首次format的话还是把NameNode和DataNode存放数据地址下的数据手动删除一下,否则会造成NameNode ID和DataNode ID不一致。 - 启动 NameNode
~/hadoop-2.6.0-cdh5.12.2/sbin/hadoop-daemons.sh start namenode - 把namenode数据从 sz-pg-entps-dev-002.tendcloud.com 同步到 sz-pg-entps-dev-001.tendcloud.com
在 sz-pg-entps-dev-001.tendcloud.com (namenode standby)下执行:
hdfs namenode -bootstrapStandby - 启动所有DataNode
~/hadoop-2.6.0-cdh5.12.2/sbin/hadoop-daemons.sh start datanode - 启动yarn
~/hadoop-2.6.0-cdh5.12.2/sbin/start-yarn.sh - 在sz-pg-entps-dev-001.tendcloud.com,sz-pg-entps-dev-002.tendcloud.com启动ZooKeeperFailoverController
~/hadoop-2.6.0-cdh5.12.2/sbin/hadoop-daemon.sh start zkfc - NameNode HA操作完之后我们可以发现只有一个节点(这里是sz-pg-entps-dev-002.tendcloud.com)启动,需要手动启动另外一个节点(sz-pg-entps-dev-001.tendcloud.com)的resourcemanager
~/hadoop-2.6.0-cdh5.12.2/sbin/yarn-daemon.sh start resourcemanager
检测验证
在本机配置hosts文件,如下:
在浏览器输入:在浏览器中输入:http://sz-pg-entps-dev-002.tendcloud.com:50070/,就可以看到如下界面

问题: 启动时 两个namenode节点若都是standby
解决:在hadoop安装目录执行 sbin/hadoop-daemon.sh start zkfc (启动zookeeper的选举制度)
3.4 HBase安装
- 解压安装包中的`hbase-1.2.0-cdh5.12.2.tar.gz到指定的安装目录
tar -zxvf hbase-1.2.0-cdh5.12.2.tar.gz - 配置 hbase-env.sh
- 加入JAVA环境变量
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
- 关闭HBase自带的Zookeeper,使用Zookeeper集群
export HBASE_MANAGES_ZK=false 配置 hbase-site.xml
<configuration><property></property><property><value>true</value></property><property><value>sz-pg-entps-dev-003.tendcloud.com,sz-pg-entps-dev-004.tendcloud.com,sz-pg-entps-dev-005.tendcloud.com</value></property><property><value>180000</value></property></configuration>- 配置 regionservers
sz-pg-entps-dev-003.tendcloud.com
sz-pg-entps-dev-004.tendcloud.com
sz-pg-entps-dev-005.tendcloud.com - 将HBase复制到其他机器
scp -r ~/hbase-1.2.0-cdh5.12.2 hadoop@sz-pg-entps-dev-001.tendcloud.com:/home/hadoop/
scp -r ~/hbase-1.2.0-cdh5.12.2 hadoop@sz-pg-entps-dev-003.tendcloud.com:/home/hadoop/
scp -r ~/hbase-1.2.0-cdh5.12.2 hadoop@sz-pg-entps-dev-004.tendcloud.com:/home/hadoop/
scp -r ~/hbase-1.2.0-cdh5.12.2 hadoop@sz-pg-entps-dev-005.tendcloud.com:/home/hadoop/ - 启动HBase服务(只需要在一个节点启动就行了)
~/hbase-1.2.0-cdh5.12.2/bin/start-hbase.sh - 检测验证
在浏览器输入:在浏览器中输入:http://sz-pg-entps-dev-002.tendcloud.com:60010/,就可以看到如下界面

3.5 Hive安装
- 解压安装包中的`hive-1.1.0-cdh5.12.2.tar.gz`到指定的安装目录
tar -zxvf hive-1.1.0-cdh5.12.2.tar.gz 添加Hive环境变量
vim ~/.bash_profileexportPATH=$PATH:$HIVE_HOME/bin- 加载配置文件
配置 hive-env.sh
HADOOP_HOME=/home/hadoop/hadoop-2.6.0-cdh5.12.2HIVE_HOME=/home/hadoop/hive-1.1.0-cdh5.12.2export HADOOP_HEAPSIZE=1024export HIVE_CONF_DIR=$HIVE_HOME/confexport HIVE_AUX_JARS_PATH=$HIVE_HOME/lib配置hive-site.xml
<configuration><property></property><property></property><property><value>hive</value></property><property><value>hive</value></property><property><value>/user/hive/warehouse</value></property><property><value>/tmp/hive</value></property><property><value>sz-pg-entps-dev-003.tendcloud.com:2181,sz-pg-entps-dev-004.tendcloud.com:2181,sz-pg-entps-dev-005.tendcloud.com:2181</value></property></configuration>查看HDFS是否存在这些路径,若不存在需要手动添加
hdfs dfs -ls /## 若不存在,需要手动添加hdfs dfs -mkdir -p /user/hive/warehousehdfs dfs -chmod 777 /user/hive/warehousehdfs dfs -mkdir -p /tmp/hivehdfs dfs -chmod 777 /tmp/hive- 拷贝JDBC包
将 mysql-connector-java-5.1.47.jar 放到 $HIVE_HOME/lib 下 - 初始化Hive操作
schematool -dbType mysql -initSchema - 启动Metastore服务
hive --service metastore - 测试

3.6 Kafka安装
解压安装包中的`kafka_2.11-0.10.2.0.tgz`到指定的安装目录
tar -zxvf kafka_2.11-0.10.2.0.tgz配置server.properties
port=9092注意:broker.id 的值3个节点要配置不同的值,分别配置为0,1,2;log.difs必须保证目录存在,不会根据配置文件自动生成。
mkdir -p /data/cdp/kafka_2.11-0.10.2.0/data
将Kafka复制到其他机器
scp -r ~/kafka_2.11-0.10.2.0/ hadoop@sz-pg-entps-dev-004.tendcloud.com:/home/hadoop/scp -r ~/kafka_2.11-0.10.2.0/ hadoop@sz-pg-entps-dev-005.tendcloud.com:/home/hadoop/- 启动kafka集群,进入kafka目录,执行如下命令
./bin/kafka-server-start.sh -daemon config/server.properties & - 3个节点均要启动;启动无报错,即搭建成功,可以生产和消费信息,来检测是否搭建成功
./bin/kafka-topics.sh --zookeeper sz-pg-entps-dev-003.tendcloud.com:2181,sz-pg-entps-dev-004.tendcloud.com:2181,sz-pg-entps-dev-005.tendcloud.com:2181 --create --replication-factor 1 --partitions 3 --topictestCreated topic"test"../bin/kafka-topics.sh --zookeeper sz-pg-entps-dev-003.tendcloud.com:2181,sz-pg-entps-dev-004.tendcloud.com:2181,sz-pg-entps-dev-005.tendcloud.com:2181 --listtest
Kafka Manager地址:http://172.23.7.140:8020/
3.7 Azkaban安装
解压安装包中的`azkaban-3.52.0-bin.tar.gz`到指定的安装目录
在mysql创建azkaban元数据库,并且使用安装目录下的`create-all-sql-0.1.0-SNAPSHOT.sql`脚本进行数据库的初始化
CREATE DATABASE azkaban;CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;flush privileges;use azkaban;source ${安装目录}/create-all-sql-0.1.0-SNAPSHOT.sql;修改azkaban-web-server目录下的/conf/azkaban.properties,替换以下参数为真实环境量
# Azkaban mysql settings by default. Users should configure their own username and password.修改azkaban-web-server目录下的/conf/global.properties,替换以下参数为真实环境IP
job.notification.started.1.url=http://${IP:PORT}/job-scheduler/jobs/callbackjob.notification.completed.1.url=http://${IP:PORT}/job-scheduler/jobs/callback修改azkaban-web-server目录下的/conf/azkaban-users.xml,替换为真实环境的登录用户名和密码
<azkaban-users><usergroups="azkaban"password="azkaban"roles="admin"username="azkaban"/><userpassword="metrics"roles="metrics"username="metrics"/><rolename="admin"permissions="ADMIN"/><rolename="metrics"permissions="METRICS"/></azkaban-users>vim在azkaban-exec-server目录下分别重复步骤3、步骤4,并且修改/conf/azkaban.properties,替换以下参数为真实的Azkaban Web服务地址
# Azkaban Jetty server properties.# 指定executor的端口# Where the Azkaban web server is locatedazkaban.webserver.url=http://${IP:PORT}- 启动executor服务
./bin/start-exec.sh - 在mysql中的azkaban.executors表更新对应executor实例的`active`字段为1,用于azkaban-web服务的executor服务感知,如果此步骤不执行,web服务启动将报错
updateexecutorssetactive = 1 启动azkaban-web服务
./bin/start-web.sh- 访问Azkaban WEB UI: http://172.23.7.138:8081/index
3.8 ElasticSearch安装
- 解压安装包中的`elasticsearch-6.3.2.tar.gz`到指定的安装目录 tar -zxvf elasticsearch-6.3.2.tar.gz
参数调整 - 配置elasticsearch.yml
配置 jvm.options
-Xms10g-Xmx10g- 启动elasticsearch
./bin/elasticsearch
CDH 安装配置指南(Tarball方式)的更多相关文章
- [转载]SharePoint 2013测试环境安装配置指南
软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...
- 大数据应用日志采集之Scribe 安装配置指南
大数据应用日志采集之Scribe 安装配置指南 大数据应用日志采集之Scribe 安装配置指南 1.概述 Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它 ...
- 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南
原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...
- 【转】服务器证书安装配置指南(Weblogic)
服务器证书安装配置指南(Weblogic) 详情请点击: http://verisign.itrus.com.cn/html/fuwuyuzhichi/fuwuqizhengshuanzhuangpe ...
- 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置
Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...
- 【云计算】ubuntu下docker安装配置指南
Docker Engine安装配置 以下描述仅Docker在Ubuntu Precise 12.04 (LTS).Ubuntu Trusty 14.04 (LTS).Ubuntu Wily 15.10 ...
- linux下安装Apache(https) 服务器证书安装配置指南
一. 安装准备 1. 安装Openssl 要使Apache支持SSL,需要首先安装Openssl支持.推荐下载安装openssl-0.9.8k.tar.gz 下载Openssl:http: ...
- Gitolite v3安装配置指南
使用gitolite对git仓储进行权限配置 gitolite在近期做了很多代码改动,升级到了v3版本,而我使用的是v3.5.2.在<Git权威指南>中所提及的是v2版本,有很多东西已经不 ...
- HADOOP2.2.0安装配置指南
一. 集群环境搭建 这里我们搭建一个由三台机器组成的集群: Ip地址 用户名/密码 主机名 集群中角色 操作系统版本 192.168.0.1 hadoop/hadoop Hadoop-mast ...
随机推荐
- 解决phpcms使用php7.1.9时修改后台菜单错误 "[] operator not supported for strings"错误提示
出现这个错误提示是因为 $array 在初始化的时候是一个字符串,在下面使用的时候作为数组使用,php7.x版本并没有将$array自动转换为 数组而是以字符串存在"[]"作为了运 ...
- hue启用ldap
[desktop] [[auth]] …… …… backend=desktop.auth.backend.LdapBackend .….. http://gethue.com/ldap-or-pam ...
- 《深入理解Java虚拟机》笔记7
组内有人问我,她写的程序总是在短时间内就jvm异常. 另外,debug时候又可以正常通过,写的逻辑并不复杂, 只是用poi检索Excel.第一反应还是程序可能写的有问题, 也许写了一个jvm未预测的错 ...
- [转] 一篇好文 ---steve jobs (stay hungry, stay foolish)
斯蒂夫•保罗•乔布斯(Steve Paul Jobs,1955年2月24日出生-)是蘋果電腦的現任首席執行長(首席执行官)兼創辦人之一.同時也是Pixar動畫公司的董事長及首席執行長.这是他2005在 ...
- 【转】C语言中不同的结构体类型的指针间的强制转换详解
C语言中不同类型的结构体的指针间可以强制转换,很自由,也很危险.只要理解了其内部机制,你会发现C是非常灵活的. 一. 结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在 ...
- NestedScrollView嵌套RecyclerView
天气渐寒,然学习不可懈怠,记录一下使用NestedScrollView嵌套RecyclerView的两个问题,以后遇到可以来这里温故. 应该说在MD中,RecyclerView代替了ListView, ...
- Win7下Python WEB环境搭建
环境介绍: Win7 64位 SP1 Python:2.7.6 网关接口:flup Nginx安装:http://blog.csdn.net/jacson_bai/article/details/46 ...
- Android 底部TabActivity(1)——FragmentActivity
先看看效果图: 第一篇Tab系列的文章首先实现这样的风格的底部Tab:背景条颜色不变,我们是用了深灰的颜色,图标会发生对应的变化.当选中某个标签后该标签的背板会由正常的颜色变为不正常,哈哈,是变为加深 ...
- js foreach函数 注意事项(break、continue)
foreach API说明: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Arra ...
- STL源码剖析(set/map)
SGI STL中set/map底层都是通过RB-tree实现的. 首先看看RB-tree结点的定义 typedef bool __rb_tree_color_type; const __rb_tree ...