基于ubuntu 16.04搭建CDH环境

准备过程

1. 环境:

Ubuntu16.04 desktop x 5 台
ip和主机名:
192.168.1.83 master
192.168.1.81 slave1
192.168.1.82 slave2
192.168.1.84 slave3
192.168.1.88 slave4
搭建过程使用普通用户hadoop(若为root用户,所有指令去掉sudo即可)。

2. 要下载的安装包:

下载地址:http://archive.cloudera.com/cm5/cm/5

  1. cloudera-manager-xenial-cm5.15.0_amd64.tar.gz

注意下载与ubuntu系统版本一致的文档,16.04的代号是Xenail,14.04的代号是trusty。由于采用的系统是16.04,所以下载xenial版本的文件,否则可能会出现不兼容的问题。

下载地址:http://archive.cloudera.com/cdh5/parcels

  1. CDH-5.15.0-1.cdh5.15.0.p0.21-xenial.parcel
  2. CDH-5.15.0-1.cdh5.15.0.p0.21-xenial.parcel.sha1
  3. manifest.json

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  1. jdk-8u151-linux-x64.tar.gz

下载地址:http://archive.cloudera.com/kafka/parcels

  1. KAFKA-2.2.0-1.2.2.0.p0.68-xenial.parcel
  2. KAFKA-2.2.0-1.2.2.0.p0.68-xenial.parcel.sha1

下载地址:https://www.scala-lang.org/download

  1. scala-2.11.8.tgz

下载地址:maven仓库(https://mvnrepository.com/)

  1. mysql-connector-java-5.1.47.jar

下载地址:http://archive.cloudera.com/csds/kafka/?spm=a2c4e.11153940.blogcont603705.9.bf9350c07gHBqo

  1. KAFKA-1.2.0.jar

将所有要用到的安装包都上传到master节点的home/hadoop/package目录下。

3. 主机环境配置

3.1 修改hostname

主节点master:

sudo vim /etc/hostname

修改完主机名后重启

reboot

从节点slave1-4:

sudo vim /etc/hostnam

修改完主机名后重启

reboot

3.2 修改hosts(所有节点都要)

sudo vim /etc/hosts

添加以下内容:

192.168.1.83 master
192.168.1.81 slave1
192.168.1.82 slave2
192.168.1.84 slave3
192.168.1.88 slave4

注意:部分主机含有127.0.1.1 的地址 用#注释或删除

3.3 关闭防火墙(所有节点):

ufw disable

3.4 ssh免秘钥

cd
mkdir .ssh
cd .ssh
ssh-keygen -t rsa
ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub slave1

连续敲击回车最后输入slave1密码完成master和slave1的免密钥登录配置。
再同样的方法节点两两之间配置免秘钥。

3.5 安装jdk(所有节点)

3.5.1 将java安装包分发到其他节点(master节点)

sudo scp /home/hadoop/package/jdk-8u151-linux-x64.tar.gz hadoop@slave1:/home/hadoop/package/

注意:slave1为slave节点的主机名,分别为slave1,slave2, slave3,slave4.

以下步骤所有节点都要做。

3.5.2 创建java安装路径

cd /usr
sudo mkdir java

3.5.3 将java解压到/usr/java目录下

sudo tar -xzvf /home/hadoop/package/jdk-8u151-linux-x64.tar.gz -C /usr/java/

3.5.4修改/etc/profile文件,为java配置环境变量

sudo vim /etc/profile

添加以下内容:

#java
export JAVA_HOME=/usr/java/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

注意:/usr/java/jdk1.8.0_151是java的安装路径。
基于ubuntu 16.04搭建CDH环境_第1张图片

3.5.5 使配置生效

source /etc/profile

3.5.6 查看java是否安装成功

java -version

显示如下图表示成功安装。
在这里插入图片描述

3.6 安装scala(所有节点)

3.6.1 将scala安装包分发到其他节点(master节点)

sudo scp /home/hadoop/package/scala-2.11.8.tgz hadoop@slave1:/home/hadoop/package/

注意:slave1为slave节点的主机名,分别为slave1,slave2, slave3,slave4.

3.6.2 解压

cd /home/hadoop/package
sudo tar -zxvf scala-2.11.8.tgz -C /home/hadoop/install

3.6.3 配置环境变量

sudo vim /etc/profile

添加以下内容并保存:

export SCALA_HOME=/home/hadoop/install/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin

在这里插入图片描述

3.6.4 使配置生效

source /etc/profile

3.6.5 查看scala是否安装成功

scala -version
在这里插入图片描述

3.7 安装mysql(仅master节点)

3.7.1、下载MySQL
    到mysql网站下载相应的mysql安装包,我的mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar
3.7.2、解压

tar -xvf mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar

得到以下文件:

  libmysqlclient20_5.7.17-1ubuntu16.04_amd64.deb
  libmysqlclient-dev_5.7.17-1ubuntu16.04_amd64.deb
  libmysqld-dev_5.7.17-1ubuntu16.04_amd64.deb
  mysql-client_5.7.17-1ubuntu16.04_amd64.deb
  mysql-common_5.7.17-1ubuntu16.04_amd64.deb
  mysql-community_5.7.17-1ubuntu16.04_amd64.changes
  mysql-community-client_5.7.17-1ubuntu16.04_amd64.deb
  mysql-community-server_5.7.17-1ubuntu16.04_amd64.deb
  mysql-community-source_5.7.17-1ubuntu16.04_amd64.deb
  mysql-community-test_5.7.17-1ubuntu16.04_amd64.deb
  mysql-server_5.7.17-1ubuntu16.04_amd64.deb
  mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar
  mysql-testsuite_5.7.17-1ubuntu16.04_amd64.debsan
3.7.3、安装所需的包

首先安装基础包:

libaio1_0.3.110-2_amd64.deb
libaio-dev_0.3.110-2_amd64.deb
libmecab2_0.996-1.3_amd64.deb

依赖关系:libaio-dev_0.3.110-2_amd64.deb>> libaio1_0.3.110-2_amd64.deb>> libc6_2.23-0ubuntu3_amd64.deb>> libgcc1_6.0.1-0ubuntu1_amd64.deb>> gcc-6-base_6.0.1-0ubuntu1_amd64.deb
依次输入以下指令进行安装:

1、sudo dpkg -i mysql-common_5.7.16-1ubuntu16.04_amd64.deb
2. sudo dpkg-preconfigure mysql-community-server_5.7.16-1ubuntu16.04_amd64.deb
输入root密码 //就是你数据库的初始化密码
3、sudo dpkg -i libmysqlclient20_5.7.16-1ubuntu16.04_amd64.deb
4、sudo dpkg -i libmysqlclient-dev_5.7.16-1ubuntu16.04_amd64.deb
5、sudo dpkg -i libmysqld-dev_5.7.16-1ubuntu16.04_amd64.deb
6、sudo dpkg -i mysql-community-client_5.7.16-1ubuntu16.04_amd64.deb
【注意:安装此步前需要安装libaio1】 apt-get install libaio1
7、sudo dpkg -i mysql-client_5.7.16-1ubuntu16.04_amd64.deb
8、sudo dpkg -i mysql-common_5.7.16-1ubuntu16.04_amd64.deb
9、sudo dpkg -i mysql-community-server_5.7.16-1ubuntu16.04_amd64.deb
【注意:安装此步前需要安装libmecab2】 apt-get install libmecab2
10、sudo dpkg -i mysql-server_5.7.16-1ubuntu16.04_amd64.deb

3.7.4、安装完成,查看路径及依赖

whereis mysql

mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
3.7.5、查看版本

mysql --version
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper

3.7.6、登录

mysql -u用户名 -p密码

例如:

mysql -uroot -p123

附: 修改安装过程中的root初始密码指令

在mysql系统外,使用mysqladmin

mysqladmin -u root -p password “123456”
Enter password: 【输入原来的密码】

3.7.7、现在设置mysql允许远程访问,首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

注释掉bind-address = 127.0.0.1

3.7.8、执行授权命令:

grant all on . to root@’%’ identified by ‘你的密码’ with grant option;
flush privileges;

3.7.9、然后执行quit命令退出mysql服务,执行如下命令重启mysql:

sudo service mysql restart

必须重启成功,否则3306不能访问。检测是否重启成功:
查看3306端口是否打开

在这里插入图片描述
注意:红色框框表示3306绑定的ip地址–>未修改前为:127.0.0.1:3306–>即mysql默认绑定localhost,远程访问不了

CM配置安装过程

server节点: master
Agent节点:master, slave1, slave2, slave3, slave4

1. 创建目录(所有节点)

mkdir -p /opt/cloudera #创建cloudera文件夹
mkdir -p /opt/cloudera-manager #创建cloudera-manager文件夹
mkdir -p /opt/cloudera/parcels #创建parcel文件夹
mkdir -p /opt/cloudera/parcel-repo #创建parcel-repo文件夹

2. 配置数据库(server节点)

2.1 将master节点的mysql-connector-java-5.1.47.jar驱动放入/usr/share/java 目录下,并改名为mysql-connector-java.jar

cd /home/hadoop/package
sudo cp mysql-connector-java-5.1.47.jar /usr/share/java/
cd /usr/share/java/
mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar

2.2 创建以下database

先进入到mysql数据库:

mysql -uroot -p123

代表用户名为root,123是密码。
以下指令在mysql中执行:
##为amon创建用户

create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO ‘amon’@’%’ IDENTIFIED BY ‘amon’;

##hive

create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO ‘hive’@’%’ IDENTIFIED BY ‘hive’;

##oozie

create database oozie DEFAULT CHARACTER SET utf8;
grant all on oozie.* TO ‘oozie’@’%’ IDENTIFIED BY ‘oozie’;

##oozie

create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO ‘hue’@’%’ IDENTIFIED BY ‘hue’;

授权指令:

grant 权限 on 数据库对象 to 用户@主机

2.3 创建scm用户并赋权

mysql命令行下执行:

grant all on . to ‘scm’@’%’ identified by ‘scm’ with grant option;

用户名和密码都是scm。
‘%’ :所有情况都能访问;
‘localhost’ :本机才能访问;
‘192.168.1.1’:指定IP才能访问;

3. 安装CM

将master节点的CM安装包分发到其他节点。(master节点执行)

sudo scp /home/hadoop/package/cloudera-manager-xenial-cm5.15.0_amd64.tar.gz hadoop@slave1:/home/hadoop/package/

将CM安装包解压到/opt/cloudera-manager目录下(所有节点)

sudo tar -xzvf /home/hadoop/package/cloudera-manager-xenial-cm5.15.0_amd64.tar.gz -C /opt/cloudera-manager/

4. 修改/opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini文件(所有节点)

cd /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/
sudo vim config.ini

将server_host的值改为server节点的主机名,这里是master。
在这里插入图片描述

5. 创建cloudera-scm用户(所有节点)

sudo useradd --system --home=/opt/cloudera-manager/cm-5.15.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm

6. 通过scm_prepare_database.sh 创建scm数据库及数据库用户(server节点)

sudo /opt/cloudera-manager/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -p123 --scm-host master scm scm scm

说明:
脚本用于创建和配置CMS需要的数据库。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
-uroot:root身份运行mysql。-proot:mysql的root密码是123。
–scm-host master:CMS的主机,和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。
在这里插入图片描述

7. 更改文件夹所有用户与用户组(所有节点):

sudo chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager

8. 将parcel文件放入parcel仓库(server节点)

sudo cp /home/hadoop/package/CDH-5.15.0-1.cdh5.15.0.p0.21-xenial.parcel /opt/cloudera/parcel-repo/
sudo cp /home/hadoop/package/CDH-5.15.0-1.cdh5.15.0.p0.21-xenial.parcel.sha1 /opt/cloudera/parcel-repo/
sudo cp /home/hadoop/package/KAFKA-2.2.0-1.2.2.0.p0.68-xenial.parcel.sha1 /opt/cloudera/parcel-repo/
sudo cp /home/hadoop/package/KAFKA-2.2.0-1.2.2.0.p0.68-xenial.parcel /opt/cloudera/parcel-repo/
sudo cp /home/hadoop/package/manifest.json /opt/cloudera/parcel-repo/

并将.sha1文件改为.sha文件。

cd /opt/cloudera/parcel-repo
sudo mv CDH-5.15.0-1.cdh5.15.0.p0.21-xenial.parcel.sha1 CDH-5.15.0-1.cdh5.15.0.p0.21-xenial.parcel.sha
sudo mv KAFKA-2.2.0-1.2.2.0.p0.68-xenial.parcel.sha1 KAFKA-2.2.0-1.2.2.0.p0.68-xenial.parcel.sha

9. 启动 CM Server&Agent 服务

server节点:

sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server start
sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start

查看是否启动:

sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server status
sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent status

agent节点:

sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start

查看是否启动:

sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent status

附关闭:
server节点:

sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server stop
sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent stop

agent节点:

sudo /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent stop

10. 修改Swappiness值(所有节点)

sysctl -w vm.swappiness=10

同时将配置加入到/etc/sysctl.conf文件中

sudo vim /etc/sysctl.conf

加入以下内容:

vm.swappiness=10

基于ubuntu 16.04搭建CDH环境_第2张图片

你可能感兴趣的:(CDH环境搭建,CDH,Ubuntu16.04,Hadoop环境)