安装CDH5.7.1集群

Hadoop版本选择

目前Hadoop比较流行的主要有2个版本,Apache和Cloudera版本。
Apache Hadoop:维护人员比较多,更新频率比较快,但是稳定性比较差。
Cloudera Hadoop(CDH):CDH:Cloudera公司的发行版本,基于ApacheHadoop的二次开发,优化了组件兼容和交互接口、简化安装配置、增加Cloudera兼容特性。

准备工作

以下步骤要在所有节点上执行

1. 修改hostname

vi /etc/sysconfig/network

Hostname=masternode1

修改hosts文件

2. 把所有要添加到集群中的主机都要加入hosts中,格式如下:

扫描二维码关注公众号,回复: 1703789 查看本文章

[root@masternode1 centos]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.10.10.11 masternode2

10.10.10.12 slavenode1

10.10.10.13 masternode1

10.10.10.14 slavenode2

10.10.10.15 slavenode3

3. 关闭防火墙

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;

chkconfig iptables off ;service iptables stop;chkconfig iptables --list

4. Ssh免密码登陆配置

[root@masternode1 centos]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[root@masternode1 centos]# for i in {11,12,13,14,15}; do ssh-copy-id 

 [email protected].$i; done

5. 修改时区

[hadoop@masternode1 hadoop]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

cp: overwrite `/etc/localtime'? y

[hadoop@masternode1 hadoop]#  vi /etc/sysconfig/clock

ZONE="Asia/Shanghai"

UTC=false

ARC=false

[root@masternode1 centos]# for i in {11,12,13,14,15}; do scp /etc/sysconfig/clock [email protected].$i:/etc/sysconfig/clock; done

6. NTP服务器时间同步

⑴ vi /etc/ntp.conf 

restrict 127.0.0.1 

restrict -6 ::1

restrict 10.10.10.13 mask 255.255.255.0 nomodify notrap

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

⑵ 启动ntp服务
#/etc/init.d/ntpd start
添加到自启动
执行如下命令,让每次系统启动的时候自动启动ntp服务:
chkconfig ntpd on

⑶客户端设置

[root@masternode2 centos]#vi /etc/ntp.conf 

driftfile /var/lib/ntp/drift

server 192.168.237.230

restrict 192.168.237.230 nomodify notrap noquery

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

[root@masternode2 centos]# for i in {12,14,15};do scp /etc/ntp.conf [email protected].$i:/etc/ntp.conf; done

ntp.conf                                                                  100% 1911     1.9KB/s   00:00    

ntp.conf                                                                  100% 1911     1.9KB/s   00:00    

ntp.conf                                                                  100% 1911     1.9KB/s   00:00  

7. 安装java

[root@masternode1 centos]# mkdir /usr/java

[root@masternode1 centos]# cd /opt/hadoop/

[root@masternode1 hadoop]# tar xvf jdk-7u79-linux-x64.tar.gz -C /usr/java

8. Java安装包拷贝到其他机器上

[root@masternode1 hadoop]# for i in {11,12,13,14,15}; do scp -r /usr/java/ [email protected].$i:/usr;done

9. Mysql安装

① 卸载系统自带的mysql相关安装包,仅卸载mysql开头的包

[root@masternode1 mysql-5.6.25]# rpm -qa|grep mysql

mysql-libs-5.1.73-3.el6_5.x86_64

[root@masternode1 mysql-5.6.25]# rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64

② 安装依赖包

[root@masternode1 mysql-5.6.25]# yum install gcc gcc-c++ ncurses-devel  -y

③ 安装cmake

下载cmake安装包

[rootp@masternode1 cmake-2.8.12]$  wget http://www.cmake.org/files/v2.8/cmake-2.8.12.tar.gz

[root@masternode1 cmake-2.8.12]$  tar zxvf cmake-2.8.12.tar.gz

[root@masternode1 cmake-2.8.12]$ cd cmake-2.8.12 && ./bootstrap && make && make install

④ 创建mysql用户的相应目录

[root@masternode1 ~]# groupadd mysql;useradd -g mysql mysql

[root@masternode1 ~]# mkdir -p /opt/mysql

[root@masternode1 ~]#  mkdir -p /opt/mysql/data

[root@masternode1 ~]# mkdir -p /opt/mysql/log

⑤ 获取MySQL安装包并安装

wget http://dev.mysql.com/get/downloads/mysql/mysql-5.6.25.tar.gz

[hadoop@masternode1 hadoop]]$ tar zxvf mysql-5.6.25.tar.gz

[hadoop@masternode1 hadoop]]$ cd mysql-5.6.25 && mkdir data

[hadoop@masternode1 mysql-5.6.25]$ cmake -DCMAKE_INSTALL_PREFIX=/opt/hadoop/mysql-5.6.25 -DMYSQL_UNIX_ADDR=/opt/hadoop/mysql-5.6.25/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/opt/hadoop/mysql-5.6.25/data/ -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1-DENABLE_DOWNLOADS=1

若提示cmake命名不能运行,之后执行如下即可

 export PATH=/opt/hadoop/cmake-2.8.12/bin/:$PATH

 [hadoop@masternode1e mysql-5.6.25]# make && make install

注意

DMYSQL_UNIX_ADDR=/opt/hadoop/mysql-5.6.25/mysql.sock  必须目录有写的权限,chmod 756 /opt/hadoop/mysql-5.6.25/ 

或者-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  只需/tmp有写的权限即可 chmod 756 /tmp

Chown mysql:mysql /tmp 因此DMYSQL_UNIX_ADDR最好配置/tmp/mysql.scok

⑥ 创建软连接

[hadoop@masternode1 ~]#  ln -s /opt/hadoop/mysql-5.6.25/libmysql/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

[hadoop@masternode1 ~]# chown hadoop:hadoop  /usr/lib/libmysqlclient.so.18

⑦ 修改配置文件

[hadoop@masternode1 mysql-5.6.25]# cp support-files/my-default.cnf /etc/my.cnf

[hadoop@masternode1 mysql-5.6.25]# chown hadoop:hadoop /etc/my.cnf 

[hadoop@masternode1 mysql-5.6.25]$ vi /etc/my.cnf

datadir=/opt/hadoop/mysql-5.6.25/data

log-error=/opt/hadoop/mysql-5.6.25/mysql_error.log

pid-file=/opt/hadoop/mysql-5.6.25/data/mysql.pid

socket=/opt/hadoop/mysql-5.6.25/mysql.sock

user=mysql

⑧ 创建启动文件

[hadoop@masternode1 ~]# cp /opt/hadoop/mysql-5.6.25/support-files/mysql.server /etc/init.d/mysqld

[hadoop@masternode1 ~]# chown hadoop:hadoop /etc/init.d/mysqld ;chmod 756 /etc/init.d/mysqld

[hadoop@slavenode1 mysql-5.6.25]# mysqld -uroot -h127.0.0.1 -p

bash: mysqld: command not found

解决方法如下:

ln -s /opt/hadoop/mysql-5.6.25/bin/mysql /usr/bin/mysql

⑨ 初始化数据库

[hadoop@masternode1 ~]$ chmod 756 /opt/hadoop/mysql-5.6.25/scripts/mysql_install_db

[[[email protected]]$/opt/hadoop/mysql-5.6.25/scripts/mysql_install_db --user=mysql --basedir=/opt/hadoop/mysql-5.6.25 --datadir=/opt/hadoop/mysql-5.6.25/data/  --defaults-file=/etc/my.cnf 

[root@masternode1 mysql-5.6.25]#  chmod +x /etc/init.d/mysqld

[root@masternode1 mysql-5.6.25]#  chkconfig mysqld on

⑩ 启动MySQL服务

[hadoop@masternode1 mysql-5.6.25]# service mysqld start

Starting MySQL. SUCCESS! 

chkconfig --level 2345 mysqld on

10. 创建所需的数据库

-hive数据库,为什么使用latin1,后面安装异常会做说明

create database hive DEFAULT CHARSET latin1;

 --集群监控数据库

--hue数据库

mysql> create database hue DEFAULT CHARSET utf8;

Query OK, 1 row affected (0.00 sec)

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;  

Query OK, 1 row affected (0.00 sec)

--oozie数据库

mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;  

Query OK, 1 row affected (0.00 sec)

创建用户

mysql> CREATE USER 'hive' IDENTIFIED BY 'hive';

Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER 'oozie' IDENTIFIED BY 'oozie';

Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER 'amon' IDENTIFIED BY 'amon';

Query OK, 0 rows affected (0.00 sec)

--授权

mysql> grant all privileges on *.* to 'root'@'masternode1' identified by 'root123' with grant option;  

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'hive'@'masternode1' identified by 'hive' with grant option;  

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'oozie'@'masternode1' identified by 'oozie' with grant option;  

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'amon'@'masternode1' identified by 'amon' with grant option;  

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

11. Cloudera Manager下载安装包并解压

[root@masternode hadoop]# wget http://archive.cloudera.com/cm5/cm/5/loudera-manager-el6-cm5.7.1_x86_64.tar.gz

[root@slavenode1 hadoop]#tar -zxvf cloudera-manager-el6-cm5.7.1_x86_64.tar.gz -C /opt/ ;cd 

/opt/cloudera/parcel-repo

一定要安装到/opt/cloudera/parcel-repo

[root@masternode2 parcel-repo]$  wget http://archive.cloudera.com/cdh5/parcels/5.7.1/manifest.json

[root@masternode2 parcel-repo]$  wget http://archive.cloudera.com/cdh5/parcels/5.7.1/CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha1

[root@masternode2 parcel-repo$   wget http://archive.cloudera.com/cdh5/parcels/5.7.1/CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel 

[root@masternode1 parcel-repo# mv CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha1 CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha

[root@masternode1 parcel-repo]# ls

CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha  manifest.json

修改agent配置

[root@masternode1 parcel-repo]# vi /opt/cm-5.7.1/etc/cloudera-scm-agent/config.ini 

server_host=masternode1

拷贝Mysql数据库连接包

[root@masternode1 parcel-repo]# cp /opt/hadoop/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar /opt/cm-5.7.1/share/cmf/lib/

[root@masternode1 hadoop]# cp /opt/hadoop/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hive/lib/mysql-connector-java.jar

[root@masternode1 hadoop]# cp /opt/hadoop/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/oozie/lib/mysql-connector-java.jar

[root@masternode1 hadoop]# cp /opt/hadoop/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar /opt/hadoop/oozie/mysql-connector-java.jar

在所有节点创建cloudera-scm用户

[root@slavenode2 centos]#  useradd --system --home=/opt/cm-5.7.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

创建目录并把相应的包放到给目录下

mkdir /usr/share/java/

 cp /opt/hadoop/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar  /usr/share/java/mysql-connector-java.jar 

[root@masternode1 opt]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/

[root@masternode1 opt]#  chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.1/

拷贝agent到格datanode节点

[root@masternode1 parcel-repo]# for i in {1,2,4,5} ;do scp -r /opt/cm-5.7.1/ [email protected]$i:/opt/;done

[root@masternode1 parcel-repo]# for i in {1,2,4,5} ;do scp -r /usr/share/java/mysql-connector-java.jar

[email protected]$i/usr/share/java/mysql-connector-java.jar;done

初始化数据库

在主节点初始化CM5的数据库:

[root@masternode1 parcel-repo]# /opt/cm-5.7.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hmasternode1 -uroot -proot123 --scm-host masternode1 scm scm scm

==================部署           ====================

1. namenode启动serveragent(主节点也是要做到集群中的所以主节点也要开启Agent)

  #/opt/cm-5.7.1/etc/init.d/cloudera-scm-server start

  #/opt/cm-5.7.1/etc/init.d/cloudera-scm-agent start

2. 在所有datanode启动agent

 [root@slavenode1 centos]# /opt/cm-5.7.1/etc/init.d/cloudera-scm-agent start

Starting cloudera-scm-agent:                               [  OK  ]

3. 在局域网内访问: http:/1010.10.13:7180/cmf/login, 件后用: http://masternode1:7180/cmf/login

默认帐号密码:admin/admin



echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag' >> /etc/rc.local 

echo 10 > /proc/sys/vm/swappiness

更新内核接触第一个报错

yum -y install kernel

hdfs://mycluster

[root@masternode2 centos]# chmod -R 777 /opt/hadoop/zookeeper1/

[root@masternode2 centos]# chmod -R 777 /opt/hadoop/oozie/

出现下面报错原因是磁盘空间不足/opt下

 vi  /opt/cm-5.7.1/run/cloudera-scm-agent/process/19-hbase-HBASERESTSERVER/logs/stderr.log

 vi  /opt/cm-5.7.1/run/cloudera-scm-agent/process/19-hbase-HBASERESTSERVER/logs/stderr.log

安装perl perl-devel

如下报错解决方法是

把正确能启动的路径scp考到该机器,之后加所属组

[root@slavenode2 zookeeper1]# chown  zookeeper:zookeeper -R /opt/hadoop/zookeeper1/

chown hbase /opt/cm-5.7.1/run/cloudera-scm-agent/process/61-hbase-MASTER/ -R

勾选如下就可以过了

重新设置临时目录

/opt/hadoop/hive/tmp

缺少包,请在机器上安装以下包即可

yum install libxslt.x86_64

重装cdh要做如下操作,之后在重新执行以上操作。

先停止所有服务。清除数据库。

 删除Agent节点的UUID 

      # rm -rf /opt/cm-5.7.1/lib/cloudera-scm-agent/*

 清空主节点CM数据库

 mysql -uroot -h127.0.0.1 -proot123

      进入主节点的Mysql数据库,然后drop database cm;

 在主节点上重新初始化CM数据库

/opt/cm-5.7.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hmasternode1 -uroot -proot123 --scm-host masternode1 scm scm scm


 

以下是参考文档

http://www.jianshu.com/p/57179e03795f

http://www.cnblogs.com/zhanggl/p/5053716.html

查看zk状态语句

 /opt/cloudera/parcels/

Hive还是Hue启动不起来提示ImportError: libxslt.so.1 ... 其实真正的错是缺少libxml2. 但是用yum install libxml2并不能解决的要用yum install libxml2-python

  10.2 Hue起不来还有一个可能是没有装libxslt, 请用yum install libxslt.x86_64

  10.3 HDFS或是别的经常会有启动错误不用一直停在那个安装服务界面你可以进入http://n1:7180/home, Hosts, 然后一个个把节点的role启动起来

猜你喜欢

转载自blog.csdn.net/haoxiaoyan/article/details/53023616