CDH搭建Hadoop集群(Centos7)
一、说明
节点(CentOS7.5) | Server || Agent | CPU |
node11 | Server || Agent | 4G |
node12 | Agent | 2G |
node13 | Agent | 2G |
二、系统环境搭建
1、网络配置(所有节点)
1.设置主机名和IP
2.配置/etc/hosts IP和主机名的映射
2、SSH免密码登录
1.产生公钥和私钥:ssh-keygen -t rsa (一直回车直即可)
2.将公钥分发给所有节点(包括本机): ssh-copy-id -i 主机名
3.测试ssh访问: ssh root@主机名
3、关闭防火墙
1.关闭防火墙:systemctl stop firewalld
2.防止开机自启:systemctl disable firewalld
3.查看状态:firewall-cmd --state
4、关闭SELINUX
1.编辑 vi /etc/selinux/config
2.将SELINUX设置为:SELINUX=disabled
[root@node11~]# sestatus -v
SELinux status: disabled
表示已经关闭了
5、安装JDK
1.查看安装的Java信息:
rpm -qa | grep java
2.卸载自带open jdk
rpm -e --nodeps 包名
3.创建/usr/java目录,并上传包到此目录下,然后将rpm包解压到此目录下
rpm -ivh jdk-8u191-linux-x64.rpm
4.配置环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5.使配置后的环境变量生效
source /etc/profile
6.查看是否安装成功
java -version
6、设置NTP
[root@node11~]#yum -y install ntp
更改master的节点
[root@node11~]## vi /etc/ntp.conf
注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器(我选的本公司的ntp测试服务器)
server 172.30.0.19 iburst
在其他节点上把ntp指向master服务器地址即可(/etc/ntp.conf下)
server node11 iburst
[root@node11~]## systemctl start ntpd //启动ntp服务
[root@node11~]## systemctl status ntpd //查看ntp服务状态
7、安装配置MySql
(主节点安装即可--这里将node11作为主节点)
1.卸载mariadb
rpm -qa|grep mariadb
rpm -e --nodeps mariadb的包名
2.上传MySQL包到自建目录:/opt/software
3.安装MySQL
# groupadd mysql
# useradd -r -g mysql -s /sbin/nologin mysql
# cd /usr/local/
# tar zxvf /root/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.21-linux-glibc2.12-x86_64/ mysql
# cd mysql
# mkdir mysql-files
# chown -R mysql.mysql .
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# cp -rf /etc/my.cnf /etc/my.cnf.old
# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
skip-grant-tables
启动mysql
# bin/mysqld_safe --user=mysql &
# cp support-files/mysql.server /etc/init.d/mysql
# chmod a+x /etc/init.d/mysql
# chkconfig --add mysql
# chkconfig mysql on
# service mysql start
设置root的密码
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('123456') where User='root';
mysql> alter user root@'localhost' identified by '123456'; //修改密码
重新初始化
# killall mysqld
# rm -rf /usr/local/mysql/data/
# chown -R mysql.mysql /usr/local/mysql
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# bin/mysql_ssl_rsa_setup
# service mysqld restart
授权root用户使用密码从任意主机连接到mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'ROOT'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
flush privileges;
三、Cloudera Manager Server&Agent安装
CM安装包下载地址: https://archive.cloudera.com/cm5/cm/5/
CDH安装包下载地址: http://archive.cloudera.com/cdh5/parcels/5.15.0/
1、安装Cloudera Manager Server&Agent
上传到/home/tools下 (三台机器都要安装) tar xvzf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz -C /opt
2、配置CM Agent
1.cm的安装包的server和agent都是同一个包,启动的时候启动命令指定为server还是agent;
2.cm有一个工作目录,需要
我们来创建;创建一个用户;修改agent的配置,给它指定server的位置;那个端口7182是server和agent通信的端口;
3.server_host配置为server的名字;
vi /opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini 中 server_host(三台机器)
3、创建用户cloudera-scm(所有节点)
useradd --system --home=/opt/cm-5.15.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
4、创建Parcel目录
创建parcel目录,这个目录是server和agent用来接收和发送数据的目录,server端的parcel-repo这个目录会把所有
的安装文件全部下载到此目录,而agent也需要安装包,parcels就是用来存储指定的安装包的,当然需要有权限能操作
这些目录;
Server节点
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
Agent节点
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
把CDH安装包移到cloudera/parcel-repo下面,并修改其中后缀为sha1的文件为sha,如下
5、配置CM Server的数据库
cp mysql-connector-java.jar /opt/cm-5.15.0/share/cmf/lib/ 注意jar包名称要修改为mysql-connector-java.jar
mysql -u root -p123456
use mysql;
grant all on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
初始化cm数据库: cd /opt/cm-5.15./share/cmf/schema/
./scm_prepare_database.sh mysql cm -h node11 -uroot -p123456 --scm-host node11 scm scm scm
格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器
创建其他组件需要的数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
6、启动CM Manager&Agent服务
先确保启动了mysql service mysqld start
node11:执行 /opt/cm-5.15.0/etc/init.d/cloudera-scm-server start
node11,12,13: 执行 /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start
service服务启动需要几分钟,取决于服务器的性能,此时我们可以使用
netstat -apn|grep
查询端口被占用后,就可以用浏览器打开http://node11:7180/进行访问了,登录用户名与密码分别为admin。
7、Server&Agent开机自启动服务
将/opt/cm-5.15.0/etc/init.d/目录下的cloudera-scm-server服务器启动脚本和cloudera-scm-agent代理服务启动脚本复制到/etc/init.d/目录下面。(/etc/init.d/目录用于存放开机启动脚本的目录)
//配置server主节点node11
[root@node11 ~]# cp /opt/cm-5.15./etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
[root@node11 ~]# chkconfig --add cloudera-scm-server
[root@node11 ~]# chkconfig cloudera-scm-server on
[root@node11 ~]# vi /etc/init.d/cloudera-scm-server
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default} 修改为 CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cm-5.15./etc/default} #你的cloudera manager安装目录,然后保存退出即可。
添加:export JAVA_HOME=/usr/local/java/jdk1. #你的java安装目录
[root@node11 ~]# chkconfig --list cloudera-scm-server //然后查看状态,如果2-5显示开启表示配置成功。
[root@node11 ~]# service cloudera-scm-server start & systemctl start cloudera-scm-server.service
//配置agent所有节点,node11,node12,node13
[root@node11 ~]# cp /opt/cm-5.15./etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
[root@node11 ~]# chkconfig --add cloudera-scm-agent
[root@node11 ~]# chkconfig cloudera-scm-agent on
[root@node11 ~]# vi /etc/init.d/cloudera-scm-agent
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default} 修改为 CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cm-5.15./etc/default}
添加:export JAVA_HOME=/usr/local/java/jdk1. #你的java安装目录
[root@node11 ~]# service cloudera-scm-agent start & systemctl start cloudera-scm-agent.service
四、CDH5安装
下一步,选择免费版本
继续,下一步,直到如下界面,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,这里我选择全部节点,继续。
选择自己下载的CDH版本,点击继续
接下来是安装Parcel,服务器检查,
更改交换空间:
echo 10 > /proc/sys/vm/swappiness
如下禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。以下主机将受到影响:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
重新运行检测,
全部完成,点击完成,这里选择自定义安装
服务配置,一般情况下保持默认就可以了,也可以自己手动根据节点情况进行分配,点击继续
测试如下数据库连接
这里启动hive报错找不到mysql连接驱动包,靠备一份 mysql-connector-java.jar 到 /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hive/lib/下面
点击继续,默认集群设置,直到安装成功.
五、安装过程中报错
CDH搭建Hadoop集群(Centos7)的更多相关文章
- 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群
本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...
- Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建
Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...
- 环境搭建-Hadoop集群搭建
环境搭建-Hadoop集群搭建 写在前面,前面我们快速搭建好了centos的集群环境,接下来,我们就来开始hadoop的集群的搭建工作 实验环境 Hadoop版本:CDH 5.7.0 这里,我想说一下 ...
- 使用Docker搭建Hadoop集群(伪分布式与完全分布式)
之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...
- virtualbox 虚拟3台虚拟机搭建hadoop集群
用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己 ...
- 搭建Hadoop集群 (三)
通过 搭建Hadoop集群 (二), 我们已经可以顺利运行自带的wordcount程序. 下面学习如何创建自己的Java应用, 放到Hadoop集群上运行, 并且可以通过debug来调试. 有多少种D ...
- 搭建Hadoop集群 (一)
上面讲了如何搭建Hadoop的Standalone和Pseudo-Distributed Mode(搭建单节点Hadoop应用环境), 现在我们来搭建一个Fully-Distributed Mode的 ...
- 搭建Hadoop集群 (二)
前面的步骤请看 搭建Hadoop集群 (一) 安装Hadoop 解压安装 登录master, 下载解压hadoop 2.6.2压缩包到/home/hm/文件夹. (也可以从主机拖拽或者psftp压缩 ...
- Linux下搭建Hadoop集群
本文地址: 1.前言 本文描述的是如何使用3台Hadoop节点搭建一个集群.本文中,使用的是三个Ubuntu虚拟机,并没有使用三台物理机.在使用物理机搭建Hadoop集群的时候,也可以参考本文.首先这 ...
随机推荐
- UESTC - 1324 卿学姐与公主
题目链接 某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏 在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中. 英勇的卿学姐拔出利刃冲向了拯救公主的道路. 走过了荒野,翻越了 ...
- Java基础其他
1. 二进制 进制就是进位制,常见的有二进制.十进制.十六进制等 在进制中,可用符号的数量称为基数,基数为n就称为n进制,逢n进一位: 二进制:0 1 十进制:0 1 2 3 4 5 6 7 8 9 ...
- C# PointToScreen
子窗体定位时,如果主窗口不在左上角,需要根据主窗口的坐标,相减才行. Point p1 = Label.PointToScreen(new Point(0, 0)); p1.X -= this.X; ...
- 无线路由器的web漏洞
1.XSS漏洞 2.CSRF漏洞 这样的攻击方式具体可以由多种形式实现,除了建立欺诈服务器外,还可以使用超链接陷阱.所谓的超链接陷阱,就是指伪造一个可信的链接或者地址,但其实际地址中包含了修改无线路由 ...
- Guava Immutable 不可变集合
Immutable是为了创建不可变集合使用,不可变集合在很多情况下能提高系统性能.一般使用 .of()或者.builder()<>().put().build()初始化创建不可变集合
- pygame将文字保存为图片形式
近期自学了点小基础,分享一下用pygame制作字体图片的方法: # 将文字保存为图片形式 import pygame import sys pygame.init() 导入字体包,也可以调用系 ...
- Django学习手册 - 自定义simple_tag / filter
相关: Django的模板引擎提供一般性的功能函数,通过前端可以实现多数的代码逻辑功能,但它仅支持大多数常见情况下的函数功能,例如if判断,ifequal对比返回值等,复杂一些的函数功能并不支持,例如 ...
- IOS中的三大事件
iOS 中,所有显示在界面上的对象都是从 UIResponder 直接或间接继承的,只有继承了它才可以处理事件.而在ios中的事件可以分为三大类: 1.触摸事件 2.加速计事件(摇一摇) 3.远程控制 ...
- Java 二进制I/O处理
在Java中如何处理文本I/O 使用Scanner类读取文本数据,使用PrintWriter类写文本数据 例子: public class IO { public static void main(S ...
- JS实现随机背景图片与图片大小变换的效果
经常在网上见一些网站访问一次背景图片改变一次,而且图片的大小不停变换,于是想着自己研究一下. 背景图片可以通过JS的随机数来改变图片的src来实现随机图片,图片的大小变换可以用JS的setInterv ...