1,虚拟机安装 Centos7 64 位虚拟机 设置 root 账号密码 root
2,在 vm 设置虚拟机桥接模式
3,在系统内设置 虚拟机的网卡
ip地址设为手动输入
4,设置 hostname
hostnamectl status
主机
hostnamectl --static set-hostname SP01
hostname SP02
hostname SP03
CentOS7 要多执行以下这步:
hostnamectl set‐hostname sp01
在相应的节点主机上修改主机名。
sudo nano /etc/sysconfig/network
修改或者添加
HOSTNAME= sp01
在每个节点 修改 /etc/hosts 文件
sudo nano /etc/hosts
在文件中粘贴以下
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.23.0.136 sp01
10.23.0.138 sp02
10.23.0.139 sp03
5,所有节点关闭防火墙和 selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
sudo nano /etc/selinux/config
进入文件 将 SELINUX=disabled
6, 所有节点无密码 ssh 登录
先在 master 上执行:
ssh‐keygen ‐t rsa
ssh‐copy‐id ‐i ~/.ssh/id_rsa.pub root@sp01
再在其他节点分别执行以下命令:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@sp01
在 master 上,将 authorized_keys 分发到其他节点服务器:
scp ~/.ssh/authorized_keys root@slave:~/.ssh/
ssh 测试
ssh root@sp02
ssh root@sp01
7 设置 ntp 时间同步
所有节点 安装 ntp
yum -y install ntp
主节点设置
mv /etc/ntp.conf /etc/ntp.conf_bak
sudo nano /etc/ntp.conf
写入
driftfile /var/lib/ntp/ntp.drift
restrict 10.23.0.0 mask 255.255.254.0 nomodify notrap
server 210.72.145.44 perfer
server 202.112.10.36
server 59.124.196.83
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
server 127.127.1.0
fudge 127.127.1.0 stratum 10
logfile /var/log/ntp.log
设置 ntp 服务日志
nano /etc/sysconfig/ntpd
OPTIONS="-g -l /var/log/ntp.log"
子节点设置
driftfile /var/lib/ntp/ntp.drift #草稿文件
#日志文件
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enablefilegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
#让NTP Server和其自身保持同步,如果在/etc/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端
server 10.23.0.136
fudge 10.23.0.136 stratum 5
#不允许来自公网上ipv4和ipv6客户端的访问
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
所有节点设置 ntp 开机启动
systemctl enable ntpd.service
systemctl start ntpd.service
systemctl restart ntpd.service
节点同步时间
ntpdate -u sp01
查看同步状态
netstat -tlunp | grep ntp
重启所有虚拟机
reboot
注:安装 NTP 之后,systemctl enable ntpd 设置为开机自动启动,但是重启之后 NTP 并没有启
动,使用 systemctl status ntpd
查看,得到如下信息:
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
从给出的信息可知 ntp 已被设置为开机启动,但是开机启动并未成功。一般引起这个问题的最为常
见的原因是系统上安装了一个与 NTP 相冲突的工具:chrony。
如是使用
systemctl is-enabled chronyd
来查看一下,往往得到的结果是 chrony 已经被设置为 enabled。所以,解决这一问题的方法
就是:
systemctl stop chronyd
systemctl disable chronyd
8, 安装 CDH,
将文件拷贝到节点上
先在主节点建立文件
mkdir -p /opt/cloudera/parcel-repo/
1.首先将 parcels 的文件拷贝到主节点
scp -r 下载/CDH/CDH5.16.1/parcels/. root@10.23.0.136:/opt/cloudera/parcel-repo
重要!
在 manifest.json 文件中,找到对应版本的秘钥,复制到.sha 文件中。如果 manifest.json 文件中秘钥错误,系统
也会重新下载 CDH 包。
否则安装查找 parcel 文件找不到
2.将 cloudera-manager.repo 文件拷贝到主节点的/etc/yum.repos.d 目录中或者安装存储库(所
有节点)
scp -r 下载/CDH/CDH5.16.1/cloudera-manager.repo root@10.23.0.136:/etc/yum.repos.d
导入存储库签名 GPG 密钥:
rpm --import https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/RPM-GPG-KEY-cloudera
验证 repo 文件是否起效
yum list | grep cloudera
如果列出的不是待安装的版本,执行下面命令重试 (内容为 RPMS 文件内的 RPM 包名)
yum clean all
yum list | grep cloudera
3.然后将 jdk 及 rpm 文件拷贝到所有节点/root/cdh/cm/目录中
先在虚拟机中建立文件夹
mkdir -p /root/cdh/cm/
将 RPM 文件拷贝至虚拟机
scp -r 下载/CDH/CDH5.16.1/RPMS/. root@10.23.0.136:/root/cdh/cm
scp -r 下载/CDH/CDH5.16.1/jdk/. root@10.23.0.139:/root/cdh/cm
4.cm 安装,在所有节点
cd /root/cdh/cm
yum -y install *.rpm
安装完成后 查看已安装文件
rpm -qa | grep cloudera
然后所有节点添加 java 环境变量
在 /etc/profile 中的末尾添加
sudo nano /etc/profile
JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
修改完刷新一下
source /etc/profile
然后查看 java
java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
安装 mysql 数据库,详情看 Cloudera Manager 安装时配置 mysql 数据库
在 https://dev.mysql.com/downloads/file/?id=484537
下载 mysql 5.7 版
在各个节点上进行 MySQL 的旧版本卸载:
rpm -qa | grep MySQL
rpm -qa | grep mariadb
用以下命令卸载查出的包
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
sudo rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
将 mysql 驱动放到/usr/share/java 中,并改名
mv mysql-connector-java-5.1.30.jar mysql-connector-java.jar
传输到各个节点
scp mysql-connector-java.jar root@rs-slave04:/usr/share/java
上传 mysql 安装包
tar -xvf 解压mysql安装包
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql*.rpm 安装所有mysql
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm --安装了这个才能升级HUE
service mysqld start
找出 mysql 安装默认生成的密码:
cat /var/log/mysqld.log |grep password
2019-02-27T14:58:56.989712Z 1 [Note] A temporary password is generated for root@localhost: oY7i+lGEBd)w
查看密码
grep 'temporary password' /var/log/mysqld.log
2016-07-08T02:25:46.311098Z 1 [Note] A temporary password is generated for root@localhost: MtPqF0/oN5zo
其中“MtPqF0/oN5zo”就为我们要找的初始密码
修改用户 root 密码;
登陆 mysql:
mysql -uroot -p
oY7i+lGEBd)w
修改 mysql 密码验证复杂度校验 以下语句谁为按长度校验
set global validate_password_policy=0;
以下语句设置最小可以密码为一位
set global validate_password_length=1;
在 MySQL 中修改 root 密码:
set PASSWORD=PASSWORD('123456');
开启 mysql 远程连接
grant all on *.* to 'root'@'%' identified by '123456' with grant option;
建立各个组件的数据库,及用户名密码
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive@123';
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY ' amon@123';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';
刷新权限:
flush privileges;
查询修改 my.conf
find / -name my.cnf
备份 my.cnf
mv my.cnf my.cnf_bak
nano my.cnf
添加以下内容:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction_isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic_links = 0
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
#expire_logs_days = 10
#max_binlog_size = 100M
#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log
#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1
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
然后重启 MySQL 服务器
service mysqld restart
删除此文件:
sudo rm /etc/cloudera-scm-server/db.mgmt.properties
sudo rm /etc/cloudera-scm-server/db.properties
必须执行此命令,才能使 cdh 使用 MySQL 数据库
sudo /usr/share/cmf/schema/scm_prepare_database.sh -h 192.168.0.130 mysql scm scm
密码 scm@123
停止 cloudera 内置数据库服务
service cloudera-scm-server-db stop
9.安装 CDH
将 cloudera‐manager‐installer.bin 包拷贝到主节点
scp -r 下载/CDH/CDH5.16.1/cloudera-manager-installer.bin root@10.23.0.136:/root/cdh/cm
chmod u+x cloudera-manager-installer.bin
chmod u+x cloudera-manager-installer.bin
启动安装
./cloudera-manager-installer.bin --skip_repo_package=1
如果提示 db.properties 文件已经存在,则删除
rm -rf /etc/cloudera-scm-server/db.properties
安装完成了
主节点修改
nano /etc/cloudera-scm-agent/config.ini
将其中server_host=rs-master01 rs-master01是主节点名
在主节点将config.ini推送到子节点
scp /etc/cloudera-scm-agent/config.ini root@rs-slave03:/etc/cloudera-scm-agent/
现在访问 10.23.0.136:7180 端口
账户:admin
密码:admin
选免费版
一路继续
到集群安装 install agaents
如果遇到
安装失败。 无法接收 Agent 发出的检测信号。
请确保主机的名称已正确配置。
请确保端口 7182 可在 Cloudera Manager Server 上访问(检查防火墙规则)。
请确保正在添加的主机上的端口 9000 和 9001 空闲。
检查正在添加的主机上 /var/log/cloudera-scm-agent/ 中的代理日志(某些日志可在安装详细信息中找到)。
如果在 Cloudera Manager 中启用为代理使用 TLS 加密(管理 -> 设置 -> 安全),请确保 /etc/cloudera-scm-agent/config.ini 在正在添加的主机上有 use_tls=1。重启相应的代理,并单击此处的重试链接。
请检查 hosts 中的配置. 127.0.0.1 不能配置名字
10.警告设置
每个节点都要运行
1.Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 30。使用 sysctl 命令
在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。您可以继续进行安装,但
Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。
sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf
vm.swappiness=10
2.已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never >
/sys/kernel/mm/transparent_hugepage/defrag”和“echo never >
/sys/kernel/mm/transparent_hugepage/enabled”以禁用此设置,然后将同一命令添加到
/etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
sudo nano /etc/rc.local
添加以下
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
Hive
数据库主机名称: 数据库类型: 数据库名称 : 用户名: 密码:
localhost:7432 MySQLPostgreSQLOracle hive hive E3iRjV6KJf
Hue
数据库主机名称: 数据库类型: 数据库名称 : 用户名: 密码:
localhost:7432 MySQLPostgreSQLOracle hue hue BrR0bfCVce
Oozie Server
当前被分配在 sp01 上运行。
数据库主机名称: 数据库类型: 数据库名称 : 用户名: 密码:
localhost:7432 MySQLPostgreSQLOracle oozie_oozie_server oozie_oozie_server wyGtMR0lKy
中间选择加载组件:HBase,HDFS,Hive,Hue,Impala,Spark,Yarn,ZooKeeper
一路继续,直到完成
进入完成页面
HDFS 报警,有一个错误.副本块不足.
点击 HDFS 在搜索栏搜索
dfs.replication
在主节点 输入 su hdfs 进入 hdfs 角色
hadoop fs -setrep 2 /
如果出现提示:
1
This account is currently not available
解决方法:
1 # vi /etc/passwd
把 hdfs❌988:982:Hadoop HDFS:/var/lib/hadoop-hdfs:/sbin/nologin
修改为
thdfs❌988:982:Hadoop HDFS:/var/lib/hadoop-hdfs:/bin/bash
修改完毕后,保存退出就可以切换了
==CM Portal 地址:
http://master:7180/cmf/home
关闭步骤:
1.在 CM Portal 上关闭 cluster
2.在所有节点关闭 CM agent:
service cloudera-scm-agent stop
3.在 master 节点关闭 CM server:
service cloudera-scm-server stop
启动步骤:
1.在所有节点启动 CM agent:
service cloudera-scm-agent start
2.在 master 节点启动 CM server:
service cloudera-scm-server start
3.在 CM portal 上启动 cluster
查看启动日志:
/var/log/cloudera-scm-server/cloudera-scm-server.log
查看服务状态
systemctl status cloudera-scm-agent
监测 cloudera 启动过程
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
cat /var/log/cloudera-scm-agent/cloudera-scm-agent.log
监控 ntp 服务
watch ntpq -p
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于