Hadoop 集群搭建

更多资料请查看我的博客笔记爱白菜鱼 www.ibaicaiyu.com

搭建过那么多次hadoop也没好好总结下,这次公司发了电脑,跑3台虚拟机完全不虚,所以想在自己的机器上搭建hadoop,学习大数据做相关实验,为了避免以后再重复学习,找资料花费大量时间,做笔记如下
一切内容均摘自cloudera官网

0、参考资料

官方参考文档:http://www.cloudera.com/

官方安装文档:https://www.cloudera.com/documentation/enterprise/latest/topics/install_cm_cdh.html

官方版本和下载信息https://www.cloudera.com/documentation/enterprise/release-notes/topics/rg_vd.html

1、离线下载资料:

CM:

cloudera-manager-daemons-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm
cloudera-manager-server-5.15.0-1.cm5150.p0.62.el7.x86_64.rpm

下载地址 https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.0/RPMS/x86_64/4/

CDH:

2、安装之前的准备:

配置网络名称
  1. 将主机设置为唯一名称

    sudo hostnamectl set-hostname ccc.example.com
    
  2. 编辑 /etc/hosts文件使用群集中每个主机的IP地址和完全限定的域名(FQDN)。您也可以添加非限定名称以添加非限定名称

    192.168.221.10 hadoop1.teradata.com hadoop1
    192.168.221.11 hadoop2.teradata.com hadoop2
    192.168.221.12 hadoop3.teradata.com hadoop3 
    
  3. 编辑host的hostname/etc/sysconfig/network用FQDN:

    HOSTNAME=hadoop1.teradata.com
    
  4. 验证host是不是唯一的标识对于network

    • uname -a(验证输出是不是和hostname相同)
    • ifconfig(验证IP地址)
    • host -v -t A $(hostname) (host找不到,请执行yum install bind-utils安装,验证输出是不是符合hostname命令,IP地址是不是和ifconfig命令中的eth0,bond0一样)

3、权限设置

我们使用root用户的最高权限,但是不同主机之间不要配置无密码登录,步骤如下:
只配置主节点到子节点的无密登录就行
先删除所有密钥 rm -rf ~/.ssh/*

    # ssh-keygen -t rsa
    # ssh-copy-id hadoop1
    # ssh-copy-id hadoop2
    # ssh-copy-id hadoop3

4、JDK安装

官网下载jdkjdk-8u171-linux-x64.tar.gz
安装在/usr/java目录下

    tar xvfz jdk-8u171-linux-x64.tar.gz  -C /usr/java/

5、其他事项

  • 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld

  • SELINUX关闭

    setenforce 0
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
    iptables --flush
    reboot  #重启生效
    
  • 设置文件打开数量及最大进程数

    cp /etc/security/limits.conf /etc/security/limits.conf.bak
    echo "* soft nproc 32000" >>/etc/security/limits.conf
    echo "* hard nproc 32000" >>/etc/security/limits.conf
    echo "* soft nofile 65535" >>/etc/security/limits.conf
    echo "* hard nofile 65535" >>/etc/security/limits.conf
    
  • 同步时间
    安装ntp服务

    yum -y install ntp  
    

启动ntp服务,并设置开机自启

    systemctl start ntpd
    systemctl enable ntpd  

6、配置Cloudera Manager 管理库

  1. 在主节点中配置仓库,下载Download the cloudera-manager.repo文件

    wget https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo -P /etc/yum.repos.d/
    
  2. 导入存储库签名GPG密钥:

    rpm --import https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/RPM-GPG-KEY-cloudera
    
  3. 把本地安装包(parcel)放入指定目录:

    cp CDH-5.15.0-1.cdh5.15.0.p0.4-el7.parcel /opt/cloudera/parcel-repo/
    cp CDH-5.11.1-1.cdh5.15.0.p0.4-el7.parcel.sha1 /opt/cloudera/parcel-repo/
    mv /opt/cloudera/parcel-repo/CDH-5.15.0-1.cdh5.11.1.p0.4-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.0-1.cdh5.11.1.p0.4-el7.parcel.sha
    

7、安装Cloudera Manager服务

  1. 手动安装:

    sudo yum --nogpgcheck localinstall cloudera-manager-daemons  -  * .rpm 
    sudo yum --nogpgcheck localinstall cloudera-manager-server  -  * .rpm
    
  2. 网络安装,前提是配置了yum cloudera repo

    sudo yum install cloudera-manager-daemons cloudera-manager-server
    

8、安装和配置数据库

我们这次使用PostgreSQL试试,抛弃Mysql数据库

  1. 安装PostgreSQL数据库:

    sudo yum install postgresql-server
    
  2. 安装python-pip包(hue依赖她):

    yum -y install epel-release
    sudo yum install python-pip
    
  3. 安装psycopg2使用pip:

    sudo pip install psycopg2
    
  4. 链接psycopg2目录为Hue Python环境

    sudo ln -s /usr/lib64/python2.7/site-packages/psycopg2 /opt/cloudera/parcels/CDH/lib/hue/build/env/lib/python2.7/site-packages/psycopg2 
    

配置和初始化PostgreSQL数据库

  1. 确保LC_ALL被设定为en_US.UTF-8并按如下方式初始化数据库:

    echo 'LC_ALL="en_US.UTF-8"' >> /etc/locale.conf
    sudo su -l postgres -c "postgresql-setup initdb"
    
  2. 开启MD5验证,编辑pg_hba.conf文件,通常在/var/lib/pgsql/data or /etc/postgresql//main目录下,添加如下一行(在host all all 127.0.0.1/32 ident之前)

    host all all 127.0.0.1/32 md5
    

    但是我实际安装后面报错,这里改成:

    host all all 0.0.0.0/0 md5  
    
  3. 因群集大小和资源而异,更新/var/lib/pgsql/data/postgresql.conf 或者 /var/lib/postgresql/data/postgresql.conf文件

    shared_buffers - 256MB
    wal_buffers - 8MB
    checkpoint_segments - 16
    checkpoint_completion_target - 0.9

  4. 配置PostgreSQL 数据库开机启动

    sudo systemctl enable postgresql
    
  5. 配置postgresql.conf文件
    vi /var/lib/pgsql/data/postgresql.con·修改该文件的内容如下

    listen_addresses = '*'
    
  6. 重启数据库

    sudo systemctl restart postgresql
    

9、 创建数据库为Cloudera software

记住自己配置的数据库名,数据库名,密码,要为以下服务配置数据库

TIM截图20180704152102

使用命令如下:

连接数据库

    sudo -u postgres psql  

创建数据库用如上图中的数据

    CREATE ROLE <user> LOGIN PASSWORD '<password>'; 
    CREATE DATABASE <database> OWNER <user> ENCODING 'UTF8';  

整理内容如下:
- 创建角色

    CREATE ROLE     scm LOGIN PASSWORD 'scm';
    CREATE ROLE     amon LOGIN PASSWORD 'amon';
    CREATE ROLE     rman LOGIN PASSWORD 'rman';
    CREATE ROLE     hue LOGIN PASSWORD 'hue';
    CREATE ROLE     metastore LOGIN PASSWORD 'hive';
    CREATE ROLE     sentry LOGIN PASSWORD 'sentry';
    CREATE ROLE     nav LOGIN PASSWORD 'nav';
    CREATE ROLE     navms LOGIN PASSWORD 'navms';
    CREATE ROLE     oozie LOGIN PASSWORD 'oozie';  
  • 创建数据库

    CREATE DATABASE scm OWNER scm ENCODING 'UTF8';
    CREATE DATABASE     amon     OWNER  amon     ENCODING 'UTF8';
    CREATE DATABASE     rman     OWNER  rman     ENCODING 'UTF8';
    CREATE DATABASE     hue  OWNER  hue  ENCODING 'UTF8';
    CREATE DATABASE     metastore    OWNER  metastore    ENCODING 'UTF8';
    CREATE DATABASE     sentry   OWNER  sentry   ENCODING 'UTF8';
    CREATE DATABASE     nav  OWNER  nav  ENCODING 'UTF8';
    CREATE DATABASE     navms    OWNER  navms    ENCODING 'UTF8';
    CREATE DATABASE     oozie    OWNER  oozie    ENCODING 'UTF8';
    

对于PostgreSQL 8.4及更高版本,请设置 standard_conforming_strings =off 对于Hive Metastore和Oozie数据库:

    ALTER DATABASE <database> SET standard_conforming_strings = off;

10、 设置Cloudera Manager数据库

语法:

    /usr/share/cmf/schema/scm_prepare_database.sh [options] <databaseType>  <databaseName>  <databaseUser>  <password>

执行:

    sudo /usr/share/cmf/schema/scm_prepare_database.sh postgresql  scm  scm

如果一下文件存在请删除:

    sudo rm /etc/cloudera-scm-server/db.mgmt.properties

11、安装CDH

  1. 启动Cloudera Manager Server

    sudo systemctl start cloudera-scm-server
    
  2. 等待几分钟让服务起来,也可用如下命令查看服务启动进程

    sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
    
  3. 服务起来后再浏览器中输入http://<server_host>:7180,看到登录界面,用户名:admin,密码:admin

  4. 一直安装就行,中间输入三个集群(hadoop1,hadoop2,hadoop3)

12. 安装hadoop生态软件

  1. 欢迎来到Cloudera Manager
    TIM截图20180709092446
    试用60天
    TIM截图20180709092716

TIM截图20180709092825

TIM截图20180709092840

TIM截图20180709093224

TIM截图20180709105914

TIM截图20180709105945

安装完成后就可以添加我们所需要的服务了

TIM截图20180709110208

TIM截图20180712094530
注意:内存紧张可以把cloudera-manager服务关了或者不安装,只安装自己所需要的组件即可!(我为节点分配了4 3 3 内存,安装了hadoop核心服务,因为内存不足服务起来后又挂掉,建议把不用的服务关了,用的时候开启对应的服务就行,感觉出现的所有警告都是磁盘,内存分配不足的原因,抑制下就好了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值