注意,本安装教程是在真机上进行,而非虚拟机。另,此次搭建主要的目的是搭建测试环境,让Hadoop各组件能够运作起来即可,完成搭建后,将用小数据量进行相关数据的计算与测试。线上环境将会使用阿里云主机。
以下是四台真机配置:
机子内网IP地址 |
主机名 |
内存大小 |
磁盘大小 |
CPU |
192.168.0.29 |
bigdata01(主) |
8GB |
2T |
1个物理CPU,4核 |
192.168.0.133 |
bigdata02(从) |
8GB |
500GB |
1个物理CPU,2核 |
192.168.0.135 |
bigdata03(从) |
8GB |
500GB |
1个物理CPU,2核 |
192.168.0.115 |
bigdata04(从) |
8GB |
500GB |
1个物理CPU,2核 |
根据机子的配置,建议Hadoop的NameNode放在29这台机子上,配置高可用的话,NameNodeStandby放在除29以外任意一台机子均可,DataNode四台机子都要配。其它组件如何放置,后续会说到。
Tips:
在linux系统环境下,查看机子的内存大小命令:cat /proc/meminfo |grep MemTotal
查看机子的硬盘大小:fdisk -l | grep Disk
查看机子的CPU情况:
有两个公式可以记一下:总核数 = 物理CPU个数 * 每颗物理CPU的核数;
总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
查看物理CPU个数:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查看每个物理CPU的核数:cat /proc/cpuinfo| grep "cpu cores"| uniq
查看逻辑CPU的个数:cat /proc/cpuinfo| grep "processor"| wc -l
http://old-releases.ubuntu.com/releases/16.04.3/ubuntu-16.04.4-server-amd64.iso
关于操作系统的选择,其实区别不大,这种级别的问题,对我这种水平的人,不太能够感知得到,当然会继续努力,去感知操作系统级别的问题。
先下载好来,然后传到各个节点上去,不然安装过程中下载,速度慢得让你分分钟想砸键盘。
tar包下载:
https://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz
parcles下载:
http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel
http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.15.2/manifest.json
下载的tar包,包含了cloudera manager server,cloudera manager daemons,cloudera manager agents。
parcles包则是CM特有的包格式,安装的各个组件就是从parcles里面取出来的。
ubuntu系统在刚安装完成后,root用户默认不被启用,也没有密码,因此需要给root用户设置一个登陆密码,还要设置root用户允许ssh登陆,这样会方便我们进行软件的安装。
给root用户设置密码:sudo passwd root
开启root用户ssh远程登陆权限:sudo vi /etc/ssh/sshd_config,将文件中的PermitRootLogin prohibit-password 改为 PermitRootLogin yes
要使修改的配置生效,需要重启ssh服务:service ssh restart
设置好了之后,登录root用户,后面都是用root用户操作了:su root
命令:vim /etc/hosts
将ip和主机名添加到文件末尾:
注意ip和主机名修改为你自己的。
这一步很重要,不然在安装CM的过程中会出错,一定要完成这一步。
首先,在每个节点上分别生成密钥
命令:ssh-keygen -t rsa
一路回车,结束后,在/root/.ssh文件夹中,会有id_rsa,id_rsa.pub两个文件。
每个节点都生成密钥成功后,然后我们把每个节点的id_rsa.pub文件中的内容,集中到一个名为authorized_keys文件中,然后把这个文件分别传送到各节点的.ssh文件夹中,这样我们就可以在任意节点使用ssh命令免密登录到别的节点上去。
最终,.ssh文件夹中,我们可以看到以下几个文件:
试试效果:
可以看到,这里并没有提示要求我们输入密码登录到bigdata02机子上。
安装包已经下载好了,就在之前已经下载好的cm6.3.0-ubuntu1604.tar.gz这个包里。
将包上传到机子上,之后使用命令:tar -zxvf cm6.3.0-ubuntu1604.tar.gz,解压。
java安装包在路径:/cm6.3.0/pool/contrib/o/oracle-j2sdk1.8
注意这里是一个deb包,我们需要使用dpkg命令进行包的安装。
命令:dpkg -i oracle-j2sdk1.8_1.8.0+update181-1_amd64.deb
默认的安装路径为:/usr/lib/jvm/java-8-oracle-cloudera。
接下来配置jdk的全局环境变量
编辑 /etc/profile文件:vim /etc/profile
在文件末尾加上下面的代码:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle-cloudera
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
加入完成后,要使全局变量生效,使用命令:source /etc/profile
之后,输入:java -version,出现下面的提示,则说明安装成功了:
安装ntp包的目的是,为了保障各节点的时间能够同步,否则安装CDH过程中,会出现时间不同步的错误。
使用命令:apt-get install ntp 进行安装
使用命令:service ntp start 启动服务
使用命令安装:apt-get install mysql-server
安装完成后,修改一下配置文件:vim /etc/mysql/mysql.conf/mysqld.cnf
在【mysqld】下,添加:
lower_case_table_names=1
default-time_zone = ‘+8:00‘
skip_ssl
重启mysql:service mysql restart
将parcle文件上传到主节点目录,可以方便后续CM安装parcle,提高安装速度。
根据cloudera manager的建议,将值设定为10
命令:echo 10 > /proc/sys/vm/swappiness
ping bigdata01
ping bigdata02
ping bigdata03
ping bigdata04
ssh bigdata01
ssh bigdata02
ssh bigdata03
ssh bigdata04
都不需要输入密码,直接能够登录上,说明此项配置成功
首先解压到/opt/文件夹下:
tar zxvf ~/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz -C /opt/
然后在opt文件夹下,再创建以下几个文件夹:
mkdir /opt/cloudera /opt/cloudera/parcels /opt/cloudera/parcel-repo
剪切过去:
mv ~/CDH-5.15.2-2.cdh5.15.2.p0.3-xenial.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel.sha
剪切过去:
mv ~/CDH-5.15.2-2.cdh5.15.2.p0.3-xenial.parcel /opt/cloudera/parcel-repo/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel
剪切过去:
mv ~/manifest.json /opt/cloudera/parcel-repo/manifest.json
删除压缩包:
rm -rf ~/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz
cp /usr/share/java/mysql-connector-java.jar /opt/cm-5.15.2/share/cmf/lib/mysql-connector-java.jar
这里创建的数据库,是用来存放各个大数据组件的元数据的。
这里数据库已经配置好了远程root可以登录,因此在windows电脑上,使用Navicate连接数据库。在Navicate里之行下面的数据库创建语句:
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO ‘scm‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO ‘amon‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO ‘rman‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO ‘hue‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO ‘sentry‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO ‘hive‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO ‘nav‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO ‘navms‘@‘%‘ IDENTIFIED BY ‘123456‘;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO ‘oozie‘@‘%‘ IDENTIFIED BY ‘123456‘;
命令:/opt/cm-5.15.2/share/cmf/schema/scm_prepare_database.sh mysql scm scm
命令:vim /opt/cm-5.15.2/etc/cloudera-scm-agent/config.ini
修改server_host=localhost,改为server_host=192.168.0.29
将整个Cloudera Manager的文件从主节点复制到其他三个从节点上:
scp -r /opt/cm-5.15.2 bigdata02:/opt/
scp -r /opt/cm-5.15.2 bigdata03:/opt/
scp -r /opt/cm-5.15.2 bigdata04:/opt/
命令:
useradd --system --home=/opt/cm-5.15.1/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
bigdata01:
bigdata02:
bigdata03:
bigdata04:
我这里之前已经创建过了,所有会提示用户已经存在。
命令:
mkdir /opt/cloudera /opt/cloudera/parcels /opt/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm /opt/cm-5.15.2
更改前:
更改后:
在bigdata01节点上输入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-server start
在bigdata02、bigdata03、bigdata04上输入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-agent start
当启动cloudera-scm-server成功后,等待几分钟之后,访问主节点的7180端口,就可以进入到图形化安装界面。刚开始启动完成之后,不能立马访问,因为程序还在数据库创建响应的表:
创建完成后,scm数据库中会有47张表格,之后再访问7180端口,就能看到登录页面了。
初始登录的账号密码为:admin admin