利用cm压缩包手动安装cm和cdh
阅读原文时间:2023年07月08日阅读:1

安装准备:

1.操作系统为centos6.9

  CentOS-6.9-x86_64-bin-DVD1to2

2.安装Oracle JDK (1.8u121)

  • 下载jdk-8u121-linux-x64.tar.gz(/home/cdhadoop/Downloads)

  • 解压 JDK 到  /usr/java/jdk.1.8.0_121, nn为支持的版本号,执行如下命令:

        su

        mkdir /usr/java/jdk.1.8.0_121    

        tar -zxvf /home/cdhadoop/Downloads/jdk-8u121-linux-x64.tar.gz -C /usr/java/jdk.1.8.0_121

        cp -rf /usr/java/jdk.1.8.0_121/jdk1.8.0_121/* /usr/java/jdk.1.8.0_121/

        rm -rf /usr/java/jdk.1.8.0_121/jdk1.8.0_121

  • 设置JAVA_HOME环境变量

    export JAVA_HOME=/usr/java/jdk.1.8.0_121

3.安装配置外部数据库(mysql-5.7.18-1.el6.x86_64.rpm-bundle)

3.1准备工作:

CentOS6.9中预装的MySQL版本为mysql-libs-5.1.73-8.el6_8.x86_64。在卸载较旧版本之前,如果您的系统中还没有用于运行mysqld的用户名和组,那么就需要为系统添加一个mysql用户 (并不是一定叫mysql,也可以叫其他名称,但是需要遵循语法、操作规定)。

(1)添加mysql组和mysql用户

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

注: groupadduseradd的语法或名称在不同版本的Unix系统上可能略有不同,但在CentOS6.5中应进行如上操作。上述操作只是为了获得系统的所有权,而不是以登录为目的;使用useradd命令和-r-s /bin/false选项来创建一个没有登录权限的用户。

(2)查看系统旧版MySQL

rpm -qa | grep mysql

将会输出系统中原MySQL及其组件列表,例如:

  • mysql-libs-5.1.73-8.el6_8.x86_64

注: 以上列表中的文件可能并不全,但是列表中的文件将会按顺序被逐个移除。按照列表从下往上的顺序删除。

(3)卸载MySQL及其组件的顺序

注: 此处需要按依赖顺序逐个移除,否则会出现依赖包丢失或其他异常情况。

使用命令rpm -e --nodeps {-file-name}进行移除操作:

rpm -e –-nodeps mysql-libs-5.1.73-8.el6_8.x86_64

(1)解压源文件 
您可以将下载好的源文件(rpm-bundle.tar)解压至一个目录中,从而为安装做准备。

使用以下命令解压源文件到当前目录:

tar -xvf mysql-5.7.18-1.el6.x86_64.rpm-bundle.tar

(2)安装MySQL安装顺序 
使用命令rpm -ivh {-file-name}进行安装操作:

rpm -ivh mysql-community-common-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el6.x86_64.rpm

注: i-install安装;v-verbose进度条;h-hash哈希校验

安装完后,使用命令service mysqld start启动MySQL服务。

由于MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作。其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中生成一个随机密码。

使用以下命令:

grep 'temporary password' /var/log/mysqld.log

即可查询到类似于如下的一条日志记录:

[Note] A temporary password is generated for root@localhost:!(z%ehjw4*PZ

记录中的类似于最后绿色部分的字符串即为生成的随机密码。

此时,使用MySQL生成的随机密码就能够正常登录: 
使用如下命名:

mysql -uroot -p !(z%ehjw4*PZ

登录成功后,请立即修改您的密码。

注: 如果没有修改密码,系统将会提示错误:在"ALTER USER"操作前不会执行其他操作;并且确保修改之后的密码的安全程度能够满足MySQL的要求。推荐数字、字母和特殊符号混用。

执行以下操作配置root用户的密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql5.7@database.com';
Query OK, 0 rows affected (0.00 sec)

到此,基本的安装与密码配置已经结束。


另:如果想要修改密码的话,可以执行以下语句:

update mysql.user set authentication_string=password('mysql5.7@database.com') where user='root';

注: 从MySQL5.7.6开始,mysql.user表中存储密码的字段不再是password,而是authentication_string

查看mysql的安装路径:

ps -ef|grep mysql
root 2923 1 0 00:11 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe

--datadir=/var/lib/mysql

--socket=/var/lib/mysql/mysql.sock

--pid-file=/var/run/mysqld/mysqld.pid

--basedir=/usr --user=mysql
mysql 3117 2923 0 00:11 pts/0 00:00:01 /usr/sbin/mysqld

--basedir=/usr

--datadir=/var/lib/mysql

--plugin-dir=/usr/lib64/mysql/plugin

--user=mysql

--log-error=/var/log/mysqld.log

--pid-file=/var/run/mysqld/mysqld.pid

--socket=/var/lib/mysql/mysql.sock

查看my.cnf配置文件的位置:

find / -name my.cnf  #   /etc/my.cnf

设置my.cnf,根据cloudera官方文档:https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_mysql.html#cmig_topic_5_5_2

# For advice on how to change settings please see

http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
explicit_defaults_for_timestamp=true
transaction-isolation = READ-COMMITTED

key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
server-id = 1

log_bin=/var/lib/mysql/mysql_binary_log/binlog

Remove leading # and set to the amount of RAM for the most important data

cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

innodb_buffer_pool_size = 128M

Remove leading # to turn on a very important data integrity option: logging

changes to the binary log between backups.

log_bin

Remove leading # to set options mainly useful for reporting servers.

The server defaults are faster for transactions and fast SELECTs.

Adjust sizes as needed, experiment to find the optimal values.

join_buffer_size = 128M

sort_buffer_size = 2M

read_rnd_buffer_size = 2M

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

InnoDB settings

innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES

注意:

“log_bin=/var/lib/mysql/mysql_binary_log/binlog”
如果配的目录中如果有其它用户创建的路径,如上一行中/var/lib/mysql/mysql_binary_log为用root用户手动创建的目录,要把它授权给mysql用户,否则修改完配置文件后,mysqld将无法启动。

$ chkconfig mysqld on
$ chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

$ sudo /usr/bin/mysql_secure_installation
[…]
Enter current password for root (enter for none):
OK, successfully used password, moving on…
[…]
Set root password? [Y/n] y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[…]
Disallow root login remotely? [Y/n] N
[…]
Remove test database and access to it [Y/n] Y
[…]
Reload privilege tables now? [Y/n] Y
All done!

  1. 下载 MySQL JDBC driver http://www.mysql.com/downloads/connector/j/5.1.html.下载时最新为mysql-connector-java-5.1.42.tar.gz。

  2. Extract the JDBC driver JAR file from the downloaded file. For example:

    tar zxvf mysql-connector-java-5.1.42.tar.gz

  3. 拷贝并重命名 JDBC driver, 例如:

    $ sudo cp mysql-connector-java-5.1.42/mysql-connector-java-5.1.42-bin.jar /usr/share/java/mysql-connector-java.jar

    如果目录不存在就先创建再拷贝:

    $ sudo mkdir -p /usr/share/java/
    $ sudo cp mysql-connector-java-5.1.42/mysql-connector-java-5.1.42-bin.jar /usr/share/java/mysql-connector-java.jar

注意: 不要使用 yum install 命令来安装MySQL driver, 因为它安装OpenJDK,然后使用Linux替代命令设置系统的JDK是OpenJDK。