https://blog.csdn.net/qq_22946601/article/details/82382931html
1.虛擬機準備,網絡配置,host配置,無祕配置,防禦牆關閉,ntp服務java
cdh-node1 192.168.128.221node
cdh-node2 192.168.128.222mysql
cdh-node3 192.168.128.223linux
yum install httpdsql
或者你能夠直接輸入命令數據庫
yum install -y httpdubuntu
設置Apache開機啓動vim
chkconfig httpd oncentos
啓動httpd服務
service httpd start
3.Linux swappiness參數(全部節點)
爲了不服務器使用swap功能而影響服務器性能,通常都會把vm.swappiness修改成0(cloudera建議10如下)
echo 0 > /proc/sys/vm/swappiness
這樣操做重啓機器仍是還原
修改配置文件,開機自動設置參數
編輯vi /etc/sysctl.conf
在最後添加vm.swappiness=0
4.禁用透明頁(全部節點)
設置方法
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效
在vi /etc/rc.local 添加上面命令
給與可執行權限:
chmod +x /etc/rc.d/rc.local
JDK安裝(全部節點)
卸載原有java
rpm -qa | grep java # 查詢已安裝的java
yum remove java* # 卸載
安裝JDK以及配置環境變量
rpm -ivh /opt/JDK/jdk-8u144-linux-x64.rpm
vi /etc/profile
# 末尾添加
export JAVA_HOME=/usr/java/jdk1.8.0_144
export CLASSPATH=.:$CLASSPTAH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
1卸載mariadb
[root@cdh001 opt]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.x86_64
[root@cdh001 opt]# rpm -e mariadb-libs-5.5.44-2.el7.x86_64
error: Failed dependencies:
libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
[root@cdh001 opt]# rpm -e postfix-2:2.10.1-6.el7.x86_64
[root@cdh001 opt]# rpm -e mariadb-libs-5.5.44-2.el7.x86_64
2 MYSQL安裝
cd /opt/mysql/
tar -xvf ./mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
報錯
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by MySQL-client-advanced-5.6.22-1.el7.x86_64
libc.so.6(GLIBC_2.17)(64bit) is needed by MySQL-client-advanced-5.6.22-1.el7.x86_6
解決方法
下載響應安裝包:http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。
解壓: tar xvf glibc-2.14.tar.gz
進入glibc-2.14目錄:cd glibc-2.14
建立build文件夾:mkdir build
進入build目錄:cd build
執行:../configure --prefix=/opt/glibc-2.14
執行:make
執行:make instal
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm
3 MYSQL配置
mysqld --initialize --user=mysql # 初始化mysql使mysql目錄的擁有者爲mysql用戶
cat /var/log/mysqld.log # 最後一行將會有隨機生成的密碼
systemctl start mysqld.service # 設置mysql服務自啓
mysql -uroot –p
# 輸入臨時密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; # 修改密碼
4 建立庫(後續安裝服務等使用)
CREATE DATABASE cmserver DEFAULT CHARACTER SET utf8;
GRANT ALL on cmserver.* TO 'cmserver'@'%' IDENTIFIED BY 'cmserver';
CREATE DATABASE hive DEFAULT CHARACTER SET utf8;
GRANT ALL on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8;
GRANT ALL on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8;
GRANT ALL on rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8;
GRANT ALL on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8;
GRANT ALL on hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';
inux下安裝mysql5.7步驟
1.解壓下載好的.tar.gz文件,並將解壓後的文件拷貝到/usr/local/目錄下,注意:-C,而不是小寫的-c
tar -xzvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
2.進入/usr/local/目錄下,修改已經解壓的文件夾的名字,改成mysql
mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql
3.檢查數據庫文件是否有,如有便刪除(linux系統自帶的)
檢查:命令rpm -qa | grep mysql
若是有則刪除:命令rpm -e --nodeps mysql-libs-5.1.52.x86_64
4.檢查mysql組和用戶是否存在,如無則建立
檢查:cat /etc/group | grep mysql;
cat /etc/passwd |grep mysql;
建立:groupadd mysql;
useradd -r -g mysql mysql
5.在mysql目錄下新建data目錄
mkdir data
6.更改mysql目錄下全部的目錄及文件夾所屬組和用戶
[root@dbserver mysql]# cd /usr/local/
[root@dbserver local]# chown -R mysql mysql/
[root@dbserver local]# chgrp -R mysql mysql/
[root@dbserver local]# cd mysql/
[root@dbserver mysql]# ls -l
total 40
drwxr-xr-x. 2 mysql mysql 4096 Aug 31 16:45 bin
-rw-r--r--. 1 mysql mysql 17987 Jun 22 22:13 COPYING
drwxr-xr-x. 2 mysql mysql 6 Aug 31 16:48 data
drwxr-xr-x. 2 mysql mysql 52 Aug 31 16:45 docs
drwxr-xr-x. 3 mysql mysql 4096 Aug 31 16:44 include
drwxr-xr-x. 5 mysql mysql 4096 Aug 31 16:45 lib
drwxr-xr-x. 4 mysql mysql 28 Aug 31 16:45 man
-rw-r--r--. 1 mysql mysql 2478 Jun 22 22:13 README
drwxr-xr-x. 28 mysql mysql 4096 Aug 31 16:45 share
drwxr-xr-x. 2 mysql mysql 86 Aug 31 16:45 support-files
7.安裝和初始化數據庫
進入/usr/local/mysql/bin目錄下,執行命令
./mysqld --initialize --user=mysql --basedir=/usr/local/mysq/--datadir=/usr/local/mysql/data/
若是提示錯誤:
[ERROR] Can't find error-message file '/usr/local/mysql/--datadir=/usr/local/mysql/data/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.2017-08-31T08:50:24.709286Z 0 [Warning] InnoDB: New log files created, LSN=45790
解決:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
若是提示錯誤內容包含./mysqld: error while loading shared libraries: libnuma.so.1這樣的描述錯誤,這是由於缺乏numactl依賴共享庫文件:
解決方案:
你的當前系統是Centos就執行命令:yum -y install numactl
你的當前系統是ubuntu就執行命令:sudo apt-get install numactl
若是提示:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
缺乏libaio
執行yum install -y libaio
注意:安裝成功後,最後一行有提示
例如個人A temporary password is generated for root@localhost: bke6OmP#<y(w
請務必記住冒號後面的字符串,這個是數據庫root用戶初始登陸密碼,請務必保存下來
8.配置my.cnf
進入/usr/local/mysql/support-files/目錄下
查看是否存在my-default.cnf文件,若是存在直接copy到/etc/my.cnf文件中:cp -a ./support-files/my-default.cnf /etc/my.cnf
若是不存在my-default.cnf文件,則在/etc/目錄下建立my.cnf,並寫入如下內容
[mysqld]
basedir=/usr/local/mysql-5.7.12/
datadir=/usr/local/mysql-5.7.12/data/
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,
NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
9.啓動服務
進入已安裝的mysql目錄中的bin目錄下執行命令: ./mysqld_safe --user=mysql &
注意:若是此步驟報錯,能夠忽略,不用管,繼續往下執行下一步。
配置環境變量
vi /etc/profile
export MYSQL_HOME="/software/mysql-5.6.21"
export PATH="$PATH:$MYSQL_HOME/bin"
保存退出
. /etc/profile
6.添加自啓動服務
chkconfig --add mysql
chkconfig mysql on
7.啓動mysql
service mysql start
10.將mysqld服務加入開機自啓動項
將安裝的mysql安裝目錄中的support-files/mysql.server 拷貝爲/etc/init.d/mysql並設置運行權限,這樣就可使用service mysql命令啓動/中止服務,
不然就只能使用{mysql}/bin/mysqld_safe &命令來啓動服務
還須要把mysql.server中basedir的相關路徑,改成自定義的路徑,默認路徑是/usr/local/mysql
執行命令:
拷貝:cp mysql.server /etc/init.d/mysql
給權限:chmod +x /etc/init.d/mysql
把mysql註冊爲開機啓動的服務,命令:chkconfig --add mysql
查看是否添加成功:chkconfig --list mysql
若是提示:mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off,則表示已設置開機啓動服務項
11.啓動服務
service mysql start
12.登陸mysql
進入mysql安裝的bin目錄
cd /usr/local/mysql/bin
登陸mysql命令:./mysql -u root -p
回車後輸入密碼:你第7步記錄下來的密碼
12.修改root初始密碼
alter user 'root'@'localhost' identified by 'dawning';
回車後提示下面的內容,表示修改爲功
Query OK, 0 rows affected, 1 warning (0.00 sec)
修改密碼也可使用sql執行:
update mysql.user set authentication_string=password("你的新密碼") where User="用戶名" and Host="%";
13.設置遠程登陸權限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'dawning' WITH GRANT OPTION;
刷新
flush privileges;
mysql> quit
Bye
7.建立庫(後續安裝服務等使用)
CREATE DATABASE cmserver DEFAULT CHARACTER SET utf8;
GRANT ALL on cmserver.* TO 'cmserveruser'@'%' IDENTIFIED BY 'password';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8;
GRANT ALL on metastore.* TO 'hiveuser'@'%' IDENTIFIED BY 'password';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8;
GRANT ALL on amon.* TO 'amonuser'@'%' IDENTIFIED BY 'password';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8;
GRANT ALL on rman.* TO 'rmanuser'@'%' IDENTIFIED BY 'password';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8;
GRANT ALL on oozie.* TO 'oozieuser'@'%' IDENTIFIED BY 'password';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8;
GRANT ALL on hue.* TO 'hueuser'@'%' IDENTIFIED BY 'password';
service cloudera-scm-server start
配置Cloudera Manager包yum源(主節點)
mkdir -p /var/www/html/cloudera-repos
將下載的cm包文件移到此目錄下
建立repodata
[root@cdh001 cm6]# createrepo .
建立.repo
[root@cdh001 cm6]# vim /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version
baseurl = http://cdh001/cloudera-repos/cm6/
gpgcheck = 1
~
yum clean all
yum makecache
安裝 Cloudera Manager(主節點)
sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server --nogpgcheck
#安裝完CM後/opt/ 下會出現cloudera目錄
mv /opt/parcels/* /opt/cloudera/parcel-repo # 將parcel包移動到指定位置
在/opt/cloudera/parcel-repo執行如下命令:
sha1sum CDH-6.0.0-1.cdh6.0.0.p0.537114-el6.parcel | awk '{ print $1 }' > CDH-6.0.0-1.cdh6.0.0.p0.537114-el6.parcel.sha
# 執行初始化腳本
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver cmserveruser password
# 打開server服務
service cloudera-scm-server start
top命令查看cpu佔用大幅升高,cpu使用率降低後說明服務已起
查看CM頁面是否已能夠打開
http://192.168.128.221:7180
集羣安裝配置
按Option1說明配置auto-tls
JAVA_HOME=/usr/java/jdk1.8.0_144 /opt/cloudera/cm-agent/bin/certmanager --location /opt/cloudera/CMCA setup --configure-services
service cloudera-scm-server restart
重啓後打開7180自動跳轉至7183
這裏選擇的cdh否則是在線安裝
全部節點JDK已安裝,這裏不勾選
Agents安裝
parcels分發
檢測
集羣安裝配置(可後續依需求單個服務安裝,此處選擇Essentials安裝)
選擇服務安裝節點(namenode與secondaryNameNode儘可能不要放在一個節點,我這裏當時比較隨意沒注意,後續能夠遷移)
填入以前建立的庫名用戶密碼,測試鏈接success後continue
各項配置
初次運行
完成
安裝過程當中可能遇到的問題:
須要使用sha1sum校驗parcel包生成校驗文件,否則parcel包不識別
allkeys.asc 文件忘記下載,安裝Agents會報錯
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
官方安裝手冊
http://www.cloudera.com/documentation/enterprise/6/latest/topics/installation.html
Hdfs參數調優
修改後
二、設置DataNode平衡帶寬
a、展開DataNode默認組(DataNode Default Group) > 性能(Performance)類別;
b、根據你的磁盤和網絡性能配置DataNode平衡帶寬(DataNode Balancing Bandwidth);
c、點擊保存更改(Save Changes)提交更改。
三、提升依據迭代設置複製工做乘數器的數值(默認值是2,然而推薦值是10)
a、展開NameNode默認組(NameNode Default Group) >高級(Advanced)類別;
b、將配置依據迭代設置複製工做乘數器(Replication Work Multiplier Per Iteration)設置爲10;
c、點擊保存更改(Save Changes)提交更改。
四、增長複製的最大線程數和最大複製線程的限制數
a、展開NameNode默認組(NameNode Default Group) >高級(Advanced)類別;
b、配置Datanode複製線程的最大數量(Maximumnumber of replication threads on a Datanode)和Datanod複製線程的數量的限制數(Hardlimit on the number of replication threads on a Datanod)分別爲50和100;
c、點擊保存更改(Save Changes)提交更改。
Yarn參數調整
2018年01月29日 16:54:05 adshiye 閱讀數:1767
基於如下環境提供參考值: 5臺內存32G、cpu8核的服務器,操做系統爲centos6.8
總內存: 160G
總核數: 40核
不一樣的環境能夠根據本身環境的總內存以及總內核和這個參考值得出係數,那麼:值= 推薦值 X 係數
參數 |
解釋 |
值 |
NameNode 的 Java 堆棧大小 |
Java 進程堆棧內存的最大大小,改Java進程主要是:維護整個系統的的文件目錄樹,維護文件/目錄的信息和每一個文件對應的數據塊列表,接受並處理用戶的操做請求 |
至少1GB |
dfs.datanode.max.locked.memory |
一個DataNode將要用來被作HDFS緩存的內存的最大值 |
至少256MB |
DataNode 的 Java 堆棧大小 |
Java 進程堆棧內存的最大大小,改Java進程主要是:週期性檢測並向NameNode上報其管理的塊信息,同時處理namenode給該Datanode的命令 |
512MB |
Failover Controller 的 Java 堆棧大小 |
Java 進程堆棧內存的最大大小,改Java進程主要是:監控NameNode的健康狀態,監控NameNode在zookeeper中的健康狀態,監控以後管理NameNode的狀態 |
至少256MB |
JournalNode 的 Java 堆棧大小 |
Java 進程堆棧內存的最大大小,改Java進程主要是:實現兩個NameNode的數據同步,active的NameNode作變動的時候,會通知JournalNode 進程,standby的NameNode心跳獲取 |
至少256MB |
參數 |
解釋 |
值 |
Hive Metastore Server 的 Java 堆棧大小(字節) |
Java 進程堆棧內存的最大大小,改Java進程主要是:爲hive、impala、kudu提供元數據管理 |
1.5GB |
HiveServer2 的 Java 堆棧大小 |
因爲咱們的系統沒有使用到hiveserver2,因此設置小的值,同時能夠將它中止 |
1GB |
參數 |
解釋 |
值 |
Catalog Server 的 Java 堆棧大小 |
Java 進程堆棧內存的最大大小,改Java進程主要是:做爲meta訪問網關,從Hive Metastore等外部catalog中獲取元數據信息,放到impala本身的catalog結構中,impalad執行ddl命令時經過catalogd由其代爲執行,該更新則由statestored廣播 |
最少256MB |
Impala Daemon 內存限制 |
Java 進程堆棧內存的最大大小,改Java進程主要是:做爲客戶端,接受客戶的查詢請求,生成查詢計劃樹,把查詢計劃分發給其餘的Impala Daemon(包括本身),被分配的Impala Daemon讀寫數據進行查詢,並返回改客戶端 |
1GB |
參數 |
解釋 |
值 |
Java Heap Size of Broker |
kafka broker java 進程堆棧內存的最大大小 |
至少1GB |
參數 |
解釋 |
值 |
Kudu Tablet Server Hard Memory Limit |
kudu tablet server最大能使用的內存,kudu寫入數據的時候,是將數據先緩存到內存,而後保存到磁盤,如何設置太低,會影響寫入的性能 |
3GB |
Kudu Tablet Server Block Cache Capacity |
kudu tablet 塊緩存的最大內存量 |
2GB |
maintenance_manager_num_threads |
kudu對數據管理的時候最大顯成熟 |
4 |
參數 |
解釋 |
值 |
Java Heap Size of History Server in Bytes |
spark history server java 進程堆棧內存的最大大小 |
至少512MB |
參數 |
解釋 |
值 |
JobHistory Server 的 Java 堆棧大小 |
java 進程堆棧內存的最大大小 |
512MB |
NodeManager 的 Java 堆棧 |
java 進程堆棧內存的最大大小 |
512MB |
容器內存 |
每一個nodemanager爲最大可分配的內存 |
9GB |
ResourceManager 的 Java 堆棧大小 |
java 進程堆棧內存的最大大小 |
512MB |
最小容器內存 |
單個任務可申請的最少內存量 |
1GB |
容器內存增量 |
單個任務可申請的內存的增量 |
512MB |
最大容器內存 |
單個任務可申請的最大內存量 |
6GB |
容器虛擬 CPU 內核 |
每一個nodemanager爲最大可分配的內核數量 |
6 |
最小容器虛擬 CPU 內核數量 |
單個任務可申請的最小內核數量 |
1 |
容器虛擬 CPU 內核增量 |
單個任務申請的內核增量 |
1 |
最大容器虛擬 CPU 內核數量 |
單個任務可申請的最大內核數量 |
1 |
參數 |
解釋 |
值 |
ZooKeeper Server 的 Java 堆棧大小 |
java 進程堆棧內存的最大大小 |
至少512MB |
參數 |
解釋 |
值 |
Activity Monitor 的 Java 堆棧大小 |
|
至少1GB |
Alert Publisher 的 Java 堆棧 |
|
至少256MB |
EventServer 的 Java 堆棧大小 |
|
至少1GB |
Host Monitor 的 Java 堆棧大小 |
|
至少1GB |
Host Monitor 的最大非 Java 內存 |
|
至少1.5GB |
Service Monitor 的 Java 堆棧大小 |
|
至少1GB |
Service Monitor 的最大非 Java 內存 |
|
至少1.5GB |
改後
改後
改後