注:此为hadoop CDH5.11离线安装
一、准备
安装所需文件
1 官网下载Cloudera Manager和CDH 5.11
Cloudera Manager下载地址:
http://archive.cloudera.com/cm5/cm/5/
cloudera-manager-el6-cm5.11.0_x86_64.tar.gz
CDH安装包
http://archive.cloudera.com/cdh5/parcels/latest/
CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel
CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha1
manifest.json
2 JDK 7
jdk-7u80-linux-x64.tar.gz
3 mysql 5.6和最新的mysql JDBC connector
mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
mysql-connector-java-5.1.44-bin.jar
二、CentOS6.5安装
用户/密码
root/XXXX
XXX/123
主机名 IP
master 192.168.10.111
slave1 192.168.10.121
slave2 192.168.10.131
配置/etc/hostname
分别是maser和slave1和slave2
3台都配置/etc/hosts
加入
用户/密码
root/anian123
anjian/anjian123
主机名 IP
master 192.168.10.11
slave1 192.168.10.12
slave2 192.168.10.13
配置/etc/hostname
分别是maser和slave1和slave2
3台都配置/etc/hosts
加入:
192.168.111 master
192.168.121 slave1
192.168.131 slave2
注:安装过程都使用root用户
CDH 安装在/opt。
CDH在var目录会放文件,要预留空间
数据保存在/data
三、配置SSH无密码登录
1.查看是否安装openssh和rsync
rpm -qa | grep openssh
rpm -qa | grep rsync
2. 3台都运行
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
(-t dsa:表示使用密钥的加密类型,可以为'rsa'和'dsa')
3.
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这一步,把本机的密钥写入authorized_keys文件
然后要将其他2台的密钥写入本机的authorized_keys文件
4.
master运行
scp ~/.ssh/id_dsa.pub root@slave1:~/.ssh/ authorized_keys_from_master
scp ~/.ssh/id_dsa.pub root@slave2:~/.ssh/ authorized_keys_from_master
slave1 运行
cat .ssh/authorized_keys_from_master >> ~/.ssh/authorized_keys
slave2 运行
cat .ssh/authorized_keys_from_master >> ~/.ssh/authorized_keys
slave1运行
scp ~/.ssh/id_dsa.pub root@master:~/.ssh/authorized_keys_from_slave1
scp ~/.ssh/id_dsa.pub root@slave2:~/.ssh/authorized_keys_from_slave1
master运行
cat .ssh/authorized_keys_from_slave1 >> ~/.ssh/authorized_keys
slave2 运行
cat .ssh/authorized_keys_from_slave1 >> ~/.ssh/authorized_keys
slave2运行
scp ~/.ssh/id_dsa.pub root@master:~/.ssh/authorized_keys_from_slave2
scp ~/.ssh/id_dsa.pub root@slave1:~/.ssh/authorized_keys_from_slave2
master运行
cat .ssh/authorized_keys_from_slave2 >> ~/.ssh/authorized_keys
slave2 运行
cat .ssh/authorized_keys_from_slave2 >> ~/.ssh/authorized_keys
最后3台的authorized_keys文件,内容都有3个key
测试SSH无密码登陆
在任意一台上,ssh slave1都可以无密码登陆
四、同步各时间节点
1.1 将3台服务器时间同步,若hbase各节点时间差距过大会报错(默认30秒)
关闭3台的防火墙
service iptables stop
chkconfig iptables off 重启后也生效
1.2 配置ntp服务器(master)
vim /etc/ntp.conf
然后加入以下配置:
127.127.1.0
fudge 127.127.1.0 stratum 10
注:
后面那个数字在0-15之间都可以,这样就将这台机器的本地时间作为ntp服务提供给客户端
1.3 重启ntpd
/etc/init.d/ntpd start
chkconfig ntpd on下次开机时 自动重启
五、安装JDK
1.1 检查并写在openjdk
检查命令:java -version或 rpm -qa | grep java
卸载命令:rpm –e --nodeps(忽略依赖)安装包名
或yum -y remove安装包名
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
1.2 解压安装
Jdk版本:jdk-7u80-linux-x64.tar.gz
解压到/usr/local :
cd /usr/local;
tar –zxvf jdk-7u80-linux-x64.tar.gz
1.3 配置环境变量
3台都编辑/etc/profile文件:vim /etc/profile
加入
#set java environment
export JAVA_HOME=/usr/local/jdk1.7.0_80
export LASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使配置生效:source /etc/profile
六、安装mysql
mysql安装在slave2192.168.10.131
1.1 检查是否存在mysql库文件
检查命令:rpm –qa | grep mysql
若存在则卸载:rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
1.2 检查是否存在mysql用户和组
检查命令:cat/etc/group | grep mysql;
cat /etc/passwd | grep mysql
若不存在则创建:groupaddmysql;
useradd –r –g mysql mysql
(-r参数表示mysql用户是系统用户,不可用于登录系统)
1.3 创建数据、日志存储目录
命令:mkdir -p/data/mysql/data; mkdir /var/lib/mysql/log
更改所属用户:
chown –Rmysql:mysql /data/mysql
chown –Rmysql:mysql /usr/local/mysql
1.4 解压并初始化
解压安装包:
/usr/local目录
tar –zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
改目录名
mv mysql-5.6.36-linux-glibc2.5-x86_64 mysql
初始化参数:
到mysql目录
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
复制配置文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
修改
vi /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
vi /etc/my.cnf
basedir =/usr/local/mysql
datadir =/data/mysql/data
character_set_server=utf8
在usr/local/mysql/script目录运行
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
1.5 添加环境变量
编辑文件:vim /etc/profile
1.6 配置mysql自动启动
设置在运行级别为3和5时mysql自动启动:
1.7 启动mysql
命令:bin/mysqld_safe --user=mysql &
登录mysql
bin/mysql --user=root -p
设置root密码
set password=password('anjian123');
()允许root在任何主机登录:grant all privileges on *.* to 'root'@'%' identified by 'anjian123' with grant option;
grant all privileges on *.* to 'root'@'master' identified by 'anjian123' with grant option;
刷新权限表:flush privileges;
1.8 创建以下数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
七、安装CDH
1.1 安装Cloudera Manager Server 和Agent
主节点解压安装
cloudera manager的目录默认位置在/opt下,解压:tar xzvf cloudera-manager*.tar.gz将解压后的cm-5.11.0和cloudera目录放到/opt目录下。
复制mysql-connector-java-5.1.44-bin.jar到目录/usr/share/java和/opt/cm-5.11.0/share/cmf/lib/
并改名成mysql-connector-java.jar
在所有节点上执行
useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
1.3 agent配置
主节点,修改/opt/cm-5.11.0/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。
# Hostname of the CM server.
server_host=master
同步Agent到其他所有节点:
scp -r /opt/cm-5.11.0 root@slave1:/opt/
scp -r /opt/cm-5.11.0 root@slave2:/opt/
1.4 在主节点初始化CM5数据库
运行
/opt/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql cm -h slave2 -uroot -panjian123 --scm-host master scm scm scm
-h后是mysql的主机名
--scm-host 后是SCM server的主机名(主节点)
如果有报错,一般是msyql的权限设置没设好,root不能远程登录
1.5 准备Parcels,用以安装CDH5
将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中
相关的文件如下:
CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel
CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha1
manifest.json
最后将CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1,重命名为CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha
1.6 启动脚本
主节点:通过/opt/cm-5.11.0/etc/init.d/cloudera-scm-server start启动服务端。
所有节点(包括主节点):通过/opt/cm-5.11.0/etc/init.d/cloudera-scm-agent start启动Agent服务
注:
停止可以用/init.d/cloudera-scm-server stop
启动成功后,可以用ps –ef|grep cloudera看到这2个进程
cloudera-scm-agent 的log如果报错:
[04/Sep/2017 16:29:38 +0000] 2983 MainThread agent ERROR Heartbeating to master:7182 failed.
一般是主节点防火墙没关闭
1.7 CDH5的安装配置
http://192.168.10.111:7180/cmf/login
默认的用户名和密码均为admin
选择免费版本:
输入主机,master,slave1,slave2,点搜索
点当前管理的主机,选中3台主机 选择继续
接下来,选择Parcel安装,直接点继续
有一个问题:
运行
echo 10 > /proc/sys/vm/swappiness
要永久改变
vim /etc/sysctl.conf
vm.swappiness=10
echo never>/sys/kernel/mm/transparent_hugepage/defrag
echo never>/sys/kernel/mm/transparent_hugepage/enabled
接下来点击继续然后选择安装的服务,及数据库配置就行了。
注:CDH安装失败后,重新安装:
1) 主节点关闭cloudera-scm-server。所有节点关闭cloudera-scm-agent
2)删除Agent节点目录
rm -rf /opt/cm-5.11.0
rm -rf /opt/cloudera
删除主节点目录
rm -rf /opt/cm-5.11.0
rm -rf /opt/cloudera
删除主节点,/var/log/下cloudera相关的目录
删除主节点,/var/lib/下cloudera相关的目录
3) 清空CM数据库
进入Mysql数据库,然后drop database cm;
4) 删除各节点namenode和datanode节点信息
# rm -rf /opt/dfs/nn/*
# rm -rf /opt/dfs/dn/*
5) 重新安装CDH,主节点解解压:tar xzvf cloudera-manager*.tar.gz将解压后的cm-5.11.0和cloudera目录放到/opt目录下。
……