美文网首页我爱编程
CentOS6.5安装CDH5.12.0和Kudu1.4

CentOS6.5安装CDH5.12.0和Kudu1.4

作者: 留恋红尘 | 来源:发表于2017-08-04 22:42 被阅读0次

    1 概述

    本文档描述CENTOS6.5操作系统部署CDH企业版的过程。Cloudera企业级数据中心的安装主要分为4个步骤:

    1.集群服务器配置,包括安装操作系统、关闭防火墙、同步服务器时钟等;

    2.外部数据库安装

    3.安装Cloudera管理器;

    4.安装CDH集群;

    这篇文档将着重介绍Cloudera管理器与CDH的安装,并基于以下假设:

    1.操作系统版本:CENTOS6.5

    2.MySQL数据库版本为5.1.73

    3.CM版本:CM 5.12.0

    4.CDH版本:CDH 5.12.0

    5.Kudu版本:1.4

    6.采用root对集群进行部署

    7.您已经下载CDH和CM的安装包

    2 前期准备

    1.集群中各个节点之间能互相通信使用静态IP地址。IP地址和主机名通过/etc/hosts配置,主机名/etc/HOSTNAME进行配置。

    以cm节点为例:

    /etc/hosts文件如下:

    172.31.8.113 cdh1

    172.31.14.96 cdh2

    172.31.9.234 cdh3

    172.31.2.34 cdh4

    2.配置ntp时间同步,将172.31.8.113机器作为本地ntp服务器,其他3台机器与其保持同步,配置片段:

    172.31.8.113:

    $> sudo vim

    /etc/ntp.conf

    server  127.127.1.0             # local clock (LCL)

    fudge  127.127.1.0 stratum 10 # LCL is  unsynchronized

    其他机器:

    $> sudo vim

    /etc/ntp.conf

    # server

    127.127.1.0

    # local clock (LCL)

    # fudge   127.127.1.0 stratum 10 # LCL is unsynchronized

    server 172.31.8.113 iburst

    重启所有机器的ntp服务:

    service ntpd restart

    验证始终同步:ntpq -p

    3.关闭防火墙:

    在每台机器上运行下列命令

    service iptables stop

    chkconfig iptables off

    vim /etc/selinux/config改为SELINUX=disabled

    检查所有机器:以cdh1示例

    安装httpd服务:

    [root@cdh1 ~]# yum -y  install httpd

    4.安装mysql。

    [root@cdh1

    ~]# yum -y install mysql

    [root@cdh1  ~]# yum -y install mysql-server

    启动mysql并配置mysql

    [root@cdh1 ~]#  service mysqld start

    [root@cdh1 ~]#  /usr/bin/mysql_secure_installation

    NOTE: RUNNING ALL  PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL

    SERVERS IN PRODUCTION USE!PLEASE READ EACH STEP CAREFULLY!

    In order to log into  MySQL to secure it, we'll need the current

    password for the root  user.If you've just installed MySQL,  and

    you haven't set the  root password yet, the password will be blank,

    so you should just  press enter here.

    Enter current  password for root (enter for none):

    OK, successfully used  password, moving on...

    Setting the root  password ensures that nobody can log into the MySQL

    root user without the  proper authorisation.

    Set root password?  [Y/n] Y

    New password:

    Re-enter new  password:

    Password updated  successfully!

    Reloading privilege  tables..

    ... Success!

    By default, a MySQL  installation has an anonymous user, allowing anyone

    to log into MySQL  without having to have a user account created for

    them.This is intended only for testing, and to  make the installation

    go a bit  smoother.You should remove them  before moving into a

    production  environment.

    Remove anonymous  users? [Y/n] Y

    ... Success!

    Normally, root should  only be allowed to connect from 'localhost'.This

    ensures that someone  cannot guess at the root password from the network.

    Disallow root login  remotely? [Y/n] n

    ... skipping.

    By default, MySQL  comes with a database named 'test' that anyone can

    access.This is also intended only for testing, and  should be removed

    before moving into a  production environment.

    Remove test database  and access to it? [Y/n] Y

    - Dropping test database...

    ... Success!

    - Removing privileges on test database...

    ... Success!

    Reloading the  privilege tables will ensure that all changes made so far

    will take effect  immediately.

    Reload privilege  tables now? [Y/n] Y

    ... Success!

    Cleaning up...

    All done!If you've completed all of the above steps,  your MySQL

    installation should  now be secure.

    Thanks for using  MySQL!

    建立CM和Hive需要的表

    [root@cdh1  ~]# mysql -u root -p

    Enter  password:

    Welcome  to the MySQL monitor.Commands end  with ; or \g.

    Your  MySQL connection id is 8

    create  database metastore default character set utf8;

    CREATE  USER 'hive'@'%' IDENTIFIED BY 'password';

    GRANT ALL  PRIVILEGES ON metastore. * TO 'hive'@'%';

    FLUSH

    PRIVILEGES;

    create  database cm default character set utf8;

    CREATE  USER 'cm'@'%' IDENTIFIED BY 'password';

    GRANT ALL  PRIVILEGES ON cm. * TO 'cm'@'%';

    FLUSH  PRIVILEGES;

    create  database am default character set utf8;

    CREATE  USER 'am'@'%' IDENTIFIED BY 'password';

    GRANT ALL  PRIVILEGES ON am. * TO 'am'@'%';

    FLUSH  PRIVILEGES;

    create  database rm default character set utf8;

    CREATE  USER 'rm'@'%' IDENTIFIED BY 'password';

    GRANT ALL  PRIVILEGES ON rm. * TO 'rm'@'%';

    FLUSH

    PRIVILEGES;

    安装jdbc驱动:

    [root@cdh1 ~]# mv  mysql-connector-java-5.1.34.jar /usr/share/java/

    [root@cdh1 ~]# ln -s  mysql-connector-java-5.1.34.jar mysql-connector-java.jar

    dctest01:/usr/share/java  # ll

    总用量944

    -rwxr-xr-x 1 root  root 9603723月16 15:58 mysql-connector-java-5.1.34.jar

    lrwxrwxrwx 1 root  root313月16 16:15 mysql-connector-java.jar ->  mysql-connector-java-5.1.34.jar

    3 cloudera manager 安装

    配置本地repo源,将Cloudera Manager安装需要的7个rpm包下载到本地,放在同一目录,执行createrepo命令生成rpm元数据:

    [root@cdh1 cm5.12.0]#  ll

    total 958396

    -rw-r--r-- 1 root  root9674128 Jul7 04:35  cloudera-manager-agent-5.12.0-1.cm5120.p0.120.el6.x86_64.rpm

    -rw-r--r-- 1 root  root 726564488 Jul7 04:35  cloudera-manager-daemons-5.12.0-1.cm5120.p0.120.el6.x86_64.rpm

    -rw-r--r-- 1 root  root8704 Jul7 04:35  cloudera-manager-server-5.12.0-1.cm5120.p0.120.el6.x86_64.rpm

    -rw-r--r-- 1 root  root10608 Jul7 04:36  cloudera-manager-server-db-2-5.12.0-1.cm5120.p0.120.el6.x86_64.rpm

    -rw-r--r-- 1 root  root31880440 Jul7 04:36  enterprise-debuginfo-5.12.0-1.cm5120.p0.120.el6.x86_64.rpm

    -rw-r--r-- 1 root  root71204325 Jul7 04:36 jdk-6u31-linux-amd64.rpm

    -rw-r--r-- 1 root  root 142039186 Jul7 04:35  oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

    [root@cdh1 cm5.12.0]#  createrepo .

    Spawning worker 0  with 7 pkgs

    Workers Finished

    Gathering worker  results

    Saving Primary  metadata

    Saving file lists  metadata

    Saving other metadata

    Generating sqlite DBs

    Sqlite DBs complete

    配置Web服务器,比如apache2、nginx等,将上述目录移动到Web服务器数据目录,这里为/var/www/html,使得用户可以通过HTTP访问这些rpm包。

    验证安装JDK

    yum -y install oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

    通过yum安装Cloudera Manager Server

    yum -y install  cloudera-manager-server-5.12.0-1.cm5120.p0.120.el6.x86_64.rpm

    初始化数据库

    sudo /usr/share/cmf/schema/scm_prepare_database.sh  mysql cm cm password

    JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera

    Verifying that we can  write to /etc/cloudera-scm-server

    Creating SCM configuration  file in /etc/cloudera-scm-server

    Executing:/usr/java/jdk1.7.0_67-cloudera/bin/java -cp  /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/schema/../lib/*  com.cloudera.enterprise.dbutil.DbCommandExecutor  /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.

    [main]  DbCommandExecutorINFOSuccessfully connected to  database.

    All done, your SCM  database is configured correctly!

    启动Cloudera Manager Server

    [root@cdh1 init.d]#  service cloudera-scm-server start

    这个服务启动比较慢,稍微等几分钟,等可以看到7180端口,就可以了

    [root@cdh1  cm5.12]# netstat -lnpt | grep 7180

    tcp00 0.0.0.0:71800.0.0.0:*LISTEN1524/java

    通过http://54.169.251.123:7180/cmf/login访问CM

    4 CDH安装

    1.admin/admin登录到CM。

    2.点击继续

    3.输入主机ip或者名称,点击搜索找到主机后点击继续

    4.点击“更多选项”

    5.点击“-”删除其他所有地址,输入http://54.169.251.123/cdh5.12/和http://54.169.251.123/kudu1.4/点击确定

    6.输入cm的http地址

    7.安装jdk

    8.输入root密码

    9.开始安装cloudera manager相关到各台节点

    10.开始安装cdh和Kudu到各台节点

    11.主机检查,点击继续

    12.选择需要安装的服务

    13.分配角色

    14.测试数据库连接,点击继续

    15.设置目录

    16.等待各个服务启动

    17.安装成功

    5 Kudu配置

    在CM界面添加服务,选择Kudu

    分配主机角色

    配置相应的目录

    点击继续启动Kudu服务

    添加Kudu服务成功,安装完毕

    6 快速组件服务验证

    1.MapReduce验证

    #增加用户组

    [root]$ groupadd  cloudera-dev

    #增加用户

    [root]$ useradd  -g cloudera-dev cloudera-dev

    #查看用户组cloudera-dev中的所有用户

    [root]$ id -g cloudera-dev

    #查看用户cloudera-dev所属的所有组

    [root]$ id  cloudera-dev

    # Hadoop创建相应的用户

    [root]$ sudo -u  hdfs hadoop fs -mkdir /user/cloudera-dev

    [root]$ sudo -u  hdfs hadoop fs -chown cloudera-dev:cloudera-dev /user/cloudera-dev

    #运行Hadoop wordcount示例程序

    [root]$ sudo su  cloudera-dev

    [cloudera-dev]$ echo  "Hello World Bye World" > file0

    [cloudera-dev]$ echo  "Hello Hadoop Goodbye Hadoop" > file1

    [cloudera-dev]$  hadoop fs -mkdir -p /user/cloudera-dev/wordcount/input

    [cloudera-dev]$ hadoop fs  -put file* /user/cloudera-dev/wordcount/input

    [cloudera-dev]$  hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount  wordcount/input wordcount/output

    [cloudera-dev]$  hadoop fs -getmerge wordcount/output output.txt

    [cloudera-dev]$ cat  output.txt

    2.Hive验证

    [root]$ sudo su  cloudera-dev

    [cloudera-dev]$ echo  "Alex,Cloudera" > file2

    [cloudera-dev]$  hadoop fs -mkdir -p hive/input

    [cloudera-dev]$  hadoop fs -put file2 hive/input

    [cloudera-dev]$ cat  > test.hql

    create external table  test (

    name string,

    company string

    )

    row format delimited

    fields  terminated by ','

    location  '/user/cloudera-dev/hive/input'

    [cloudera-dev]$ hive  -f test.hql

    [cloudera-dev]$ hive  -e "select * from test" 2> /dev/null

    [cloudera-dev]$ hive -e "select  count(*) from test" 2> /dev/null

    [cloudera-dev]$ hive -e "drop  table test"

    [cloudera-dev]$ exit

    3.HBase验证

    [cloudera-dev]$   cat > test.hbase

    create 'record',  {NAME => 'user'}

    put 'record', 'Alex',  'user:company', 'Cloudera'

    get 'record', 'Alex'

    exit

    [cloudera-dev]$   hbase shell test.hbase

    [cloudera-dev]$  hbase shell

    hbase(main):001:0>  disable 'record'

    0 row(s) in 2.6130  seconds

    hbase(main):002:0>  drop 'record'

    0 row(s) in 1.2880  seconds

    #运行Hive Over HBase测试(Read & Write)

    [cloudera-dev]$   cat test.hbase

    create 'record',  {NAME => 'user'}

    put 'record', 'Alex',  'user:company', 'Cloudera'

    get 'record', 'Alex'

    exit

    [cloudera-dev]$   hbase shell test.hbase

    [cloudera-dev]$  cat  readHiveOverHbase.hql

    create external table  test (name string, company string)

    stored by  'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

    with serdeproperties  ("hbase.columns.mapping" = ":key,user:company")

    tblproperties  ("hbase.table.name" = "record");

    [cloudera-dev]$   hive -f readHiveOverHbase.hql

    [cloudera-dev]$   hive -e "select * from test" 2> /dev/null

    [cloudera-dev]$  hive -e  "select count(*) from test" 2> /dev/null

    [cloudera-dev]$  cat  writeHiveOverHbase.hql

    create table test1  (name string, firm string)

    stored by  'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

    with serdeproperties  ("hbase.columns.mapping" = ":key,user:firm")

    tblproperties ("hbase.table.name" = "record1");

    [cloudera-dev]$   hive -f writeHiveOverHbase.hql

    [cloudera-dev]$   hive -e "insert overwrite table test1 select name, company from  test"

    [cloudera-dev]$   hbase shell

    hbase(main):001:0>  list

    TABLE

    record

    record1

    2 row(s) in 0.2400  seconds

    =>  ["record", "record1"]

    hbase(main):002:0>  scan 'record1'

    ROWCOLUMN+CELL

    Alexcolumn=user:firm,  timestamp=1500707374796, value=Cloudera

    1 row(s) in 0.1360  seconds

    4. Kudu验证

    先在Impala的高级配置中配置Kudu Master地址:

    --kudu_master_hosts=cdh1:7051

    [root@cdh1 ~]# impala-shell -i cdh4

    [cdh4:21000]  > CREATE TABLE my_first_table

    > (

    > id BIGINT,

    > name STRING,

    > PRIMARY KEY(id)

    > )

    > PARTITION BY HASH PARTITIONS 16

    > STORED AS KUDU;

    [cdh4:21000]  > INSERT INTO my_first_table VALUES (99,"sarah");

    [cdh4:21000]  > INSERT INTO my_first_table VALUES  (1,"john"),(2,"jane"),(3,"jim");

    [cdh4:21000]  > select * from my_first_table;

    [cdh4:21000]  > delete from my_first_table where id =99;

    [cdh4:21000]  > select * from my_first_table;

    [cdh4:21000]  > INSERT INTO my_first_table VALUES (99,"sarah");

    [cdh4:21000]  > update my_first_table set name='lilei' where id=99;

    [cdh4:21000]  > select * from my_first_table;

    [cdh4:21000]  > upsertinto my_first_table  values(1, "john"), (4, "tom"), (99, "lilei1");

    [cdh4:21000]  > select * from my_first_table;

    相关文章

      网友评论

        本文标题:CentOS6.5安装CDH5.12.0和Kudu1.4

        本文链接:https://www.haomeiwen.com/subject/sokhlxtx.html