系统基本配置
CM搭建
集群大小:
测试集群
机器数量:5 台 - 10 台
机器配置:
>> 内存:24 G / 32 以上
>> 硬盘:4 TB 以上
>> CPU 核:6 核CPU 以上
>> 网卡:万兆
生产集群
>> 小型集群
20 台以下
>> 中型机群
50 台以下
>> 大型机群
50 台以上
基本组件:
* Zookeeper
分布式协作框架
节点数目
测试集群:3 个
生产集群:
>> 小型集群, 3 个或者 5个
>> 中型机群,5 个 或者 7个
>> 大型机群, 奇数个
* HDFS
存储海量数据
* YARN
集群资源管理
资源调度
* MapReduce
并行计算框架
思想:
分而治之
分:map
合:reduce
一、环境的准备
系统:CentOS 6.5版本,64位
内存:24GB
硬盘:60GB
CPU:10核
1、检查服务器资源
# free -m
# df -h
//查看物理cpu个数
# cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
//每个物理cup的核数
# cat /proc/cpuinfo| grep "cpu cores"| uniq
上面两个结果相乘=cup总核数
//结果一共有几核cpu
# cat /proc/cpuinfo| grep "processor"| wc -l
结果一共有几核cpu
2、配置ip、hostname、映射 (所有服务器)
1)查看文件信息并且追加信息
# vi /etc/sysconfig/network
HOSTNAME=bigdata01.com
i插入修改,esc退出,:wq保存退出,:w保存不退出,:q!强制退出
2)重启生效
# service network restart
3)验证
# hostname
4)查看文件信息并且追加信息(所有机器)
# vi /etc/hosts
192.168.75.101 bigdata01.com
192.168.75.102 bigdata02.com
192.168.75.103 bigdata03.com
192.168.75.104 bigdata04.com
192.168.75.105 bigdata05.com
5)验证
# ping www.baidu.com
# ping bigdata02.com
6)检查映射是否配好
3、禁用ipv6
1)查看文件信息并且追加信息
vi /etc/modprobe.d/dist.conf
# echo “alias net-pf-10 off”>>/etc/modprobe.d/dist.conf
# echo “alias ipv6 off”>>/etc/modprobe.d/dist.conf
2)重启生效
ip a 验证是否成功
4、禁用selinux 和关闭防火墙
1)禁用selinux
# getenforce 查看selinux状态
# vi /etc/sysconfig/selinux
SELINUX=disabled
重启生效
验证:[root@bigdata01 ~]# getenforce
Disabled
2)关闭防火墙:
# service iptables stop
# 设置成开机不启动
# chkconfig iptables off
5、JDK安装(所有机器)
1)卸载系统自带的相关安装包
# rpm -qa | grep java
# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
2)创建目录,上传解压jdk
# mkdir -p /opt/modules
# mkdir -p /opt/softwares
# tar zxf jdk-7u67-linux-x64.tar.gz -C /opt/modules
3)配置java环境变量(所有机器)
# vi /etc/profile
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
4)配置生效(所有机器)
# source /etc/profile
5)拷贝给其他服务器(所有机器)
[root@bigdata01 modules]# scp -r ./ root@bigdata02.com:/opt/modules/
[root@bigdata01 modules]# scp -r ./ root@bigdata03.com:/opt/modules/
[root@bigdata01 modules]# scp -r ./ root@bigdata04.com:/opt/modules/
[root@bigdata01 modules]# scp -r ./ root@bigdata05.com:/opt/modules/
6)验证
# java -version
6、ssh免密码登录 (所有服务器)
0)ssh 针对用户,并且首先保证ssh localhost正常通畅
ssh localhost
1) 在每台服务器上生成公私密钥
ssh-keygen
2)分发公钥(注意:每次ssh登录后,事情做完后,记得exit)
ssh-copy-id -i ~/.ssh/id_rsa.pub localhost
ssh localhost
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata01.com
ssh bigdata01.com
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata02.com
ssh bigdata02.com
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata03.com
ssh bigdata03.com
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata04.com
ssh bigdata04.com
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub bigdata05.com
ssh bigdata05.com
exit
2)验证:
# ssh bigdata02.com
注意:每次ssh登录后,事情做完后,记得exit
6、集群系统的时间同步
1)启动ntpd进程服务
service ntpd start
chkconfig ntpd on
chkconfig --list | grep ntpd
2)修改时间服务器的配置文件
# vi /etc/ntp.conf
注释打开,然后修改为本集群的网段
18 # restrict 172.23.201.0 mask 255.255.255.0 nomodify notrap
注释掉
22 #server 0.centos.pool.ntp.org
23 #server 1.centos.pool.ntp.org
24 #server 2.centos.pool.ntp.org
注释打开,如果系统没有下面信息,需要手动添加
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
3)启动并且配置开机时启动
# service ntpd start && chkconfig ntpd on && chkconfig --list | grep ntpd
4)更新本地时间
[root@bigdata01 java]# ntpdate -u 202.120.2.101
24 Feb 15:24:11 ntpdate[2408]: step time server 202.112.10.60 offset 4.004597 sec
ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
7、设置用户能打开的文件最大数量、进程最大数据、能使用的内存量 (所有服务器)(soft:警告;hard:停机)
1)查看文件信息并且修改
$ vi /etc/security/limits.conf
* soft nofile 32728
* hard nofile 1024567
* soft nproc 65535
* hard nproc unlimited
* soft memlock unlimited
* hard memlock unlimited
2)bigdata01复制limits.conf到其他各台机器
$ scp /etc/security/limits.conf root@bigdata02.com:/etc/security/limits.conf
$ scp /etc/security/limits.conf root@bigdata03.com:/etc/security/limits.conf
$ scp /etc/security/limits.conf root@bigdata04.com:/etc/security/limits.conf
$ scp /etc/security/limits.conf root@bigdata05.com:/etc/security/limits.conf
3)重启生效
验证: # ulimit -a
注:强调该文件,严格按照格式来改最好通过复制修改,如果limits.conf配置错误,linux重启不能进入,解决办法是单用户进入修改《Linux进入单用户模式.pdf》
系统基本配置结束
部署规划开始
一、机器分配
192.168.75.101 server/agent mysql
192.168.75.102 agent namenode
192.168.75.103 agent namenode(备) resourcemanager
192.168.75.104 agent resourcemanager (备)
192.168.75.105 agent
192.168.75.101 server/agent mysql
192.168.75.102 agent namenode resourcemanager(备)
192.168.75.103 agent namenode(备) resourcemanger
部署规划结束====
数据库安装开始====
二、安装mysql数据库
1)选择服务器安装:bigdata01.com
版本要求:5.6
默认安装:5.1 yum 安装mysql的默认版本
2)检查服务器自带的mysql相关安装包
[root@bigdata01 ~]# rpm -qa | grep mysql
mysql-libs-5.1.66-2.el6_3.x86_64
[root@bigdata01 ~]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
3)使用yum方式安装mysql
编译安装-都需要外网
下载mysql的yum源
4)更新mysql的yum源
[root@bigdata01 soft]# rpm -Uvh mysql57-community-release-el6-8.noarch.rpm
5)修改源
# vi /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.6
[mysql56-community]
enabled=1 //改成1,表示启用
gpgcheck=1
[mysql57-community]
enabled=0 //改成0,禁用
gpgcheck=1
# vi /etc/yum.repos.d/mysql-community-source.repo
[mysql56-community-source]
enabled=1 //改成1,表示启用
gpgcheck=1
[mysql-tools-preview-source]
name=MySQL Tools Preview - Source
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/6/SRPMS
enabled=1 //改成1,表示启用
gpgcheck=1
6)查看通过yum可以安装的软件包(只显示mysql相关的)
# yum repolist enabled | grep mysql
7)yum安装mysql
# yum -y install mysql-community-server
# yum makecache 更新缓存
8)启动mysql数据库的初始化
# service mysqld status
# service mysqld start
9)首次启动成功后,对访问用户进行设置(比如给root用户设置密码,去掉匿名用户)
# mysql_secure_installation
输入当前用户:回车
输入root密码:123456
production environment.
Remove anonymous users? [Y/n] y
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
… skipping.
By default, MySQL comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] n
… skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
… Success!
安装MySQL(server节点)
-》如果需要重新安装MySQL
yum remove -y mysql-server
-》编译安装MySQL
-》安装依赖
yum -y install gcc gcc-c++ gdb cmake ncurses-devel bison bison-devel
-》下载解压,进入目录
-》预编译、编译、安装
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data
-DSYSCONFDIR=/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DMYSQL_TCP_PORT=3306
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-》编译:
make(20分钟)
-》安装:
make install
-》添加MySQL用户组及用户
groupadd mysql
useradd -r -g mysql mysql
-》初始化MySQL
cd /usr/local/mysql/scripts/
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
-》配置MySQL使用service命令管理
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
-》配置MySQL环境变量
vim /etc/profile
#MYSQL
export MYSQL_HOME=/usr/local/mysql
export PATH=
P
A
T
H
:
PATH:
PATH:MYSQL_HOME/bin
source /etc/profile
-》删除自带的配置文件
rm -rf /etc/my.cnf
-》启动MySQL服务
Starting MySQL. [ OK ]
-》重置root密码
-》mysql
-》set password=password(“123456”);
-》flush privileges;
数据库安装结束====
CM安装开始====
三、CM的安装
1)安装第三方依赖(在所有服务器上)
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
2)下载上传
//下载地址:
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.3.6_x86_64.tar.gz
上传到/opt/softwares文件夹下
3)安装
//先在server主节点上创建一个CM的解压目录
# mkdir -p /opt/cloudera-manager
//opt/cloudera-manager/cm-5.3.6 CM框架本身的配置、依赖库、启动脚本等文件
# tar -zxf /opt/softwares/cloudera-manager-el6-cm5.3.6_x86_64.tar.gz -C /opt/cloudera-manager
//在解压路径下 两个子目录cloudera cm-5.3.6
//opt/cloudera-manager/cm-5.3.6 CM框架本身的配置、依赖库、启动脚本等文件
4)在server主节点上修改agent配置
# vi /opt/cloudera-manager/cm-5.3.6/etc/cloudera-scm-agent/config.ini
# Hostname of the CM server.
server_host=bigdata01.com
# Port that the CM server is listening on.
server_port=7182 //确认通信端口
5)拷贝CM解压后的包给其他服务器
# scp -r /opt/cloudera-manager/ bigdata02.com:/opt/
# scp -r /opt/cloudera-manager/ bigdata03.com:/opt/
# scp -r /opt/cloudera-manager/ bigdata04.com:/opt/
# scp -r /opt/cloudera-manager/ bigdata05.com:/opt/
6)创建cloudera Manager 专门用户 cloudera-scm(在agnet所有服务器节点)
# useradd --system --home=/opt/cloudera-manager/cm-5.3.6/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
useradd
--system 表示创建的是系统用户
--home=/opt/cloudera-manager/cm-5.3.6/run/cloudera-scm-server 指定用户主目录路径
--no-create-home 不创建用户主目录
--shell=/bin/false 不作为一个登陆用户
--comment "Cloudera SCM User"
cloudera-scm 用户名
验证:
# cat /etc/passwd | grep cloudera-scm
7)配置CM数据库的权限
//登陆主节点msyql,
# mysql -uroot -p123456
//添加一个temp用户并属于相关权限(主节点,也即mysql安装的机器)
mysql> grant all privileges on *.* to 'temp'@'%' identified by 'temp' with grant option ;
mysql> grant all privileges on *.* to 'temp'@'bigdata01.com' identified by 'temp' with grant option;
mysql> flush privileges ;
mysql> use mysql ;
mysql> select host ,user from user ;
//在主节点上
# cd /opt/cloudera-manager/cm-5.3.6/share/cmf/schema
//目录下scm_prepare_database.sh执行脚本文件命令
# ./scm_prepare_database.sh mysql -h bigdata01.com -utemp -ptemp --scm-host bigdata01.com scm scm scm
//出现异常:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
//解决办法:在/usr/share/java目录放入 mysql的驱动jar包,并且要求将jar包名称改为“mysql-connector-java.jar”
# cp mysql-connector-java-5.1.26-bin.jar /usr/share/java
# mv mysql-connector-java-5.1.26-bin.jar mysql-connector-java.jar
//成功显示:
All done, your SCM database is configured correctly!
8)将CDH源放到cloudera Manager 主节点服务器上
CDH源:hadoop集群(hadoop、flume、hbase等等)的安装文件
//在server主节点上创建,注意:目录名称不能变
# mkdir -p /opt/cloudera/parcel-repo
//在agent主机节点上创建
# mkdir -p /opt/cloudera/parcels
//移动CDH源到linux
# mv CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel* /opt/cloudera/parcel-repo/
//移动CDH源,去掉校验码文件结尾的1
# mv CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha1 CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha
//更改parcel目录的所有人
//server节点
# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/
//agent节点(所有agent节点)
# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels
9)启动CM进程
server进程:
//CM的进程启动脚本目录
# cd /opt/cloudera-manager/cm-5.3.6/etc/init.d
//启动命令,注意:至少需要8G内存
# ./cloudera-scm-server start
//server主进程的log日志目录
# cd /opt/cloudera-manager/cm-5.3.6/log/cloudera-scm-server
# tail -f cloudera-scm-server.log
//CM控制台(等待5分钟)
CM的jetty服务器操作界面的访问端口 7180
http://bigdata01.com:7180 //操作界面
登陆 admin admin
//查看端口占用情况
# netstat -tlnup
//Windows系统配置
C:\Windows\System32\drivers\etc
172.23.201.91 bigdata01.com
172.23.201.92 bigdata02.com
172.23.201.93 bigdata03.com
172.23.201.94 bigdata04.com
172.23.201.95 bigdata05.com
agent从节点进程(在所有agent节点中启动):
# cd /opt/cloudera-manager/cm-5.3.6/etc/init.d/
# ./cloudera-scm-agent start
//看不到agent进程,因为是Python语言维护
[root@bigdata02 ~]# jps
[root@bigdata02 ~]# ps -ef | grep agent
gdm 2013 1961 0 Feb24 ? 00:00:00 /usr/libexec/polkit-gnome-authentication-agent-1
root 19512 1 3 10:26 ? 00:00:05 /opt/cloudera-manager/cm-5.3.6/lib64/cmf/agent/build/env/bin/python /opt/cloudera-manager/cm-5.3.6/lib64/cmf/agent/src/cmf/agent.py --package_dir /opt/cloudera-manager/cm-5.3.6/lib64/cmf/service --agent_dir /opt/cloudera-manager/cm-5.3.6/run/cloudera-scm-agent --lib_dir /opt/cloudera-manager/cm-5.3.6/lib/cloudera-scm-agent --logfile /opt/cloudera-manager/cm-5.3.6/log/cloudera-scm-agent/cloudera-scm-agent.log
//启动好后 ,netstat -tlnup | grep 7180 查看是否正常开启了7180页面访问端口
//通过浏览器访问
http://bigdata01.com:7180
http://bigdata02.com:7180/cmf/express-wizard/resume
登录 admin admin
报错:
useradd: cannot lock /etc/group; try again later.
useradd: cannot lock /etc/gshadow ; try again later.
解决方法:删除group.lock ,删除gshadow.lock
==================================================================================================================================================
10)检查主机的正确性
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑/etc/sysctl.conf以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
//当前设置查看
# more /proc/sys/vm/swappiness
//四台agent主机都执行(不适用磁盘作为内存交换区)
# echo 0 > /proc/sys/vm/swappiness
已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 6.4 (Final)”且发行版为“2.6.32-358.el6.x86_64”的 Kernel 已将 enabled 设置为“[always] never”,并将 defrag 设置为“[always] never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会予以设置。或者,升级到 RHEL 6.5 或更新版本,它们不存在此错误。将会影响到以下主机:
(所有机器执行:)
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
always [never]
# vi /etc/rc.local //添加上面的echo命令
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
CM安装结束====
四、 Cloudera manager service集群监控服务安装
页面上图表展示的数据 需要安装并且启动好Cloudera manager service服务
点击右上角的添加Cloudera Management Service》》》全部默认安装》》》结束
五、大数据各个组件的安装测试
基于CM管理平台安装配置hadoop,hive,oozie,sqoop,flume,hbase,spark等协作框架
1)安装hadoop(非HA模式):hdfs
步骤1、在主页集群中Cluster1中点击下拉,选择添加服务,并且选中HDFS
步骤2、 跳转到添加服务向导,并且配置HDFS中的namenode,datanode,secondarynamenode,HttpFS角色,如下分配:
namenode:bigdata02.com,接受客户端请求,管理管理源数据
datanode:所有主机安装,并且最好4台以上其中,不建议搞三台,因为hdfs备份三分,如果其中一台机器出现故障或者通信问题,整个系统出问题。
secondarynamenode:bigdata03.com,协助Namenode合并fsimage与edits文件
HttpFS:bigdata04.com,http服务,允许客户端以http的访问方式来访问hdfs,并且在Hue中也会用到。
balance:bigdata02.com负责集群的负载均衡的进程
步骤3、审核更改,默认
步骤4、升级安装,完成
步骤5、首页集群,HDFS解决警告(Namenode的Java堆栈大小(字节)),点击进入,NameNode Default Group/资源管理选项和secondarynamenode Default Group/资源管理选项,点击重置为默认值:1G即可,返回首页点击警告旁边的刷新按钮,进入Cluster1过期配置,点击右上角的重启集群即可,然后点击立即重启。
步骤6、主机警告,bigdata03.com: 内存调拨过度验证阈值,暂时忽略不处理
步骤7、从首页进入HDFS,“快速链接 NameNode Web UI (活动)”进入可以看到我们之前用的hadoop,文件监控查看控制台
步骤8、在bigdata02.com中输入hdfs查看命令行验证:
# hdfs dfs -ls -R /
# hdfs dfs -mkdir -p /user/bigdata
mkdir: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
解决:
方法一:
# export HADOOP_USER_NAME=hdfs 让执行命令的用户针对hadoop框架临时变为hdfs用户
方法二:
配置hdfs配置文件,跳过权限的检查
hdfs组件主页面-》配置-》检查 HDFS 权限(打钩去掉)
2)安装hadoop:yarn
步骤1、选择YARN(MR2 Included),注:不要选择MapReduce,因为它是针对hadoop1的
步骤2、添加服务向导,选择一组依赖关系,选择hdfs,下一步
步骤3、定义角色ResourceManager,NodeManager,JobHistory Server角色,如下分配
ResourceManager:bigdata03.com,资源管理任务调度
NodeManager:与配置NameNode中的datanode对应
JobHistory Server:bigdata04.com,日志聚合功能
步骤3、审核默认,进入安装,安装完成
步骤4、点击快速链接可以分别进入yarn和JobHistory控制台监控页面
agent上面/opt/cloudera/parcels/CDH集中放置各框架命令执行文件、依赖Jar包,注:从parcels中解压提取安装文件到响应目录中
# cd /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11
# ll
测试wordcount程序
# cd ~
# vi wc.txt
编辑文件:放入用空格隔开的字符,
如:hadoop spark sqoop
# hdfs dfs -ls - R /
# hdfs dfs -mkdir -p /user/bigdata/wordcount/input
# hdfs dfs -put wc.txt /user/bigdata/wordcount/input
# hdfs dfs -ls - R /
# yarn jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/jars/hadoop-examples-2.5.0-mr1-cdh5.3.6.jar wordcount /user/bigdata/wordcount/input/wc.txt /user/bigdata/wordcount/output
# hdfs dfs -ls - R /user/bigdata/wordcount/output1
# hdfs dfs -text /user/bigdata/wordcount/output/part-r-*
注:
1、四台机器,每台有两个reduce,总计有8个reduce
官网wordcount案例Reduce个数使用的是配置里面的mapreduce.job.reduces也可以在带代码中通过job.setNumReducers设置。
2、在CM中修改mapreduce.job.reduces个数
在首页点击yarn,进入配置页面,搜索mapreduce.job.reduces,重置为默认一个,保存更改即可。然后首页点击yarn上面的重置,部署客户端配置,重启生效即可。配置重启后系统有延迟稍后刷新即可。
//CM已经默认配置启用了压缩
# hadoop checknative
3)hadoop HDFS的namenode HA模式
3.1、安装zookeeper
zookeep一般安装奇数台3、5、7,是为了容错
前提条件:zookeeper 选举机制 超过半数以上
总3其中2台可用集群可用 容错1台 容错率 1/3 = 30%
总4其中3台可用集群可用 容错1台 容错率 1/4 = 25 %
3.2、安装服务,配置默认,选择3-5台作为zookeep服务安装服务器
注:安装后,有一个检测过程(Zookeeper Canary),需要等待一会
3.2、进入zookeeper的客户端
[root@bigdata03 ~]# /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/bin/zookeeper-client
[root@bigdata03 ~]# ls /
3.3、在首页"hdfs"中的"操作"下来中找到"启用HA..."
定义一个对外访问的入口,nameservice为mycluster
3.4、分配角色
namenode主机:
主:bigdata-cdh02.com
备:bigdata-cdh03.com
journalNode:bigdata-cdh[03-05].com
SecondaryNamenode:协助Namenode合并fsimage与edits文件
JournalNode:仅仅只是备份edits文件仅仅只是将edits文件从当前active namenode节点获取到(同步过来)
Standby Namenode:需要从journalnode中获取到edits文件,合并fsimage与edits文件
hdfs namenode -boostrapStandby:将fsimage文件从已经格式化好的Namenode上拷贝到当前这个Namenode上
3.5、审核更改
参数JournalNode编辑目录,三台分别设置为:/dfs/jn
注:如果从已有的非HA的HDFS上升级为HA模式,出现格式目录已存在的错误,注意这是正常情况(启动时报当前namenode的名称目录进行格式化,目录不为空,操作失败),原因是我们已经前面格式化过了。
4)hadoop yarn的resource manager HA模式
4.1、操作同hdfs
4.2、启用 YARN (MR2 Included) 的 High Availability
ResourceManager 主机:
主:bigdata-cdh03.com
备:bigdata-cdh04.com
4.3、获取Hadoop的配置文件:
“操作”下来菜单中的“下载客户端配置”
5)Hive
元数据保存的数据库 与Cloudera Manager共用mysql
远程方式:
在其中一台服务器上启动 metastore 进程
在其他服务器上启用hive客户端
5.1、先在mysql创建hive要用的database,并且将所用的用户创建出来
# mysql -uroot -p123456
mysql>create database hive default character set latin1;
5.2、授权指定用户可以访问的资源
mysql>grant all privileges on hive.* to 'hive'@'%' identified by 'hive';
mysql>grant all privileges on hive.* to 'hive'@'bigdata01.com' identified by 'hive';
5.3、刷新缓存
mysql>flush privileges;
5.4、JDBC驱动
测试连接,如果遇到jdbc driver 缺失,在/usr/share/java目录放进去 mysql jdbc 驱动包mysql-connector-java.jar
hive数据库主机名称:修改为mysql所在机器bigdata01.com
审核更改默认
进入配置的getway的机器(hive的客户端),使用hive
# hive
# show databases
# show tables
# 创建表,插入数据
# beeline链接等操作
5.5、如何修改hive的配置信息:
进入hive主页面-》配置-》高级-》hive-site.xml->将配置信息填入-》保存-》重启集群
6)sqoop(此处安装的是sqoop2,我们学习的是sqoop1)
6.1、安装配置都是默认,但是sqoop服务选择安装在第四台机器bigdata04.com
6.2、sqoop 命令
# sqoop help
# sqoop list-databases --connect jdbc:mysql://bigdata01.com:3306 --username root --password 123456
[root@bigdata01 java]# scp /opt/softwares/mysql-connector-java.jar bigdata01.com:/usr/share/java
16/09/01 14:09:25 ERROR manager.CatalogQueryManager: Failed to list databases
java.sql.SQLException: Access denied for user 'root'@'bigdata04.com' (using password: YES)
解决办法:
# mysql -uroot -p123456
mysql>grant all privileges on *.* to 'root'@'bigdata04.com' identified by '123456';
mysql>flush privileges;
7)flume agent
7.1、flume agent包括三个组件source、channel、sink;
一般flume在正式使用时需要自己编写好flume.conf文件。
通常使用的有:exec source、memory channel、hdfs sink
7.2、flume配置安装
角色分配给四台机器bigdata[02-05].com,也即四台机器公用一个agent
7.3、一个集群中可以添加配置多个flume服务,收集不同数据源
8)oozie
8.1、安装配置oozie
依赖关系选择有hive的,角色选择bigdata05.com,审核更改选择默认的,
8.2、oozie server进程所在的服务器上:
# scp ext-2.2.zip bigdata05.com:/var/lib/oozie
# cd /var/lib/oozie
//解压zip包到oozie server进程所在的服务器上的/var/lib/oozie
# unzip ext-2.2.zip
//在该目录下可以修改oozie-site.xml的配置文件,如时区等
# cd /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/etc/oozie/conf.dist
8.3、刷新oozie控制台页面
9)hbase
9.3、分配角色
master选择两个服务器
master:bigdata02.com
back-master:bigdata03.com
hbase rest server
以rest接口的方式访问hbase
bigdata05.com
hbase thrift server
后面与hue整合时需要
bigdata04.com
RegionServer
所有bigdata[02-05].com
9.4、审核更改默认
9.5、过去配置,重启集群
添加后hbase相关的进程默认是停止状态
添加后需要重启集群(Cluster1)
10)hue
10.1、依赖关系
选择比较多的依赖整合
10.2、角色分配
选择空闲的机器
bigdata03.com
hadoop为基础一个生态系统
11)spark
11.1、spark部署模式的分类
spark (spark on yarn)
作为yarn的一个应用由yarn管理spark的任务的调度及资源的分配使用yarn的resourcemanager。
spark (standalone)
spark自己的任务的调度及资源的分配框架
master主节点
bigdata02.com
worker从节点
bigdata[02-05].com
History Server:日期收集
bigdata04.com
geteway:spark客户端
bigdata[02-05].com
11.2、spark案例
//处理word count程序
val wcrdd=sc.textFile("hdfs://mycluster/user/bigdata/wordcount/input/wc.input")
val wc=wcrdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
企业一般都有专业的运维人员来管理集群