最近發現,公司的的巨量資料環境,空間有不足的情況,叢集的計算能力也下降, 此時需要對將巨量資料的叢集環境進行擴容 增加計算節點。
叢集示意圖:
設定hadoop賬號,ssh免密,關掉防火牆,磁碟掛載
useradd hadoop
su hadoop
ssh-keygen -t rsa
#複製到所有datanode,並測試ssh登陸
cp id_rsa.pub authorized_key
把原先的/usr/local/hadoop複製到/home/hadoop下,並修改組態檔中hadoop_home相關的地址。
修改dfs.name.dir,dfs.data.dir,mapred.system.dir,mapred.local.dir等相關目錄的許可權。
chown -R hadoop:hadoop [dir]
hadoop dfs -chown -R hadoop:hadoop /
root使用者執行命令,安裝chrony:
yum install -y chrony*
echo "server 192.168.4.11 iburst" >> /etc/chrony.conf
啟動chrony.service
/bin/systemctl restart chronyd.service
/bin/systemctl enable chronyd.service
chronyc sources -v
同步到bios 時間,root使用者執行命令
hwclock --localtime -w
關閉firewalld iptables 和禁用selinux,關閉iptables
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
關閉iptables
iptables -F
systemctl stop iptables.service
service iptables save
禁用 selinux
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0
getenforce 0
sestatus
重新啟動機器
reboot
修改檔案系統的最大連線數,以root使用者執行:
vim /etc/security/limits.conf
* soft nofile 32728
* hard nofile 1029345
* soft nproc unlimited
* hard nproc unlimited
* soft memlock unlimited
* hard memlock unlimited
設定新增節點伺服器的無金鑰認證登入,做root使用者無金鑰認證
ssh-keygen ---一直敲回車到最後
cat id_rsa.pub >> authorized_keys
將所有節點的公鑰匯入authorized_keys 分發到 所有的 機器的.ssh/ 下面
chmod 600 .ssh/authorized_keys
然後進行無金鑰登入認證測試!
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
建立CM 的安裝目錄,root 使用者執行命名:
mkdir /opt/cloudera-manager
wget http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.12.0_x86_64.tar.gz
解壓CM包到/opt/cloudera-manager,以root使用者執行命令:
tar -zxvf cloudera-manager-centos7-cm5.12.0_x86_64.tar.gz -C /opt/cloudera-manager
以root使用者執行命令:
cd /opt/cloudera-manager/cm-5.12.0/etc/cloudera-scm-agent
vim config.ini
server_host=NN01.sge.com.cn
useradd --system --home=/opt/cloudera-manager/cm-5.12.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
vim /etc/sudoers
在root 許可權下面 增加 一行:
cloudera-scm ALL=(ALL) ALL
以root使用者執行下面的命令:
mkdir -p /opt/cloudera/parcels
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels/
新建目錄:
mkdir -p /var/lib/cloudera-scm-server
mkdir -p /var/lib/cloudera-scm-agent
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server/
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-agent/
啟動CM-server的agent 端
cd /opt/cloudera-manager/cm-5.12.0/etc/init.d
./cloudera-scm-agent start
以root 使用者執行命令
echo "10" > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
vim /etc/rc.local
若啟動agent失敗,則嘗試以下命令:
ps -ef | grep supervisord | xargs kill -9
sudo service cloudera-scm-agent restart
登陸cm(如:http://192.168.16.32:8010/pages/viewpage.action?pageId=16094086)
在Cluster1中選擇「新增服務」
在「新增服務至Cluster1」,選擇服務型別:
自定義角色分配
新增節點完成
[DNS6@fleapx ~]$ hadoop fs -ls /
[DNS6@fleapx ~]$ hbase shell
[DNS6@fleapx ~]$ hive
[DNS6@fleapx ~]$ hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5