zoukankan      html  css  js  c++  java
  • Ubuntu 16.04上搭建CDH5.16.1集群

    本文参考自:《Ubuntu16.04上搭建CDH5.14集群

     

     1.准备三台(CDH默认配置为三台)安装Ubuntu 16.04.4 LTS系统的服务器,假设ip地址分布为

    192.168.100.19

    192.168.100.20

    192.168.100.21

    (如果是虚拟机,建议内存配置为8G或以上,否则会导致各种启动运行失败。)

     

    2.所有的操作都在root下进行,所以首先需要设置ssh可以使用root登录(如果已经是root登录则跳过)

    ①设置root的登录密码

    sudo passwd root

    ②切换到root用户

    sudo su root

    ③设置登录账户可以使用root

    vi /etc/ssh/sshd_config
    #PermitRootLogin prohibit-password #屏蔽这一行
    PermitRootLogin yes #增加这一行

    ④更新软件列表并检查是否联网状态

    apt-get update

     

    3.关闭防火墙

    ufw disable

     

    4.设置三台机器的hostname和hosts

    ①设置hostname:

    vi /etc/hostname

    192.168.100.19对应设置为hadoop-master

    192.168.100.20对应设置为hadoop-slave1

    192.168.100.21对应设置为hadoop-slave2

    ②修改hosts

    vi /etc/hosts
    127.0.0.1       localhost
    #127.0.1.1      test1 #屏蔽这一行
    
    #新增下面三行
    192.168.100.19 hadoop-master
    192.168.100.20 hadoop-slave1
    192.168.100.21 hadoop-slave2

    ③使用ping命令,查看以上设置是否正确

    ping hadoop-master
    ping hadoop-slave1
    ping hadoop-slave2

    重启后用root登录 

     

    5.让三台服务器之间互相可以使用root无需输入密码进行ssh登录。

    ①生成公钥(不要设置密码)

    ssh-keygen -t rsa

     截图如下:

    ②将本机的公钥复制到另外两台服务器上。(过程需要输入目标服务器的root登录密码)

    ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop-master #在slave1和slave2上执行
    ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop-slave1 #在master和slave2上执行
    ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop-slave2  #在master和slave1上执行

    ③测试是否成功

    ssh hadoop-master #无密码远程登录hadoop-master,使用exit退出
    ssh hadoop-slave1 #无密码远程登录hadoop-slave1,使用exit退出
    ssh hadoop-slave2 #无密码远程登录hadoop-slave2,使用exit退出

    ④如果出现下面的报错

    ssh:connect to host hadoop-slave1 port 22: Connection refused

    ssh: connect to host hadoop-slave1 port 22: Connection timed out

    检查root的密码是否正确,可以使用ssh localhost检查一下是否可以登录到本机,如果不行则证明root密码有问题,转到上面第2个步骤重新设置root密码。

    检查/etc/hosts文件中ip和hostname是否正确

    检查防火墙是否关闭

     

    6.安装JAVA运行环境

    ①正常显示版本号则跳过下面步骤

    java -version

    ②如果显示如下,则表示还没有安装JAVA

     ③具体JDK的安装可以参考

    《大数据新手之路一:安装JDK》

     

    7.安装JAVA的MySQL软件包

    apt-get install libmysql-java

     

    8.只在hadoop-master中安装MySQL(过程需要输入MySQL的登录密码)

    ①安装MySQL

    apt-get install mysql-server mysql-client

    ②测试是否安装成功

    mysql -uroot -p

    ③创建对应的库以及用户

    create database hive DEFAULT CHARSET utf8;
    create database rman DEFAULT CHARSET utf8;
    create database oozie DEFAULT CHARSET utf8;
    create database hue DEFAULT CHARSET utf8;
    
    grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '123456';
    grant all on rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
    grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
    grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '123456';

    ④成功后退出MySQL

    quit

     

    9.只在hadoop-master下载CDH相关文件(由于版本的更新,版本号会不断递增),并进行设置

    ①在浏览器中输入 http://archive.cloudera.com/cm5/cm/5/ 查看到ubuntu对应最新版本

    ②在浏览器中输入 http://archive.cloudera.com/cdh5/parcels/latest 查看到ubuntu对应最新版本

    ③将上面的四个文件都下载下来

    wget -c http://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.16.1_amd64.tar.gz
    wget -c http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel
    wget -c http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha1
    wget -c http://archive.cloudera.com/cdh5/parcels/latest/manifest.json

    ④将CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha1文件重命名为CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha

    mv CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha1 CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha

    ⑤在/opt中建立对应的文件夹结构(cm-5.16.1为当前版本号)

    | --/opt
          |--/cloudera
                     |--/parcels
                     |--/parcel-repo
          |--/cm-5.16.1
    cd /opt
    mkdir cm-5.16.1
    mkdir cloudera
    cd cloudera
    mkdir parcels
    mkdir parcel-repo

    ⑥将CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel、CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha和manifest.json三个文件拷贝到/opt/cloudera/parcel-repo中

    cp CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel CDH-5.16.1-1.cdh5.16.1.p0.3-xenial.parcel.sha manifest.json /opt/cloudera/parcel-repo

    ⑦解压cloudera-manager-xenial-cm5.16.1_amd64.tar.gz到/opt中

    tar -zxf cloudera-manager-xenial-cm5.16.1_amd64.tar.gz -C /opt

    ⑧链接mysql连接库到cm

    ln -s /usr/share/java/mysql-connector-java.jar /opt/cm-5.16.1/share/cmf/lib/mysql-connector-java.jar

    ⑨配置cm5的数据库

    cd /opt/cm-5.16.1/share/cmf/schema
    ./scm_prepare_database.sh mysql -uroot -p你的MySQL密码 scm scm scm --force

    ⑩修改配置文件

    vi /opt/cm-5.16.1/etc/cloudera-scm-agent/config.ini
    # Hostname of the CM server.
    server_host=hadoop-master #修改为主机名

    ⑪将cm-5.16.1复制到另外两个节点

    scp -r /opt/cm-5.16.1 hadoop-slave1:/opt/
    scp -r /opt/cm-5.16.1 hadoop-slave2:/opt/

     

    10.在所有节点启动ServerAgent(务必先执行后面所有红色操作重启系统!!!再启动进程,避免出现错误再处理的反复折腾)

    ①启动进程

    cd /opt/cm-5.16.1/etc/init.d
    ./cloudera-scm-server start
    ./cloudera-scm-agent start

    ②如果报错 install: invalid user ‘cloudera-scm’,则增加一个用户

    useradd --system --home=/opt/cm-5.16.1/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

    ③如果还报错 Starting cloudera-scm-server:  * Couldn't start cloudera-scm-server

    则看log详细报错信息进行对应处理

    cd /opt/cm-5.16.1/log/cloudera-scm-server
    cat cloudera-scm-server.out #server报错
    cd /opt/cm-5.16.1/log/cloudera-scm-agen
    cat cloudera-scm-agent.out #agent报错

    比如agent的错误提示 /usr/bin/env: ‘python2.7’: No such file or directory 表示需要安装python2.7

    apt-get install python2.7

     

    11.稍等一下(时间比较长,耐心等待),在浏览器中输入 http://192.168.100.19:7180/cmf/login,并输入用户名和密码(默认都是admin)

     

     

    12.同意End User License Terms and Conditions

     

    13.选择试用版

     

    14.感谢选择CM和CDH

     

    15.选择所有主机安装CDH集群

     

    16.选择集群安装的方法和版本,其它选择默认的None

     

     17.等待三个节点安装完毕(一开始会是红色,慢慢安装完成后变绿色)

     

    18.监测集群中三个节点的状态

     

    这里需要设置vm.swappiness=10(设置完成后需要重启才生效,可以进行后面处理后再进行重启)

    vi /etc/sysctl.conf
    vm.swappiness=10 #在文件最后增加一行
    cat /proc/sys/vm/swappiness #查看当前值

     

    19.根据需要安装对应的组件或者全部安装

     

     20.按需选择DataNode的节点和其它配置

     

    21.依次输入表名、用户名和密码(和8③中保持一致),测试连接一切正常。

    ①错误1 : No database server found running on host hadoop-master.

    解决办法:将hadoop-master修改为localhost

    ②错误2:Unexpected error.Unable to verify database connection.

    解决办法:进入log里面查找原因

    cd /opt/cm-5.16.1/log/cloudera-scm-server
    tail cloudera-scm-server.log -n 50

    ③找到第一个Error:缺少了对应的mysqlclient库

    Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory

    对应的解决办法:

    apt-cache search libmysql
    apt-get install libmysql++-dev

    ④找到第二个Error:缺少对应的python库

    Error: libxslt.so.1: cannot open shared object file: No such file or directory

    对应的解决办法:缺少python的库

    apt-get install python-libxslt1

     

    22.集群配置的复核界面,保持默认值或者根据具体需求进行配置

     

    23.开始运行集群配置

    报错:Error: JAVA_HOME is not set and could not be found.

    解决办法:所有三个节点都重新设置JAVA的快链位置(下面的例子将/usr/local/java快捷方式到/usr/java)

    mkdir /usr/java
    ln -s /usr/local/java /usr/java/default

     

    24.恭喜完成!

    25.如果有安装了Hive和Hue服务的话,可以使用http://192.168.100.19:8888进行访问。

    以上。

  • 相关阅读:
    使用junit进行单元测试
    初学软件工程.
    初学软件工程
    寻医问药软件
    使用JUnit工具进行单元测试
    软件工程问题
    JUnit进行单元测试
    软件工程学习问题
    单元测试
    软件工程
  • 原文地址:https://www.cnblogs.com/chevin/p/9929140.html
Copyright © 2011-2022 走看看