##1)Environment initialization
Note:At least three nodes,
the Master node at least 6G of memory,
and the other two at least 4G of memory
|--------------|-----------|-------------|----------------|-----------|--------------------|-------------|
| Host | Server | Agent | zookeeper | namenode | secondarynamenode | datanode |
|--------------|-----------|-------------|----------------|-----------|--------------------|-------------|
|cdh01 Master | Y | Y | Y | Y | | |
|--------------|-----------|-------------|----------------|-----------|--------------------|-------------|
|cdh02 slave | | Y | Y | | Y | Y |
|--------------|-----------|-------------|----------------|-----------|--------------------|-------------|
|cdh03 slave | | Y | Y | | | Y |
|--------------|-----------|-------------|----------------|-----------|--------------------|-------------|
|cdh04 slave | | Y | Y | | | Y |
|--------------|-----------|-------------|----------------|-----------|--------------------|-------------|
|cdh05 slave | | Y | Y | | | Y |
|______________|___________|_____________|________________|___________|____________________|_____________|
#######################################
##Name resolution on every nodes
########################
cat > /etc/hosts <<EOF
127.0.0.1 localhost
192.168.51.6 cdh01
192.168.51.7 cdh02
192.168.51.16 cdh03
192.168.51.17 cdh04
192.168.51.4 cdh05
EOF
##We must to disable ipv6 on every nodes
echo 'net.ipv6.conf.all.disable_ipv6 = 1'>>/etc/sysctl.conf
echo 'net.ipv6.conf.default.disable_ipv6 = 1' >>/etc/sysctl.conf
echo 'vm.swappiness = 0' >>/etc/sysctl.conf
sysctl -p
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
groupadd hadoop -g 700
useradd hadoop -g hadoop -u 700
echo "hadoop123"|passwd --stdin hadoop
echo 'hadoop ALL=(ALL) NOPASSWD: ALL' >>/etc/sudoers
echo "ulimit -SHn 204800" >> /etc/rc.local
echo "ulimit -SHu 204800" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 204800
* hard nofile 204800
* soft nproc 204800
* hard nproc 204800
EOF
#Install jdk on every nodes
wget http://god.nongdingbang.net/downloads/auto_jdk_1.8.sh
sh auto_jdk_1.8.sh
#Install java-jdbc on every nodes
cd /home/tools
wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.39.tar.gz
tar zxvf mysql-connector-java-5.1.39.tar.gz
mkdir /usr/share/java/
\cp mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar /usr/share/java/mysql-connector-java.jar
########################################################################################################
##2)Deploy local yum for CDH on cdh01
yum -y install epel-release
yum -y install nginx createrepo
cat > /etc/nginx/nginx.conf <<EOF
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 102400;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 120;
types_hash_max_size 2048;
client_max_body_size 1G;
client_header_timeout 10;
client_body_timeout 10;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
server_names_hash_bucket_size 64;
gzip on;
gzip_min_length 1024;
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain text/css text/xml text/x-component text/javascript application/x-javascript application/javascript application/json application/xhtml+xml image/svg+xml image/x-icon image/gif image/png image/jpeg video/mp4 video/x-flv video/x-m4v;
gzip_disable "msie6";
gzip_vary on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
EOF
mkdir -p /data/www/html/
cat > /etc/nginx/conf.d/default.conf <<EOF
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /data/www/html;
autoindex on; #允许浏览文件
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EOF
cd /data/www/html/ && wget http://god.nongdingbang.net/downloads/cm5.11.0-centos7.tar.gz
tar zxvf cm5.11.0-centos7.tar.gz && chown -R nginx.nginx /data/www/html
cd /data/www/html/cm/5.11 && createrepo .
#run this command on every nodes
cat >/etc/yum.repos.d/cloudera-cm.repo <<EOF
[cloudera-cm]
# Packages for Cloudera's Distribution for cm, Version 5, on RedHat or CentOS 7 x86_64
name=Cloudera's Distribution for cm, Version 5
baseurl=http://192.168.51.6/cm/5.11
gpgcheck = 0
EOF
#Start nginx on cdh01
service nginx start && chkconfig nginx on
##3)Install cloudera-agent on every nodes
yum install -y vim wget openssh-clients python chrony cloudera-manager-agent cloudera-manager-daemons
##4)Install cloudera-magener on cdh01
yum install -y cloudera-manager-daemons cloudera-manager-server
##6)Initialize MySQL configuration
mysqld --defaults-file=/etc/my.cnf --user=mysql \
--datadir=/data/mysql_data --initialize-insecure
##7)Start mysql
systemctl restart mysqld && systemctl enable mysqld
##8)setting root's password for mysql on cdh01
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ad@sd119';"
mysql -uroot -pAd@sd119 -Dmysql -e "select user,host,authentication_string,password_expired from user;"
mysql -uroot -pAd@sd119 -e "create database scm default character set utf8;grant all privileges on *.* to scm@'%' identified by 'scm';"
mysql -uroot -pAd@sd119 -e "create database amon default character set utf8;grant all privileges on amon.* to 'amon'@'%' identified by 'amon_password';"
mysql -uroot -pAd@sd119 -e "create database rman default character set utf8;grant all privileges on rman.* to 'rman'@'%' identified by 'rman_password';"
mysql -uroot -pAd@sd119 -e "create database metastore default character set utf8;grant all privileges on metastore.* to 'hive'@'%' identified by 'hive_password'"
mysql -uroot -pAd@sd119 -e "create database sentry default character set utf8;grant all privileges on sentry.* to 'sentry'@'%' identified by 'sentry_password'"
mysql -uroot -pAd@sd119 -e "create database nav default character set utf8;grant all privileges on nav.* to 'nav'@'%' identified by 'nav_password'"
mysql -uroot -pAd@sd119 -e "create database navms default character set utf8;grant all privileges on navms.* to 'navms'@'%' identified by 'navms_password';"
mysql -uroot -pAd@sd119 -e "create database hue default character set utf8;grant all privileges on hue.* to 'hue'@'%' identified by 'hue_password'"
mysql -uroot -pAd@sd119 -e "flush privileges;"
#9)Create this directory on every nodes
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
#10)Start Server on cdh01
#############################
cat >/etc/cloudera-scm-server/db.properties <<EOF
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=cdh01
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm
com.cloudera.cmf.db.setupType=EXTERNAL
EOF
cd /opt/cloudera/parcel-repo
wget -c http://god.nongdingbang.net/downloads/parcel-repo.tgz
if [ $? -eq 0 ];then
tar zxvf parcel-repo.tgz
fi
mv parcel-repo/* .
rm -rf parcel-repo*
/etc/init.d/cloudera-scm-server start
chkconfig cloudera-scm-server on
#11)Start agentd on every nodes
sed -i 's/server_host=localhost/server_host=192.168.51.6/' /etc/cloudera-scm-agent/config.ini
sed -i 's#\# parcel_dir=/opt/cloudera/parcels#parcel_dir=/opt/cloudera/parcels#' /etc/cloudera-scm-agent/config.ini
cat >/etc/cloudera-scm-agent/config.ini<<EOF
server_host=cdh01
server_port=7182
parcel_dir=/opt/cloudera/parcels
EOF
/etc/init.d/cloudera-scm-agent start
chkconfig cloudera-scm-agent on
##12)Browse your cdh
http://192.168.51.6:7180/cmf/login