从零开始搭建hadoop集群

本文主要记叙了如何在centos7.2上搭建cdh平台,使用mysql为元数据管理库(官方推荐),安装了Spark2和Kafka组件。

一、软件准备
cdh5.13.3-centos7.tar.gz cm5.13.3-centos7.tar.gz
SPARK2_ON_YARN-2.3.0.cloudera3.jar
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el7.parcel
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel
KAFKA-3.1.0-1.3.1.0.p0.35.parcel
SPARK2-2.3.0.cloudera3-1.cdh5.13.3.p0.458809-el7.parcel.sha
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha
KAFKA-3.1.0-1.3.1.0.p0.35.parcel.sha JDK:jdk-8u181-linux-x64.tar.gz
二、修改操作系统配置
关闭selinux
vi /etc/selinux/configvi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled

关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
service iptables stop
chkconfig iptables off

安装必须的yum包
yum -y install postgresql-server
yum -y install postgresql
yum -y install httpd
yum -y install perl
yum -y install bind-utils
yum -y install libxslt
yum -y install cyrus-sasl-gssapi
yum -y install redhat-lsb
yum -y install cyrus-sasl-plain
yum -y install portmap
yum -y install fuse
yum -y install fuse-libs
yum -y install nc
yum -y install python-setuptools
yum -y install python-psycopg2
yum -y install MySQL-python
yum -y install mod_ssl
yum -y install ssh
yum -y install ntp
yum -y install wget

移除自带的openjdk

rpm -qa |grep jdk
yum -y remove 《》 #移除包

移除自带的mariadb

rpm -qa |grep mariadb
yum -y remove 《》 #移除包

修改hosts文件

vi /etc/hosts
配置主机名ip地址

设置交换空间为0

echo “vm.swappiness=0” >> /etc/sysctl.conf
提升hdfs的读写效率

配置ssh 免密信道

ssh-keygen -t rsa一键回车
ssh-copy-id -i hadoop01
ssh-copy-id -i hadoop02
ssh-copy-id -i hadoop03
ssh hadoop01
ssh hadoop02
ssh hadoop03

配置ntp服务器

vi /etc/ntp.conf
master上 配置server 127.127.1.0
slaver上配置 server

安装jdk

将jdk的压缩包放置在/usr/java/jdk1.8
tar -zvxf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_181 jdk1.8
vi /etc/profile 写入以下脚本
export JAVA_HOME=/usr/java/jdk1.8
export JAVA_HOME=/usr/java/jdk1.8
export PATH=JAVA_HOME/bin:PATH
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
完成后source /etc/profile
javac java –version检验安装情况

解压cdh文件至/var/www/html/下(master)

tar -zvxf cdh5.13.3-centos7.tar.gz
tar -zvxf cm5.13.3-centos7.tar.gz
配置本地yum源

vi /etc/yum.repos.d/cm.repo
[cloudera-manager]
name=Cloudera Manager
baseurl= http://hadoop01:/cm/5.13.3/
gpgcheck = 0
enabled = 1
vi /etc/yum.repos.d/cdh.repo
[cloudera-cdh5]
name=CDH
baseurl= http://hadoop01:/cdh/5.13.3/
enable=1
gpgcheck = 0

配置服务开机自启动

service ntpd start
chkonfig ntpd on
service iptables stop
chkconfig iptables off
service httpd start
chkconfig httpd on

机器重启

检查ntp,http服务是否启动成功

检查ntp服务是否正常
ntpq -pntpq -p

三、数据及CDH服务安装
安装mysql,创建相应的数据库并赋权(master)

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install -y mysql-server
yum install -y mysql-devel
yum install -y mysql-connector-java
service mysqld start
/usr/bin/mysql_secure_installation
create database cm default character set utf8;
create user ‘cm’@’%’ identified by ‘123456’;
grant all privileges on cm.* to ‘cm’@’%’ with grant option; flush privileges;

create database hive default character set utf8;
create user ‘hive’@’%’ identified by ‘123456’;
grant all privileges on hive.* to ‘hive’@’%’;flush privileges;

create database rm default character set utf8;
create user ‘rm’@’%’ identified by ‘123456’;
grant all privileges on rm.* to ‘rm’@’%’;flush privileges;

create database sentry default character set utf8;
create user ‘sentry’@’%’ identified by ‘123456’;
grant all privileges on sentry.* to ‘sentry’@’%’;flush privileges;

create database oozie default character set utf8;
create user ‘oozie’@’%’ identified by ‘123456’;
grant all privileges on oozie.* to ‘oozie’@’%’;flush privileges;

create database hue default character set utf8;
create user ‘hue’@’%’ identified by ‘123456’;
grant all privileges on hue.* to ‘hue’@’%’;flush privileges;

create database nms default character set utf8;
create user ‘nms’@’%’ identified by ‘123456’;
grant all privileges on nms.* to ‘nms’@’%’;flush privileges;

安装cm实例和cm-server(master)

yum install -y cloudera-manager-daemons cloudera-manager-server

指定cm的数据库

/usr/share/cmf/schema/scm_prepare_database.sh -h 192.168.1.67 mysql cm cm 123456
启动server服务 访问master主机的7180端口地址
service cloudera-scm-server start
service cloudera-scm-server status 查看进程启动的状态
异常则去日志目录下查看
tail -30f /var/log/cloudera-scm-server/cloudera-scm-server.log
成功则访问 10.16.8.67:7180
四、CM安装CDH
访问10.16.8.67:7180
此时需要数据用户名密码,用户名是admin,密码输入即会为初始密码。
页面1勾选方框同意用户协议
页面2选择free 点击继续
配置主机地址 输入主机名称
全部勾选,继续

choose method 选择 use packages
version of cdh选择 cdh5
select 都选择 custom repository
url输入的是yum配置的地址

不勾选 install oracle java se… 继续
此处为kerber安装所必须的java安全包,没有kerberos不需要安装,有kerberos初次安装也不要安装,等环节装好再启用kerberos

不勾选single… 直接继续

root安装 所有主机接受相同的root密码 输入root的密码 继续

等待安装完成,选择core with spark

角色分配

分配角色 Hdfs角色分配如下:

Hive角色分配如下:

Hue角色分配入下:

Cloudera Managerment service角色分配如下:

Oozie spark yarn角色分配如下:

Zookeeper角色分配如下:

说明:
主角色由master承担
所有机器都是datanode
Namenode首次分配在master上,ha之后分配到slave1上
所有机器都安装zkserver
Gateway的角色在所有主机上都要有
Cdh的监控服务安装到master
继续
指定元数据管理库

五、安装spark,kafka
将parcel文件都放在master主机的/opt/cloudera/parcel-repo下(.torrent文件会自动生成,不用管)

将SPARK2_ON_YARN-2.3.0.cloudera3.jar文件放在master主机的/opt/cloudera/csd下
在cdh的parcel包管理界面刷新,依次分配和激活CDH5,kafka,Spark2(必须先激活CDH5)

在各主机配置内修改java_home为/usr/java/jdk1.8(因为spark2需要jdk1.8支持,cdh自带的为1.7)
重新部署配置,然后重启(激活或者配置修改后都需如此操作)

重启服务
重启服务才能看到Spark2服务

service cloudera-scm-server restart
service cloudera-scm-agent restart
重启完成后重新登录http://master:7180
添加kafka服务
第一次可能会启动失败,失败后直接在首页点击kafka的小扳手查看原因,点击配置修改配置,再次启动kafka
修改完成后,若启动失败,则去查看日志,很有可能是id问题:
查看角色日志报错:kafka.common.InconsistentBrokerIdException: Configured broker.id 33 doesn’t match stored broker.id 59 in meta.properties
解决办法:需把配置里的参数改为59,再启动
9.添加spark2服务
分配角色
至此,我们的安装就都已经完成啦。
六、安装测试
测试spark服务
/var/lib/hadoop-hdfs下创建data文件,内写入’1\n2\n3’
文件上传至hdfs
cd /var/lib/hadoop-hdfs
hadoop fs -put data /user/spark/
启动spark2-shell进入命令行
su hdfs
spark2-shell
val lines = sc.textFile("/user/spark/data")
lines.count
lines.first
能够运行即可,若获取不到资源,可修改下配置:
修改yarn的配置
scheduler.maximum-allocation-mb、
nodemanager.resource.memory-mb
改为8GB
测试kafka服务
使用命令创建topic
kafka-topics --create --zookeeper hadoop01,hadoop02 --replication-factor 1 --partitions 1 --topic test
查看top是否创建成功
kafka-topics --list --zookeeper hadoop01,hadoop02
最后检验机器服务
执行jps,看是否和如下图所示一致
其中DFSZFailoverController是我在做了ha之后才有的服务,无需关注,至于如何配置HA,请参考我的其他文章,谢谢。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容