Hadoop集群配置(二)免密登录和集群配置
寫在開頭:
難難難道德玄,不對知音不可談,對了知音談幾句,不對知音枉費舌尖~~
咱們書接上回,上一篇寫完了基礎環(huán)境的配置,這篇就來說碩同樣重要的免密登錄,當然還有Hadoop集群的配置。
2.1 三臺linux服務器環(huán)境準備
1. 三臺機器IP設置
三臺機器修改ip地址:
# 對網(wǎng)庫進行設置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 # hadoop版本IP設置 BOOTPROTO="static" IPADDR=192.168.32.100 NETMASK=255.255.255.0 GATEWAY=192.168.32.1 DNS1=8.8.8.8# CDH 版本IP設置 IPADDR=192.168.179.12 NETMASK=255.255.255.0 GATEWAY=192.168.179.2 DNS1=8.8.8.8# 重啟網(wǎng)卡 service network restart準備三臺linux機器,IP地址分別設置成為:
第一臺機器IP地址:192.168.32.100 第二臺機器IP地址:192.168.32.110 第三臺機器IP地址:192.168.32.1202. 三臺機器關閉防火墻
三臺機器在root用戶下執(zhí)行以下命令關閉防火墻
systemctl stop firewalld systemctl disable firewalld3. 三臺機器關閉selinux
三臺機器在root用戶下執(zhí)行以下命令關閉selinux
三臺機器執(zhí)行以下命令,關閉selinux
4. 三臺機器更改主機名
三臺機器分別更改主機名
第一臺主機名更改為:node01.hadoop.com 第二臺主機名更改為:node02.hadoop.com 第三臺主機名更改為:node03.hadoop.com第一臺機器執(zhí)行以下命令修改主機名
vim /etc/hostname node01.hadoop.com第二臺機器執(zhí)行以下命令修改主機名
vim /etc/hostname node02.hadoop.com第三臺機器執(zhí)行以下命令修改主機名
vim /etc/hostname node03.hadoop.com5. 三臺機器更改主機名與IP地址映射
三臺機器執(zhí)行以下命令更改主機名與IP地址映射關系
vim /etc/hosts192.168.179.100 node01.hadoop.com node01 192.168.179.110 node02.hadoop.com node02 192.168.179.120 node03.hadoop.com node036. 三臺機器同步時間
三臺機器執(zhí)行以下命令定時同步阿里云服務器時間
yum -y install ntpdatecrontab -e */1 * * * * /usr/sbin/ntpdate time1.aliyun.com7. 三臺機器添加普通用戶
三臺linux服務器統(tǒng)一添加普通用戶hadoop,并給以sudo權限,用于以后所有的大數(shù)據(jù)軟件的安裝
并統(tǒng)一設置普通用戶的密碼為 123456
三臺機器為普通用戶添加sudo權限
visudo hadoop ALL=(ALL) ALL8. 三臺定義統(tǒng)一目錄
定義三臺linux服務器軟件壓縮包存放目錄,以及解壓后安裝目錄,三臺機器執(zhí)行以下命令,創(chuàng)建兩個文件夾,一個用于存放軟件壓縮包目錄,一個用于存放解壓后目錄
mkdir -p /kkb/soft # 軟件壓縮包存放目錄mkdir -p /kkb/install # 軟件解壓后存放目錄chown -R hadoop:hadoop /kkb # 將文件夾權限更改為hadoop用戶9. 三臺機器安裝jdk
使用hadoop用戶來重新連接三臺機器,然后使用hadoop用戶來安裝jdk軟件
上傳壓縮包到第一臺服務器的/kkb/soft下面,然后進行解壓,配置環(huán)境變量即可,三臺機器都依次安裝即可
cd /kkb/soft/tar -zxf jdk-8u141-linux-x64.tar.gz -C /kkb/install/ sudo vim /etc/profile#添加以下配置內(nèi)容,配置jdk環(huán)境變量 export JAVA_HOME=/kkb/install/jdk1.8.0_141 export PATH=:$JAVA_HOME/bin:$PATH10. hadoop用戶免密碼登錄
三臺機器在hadoop用戶下執(zhí)行以下命令生成公鑰與私鑰
ssh-keygen -t rsa 三臺機器在hadoop用戶下,執(zhí)行以下命令將公鑰拷貝到node01服務器上面去 ssh-copy-id node01 node01在hadoop用戶下,執(zhí)行以下命令,將authorized_keys拷貝到node02與node03服務器 cd /home/hadoop/.ssh/ scp authorized_keys node02:$PWD scp authorized_keys node03:$PWD11. 三臺機器關機重啟
三臺機器在root用戶下執(zhí)行以下命令,實現(xiàn)關機重啟
reboot -h now2.2、三臺機器安裝zookeeper集群
注意事項:三臺機器一定要保證時鐘同步
1. 下載zookeeeper的壓縮包,下載網(wǎng)址如下
http://archive.cloudera.com/cdh5/cdh/5/
在這個網(wǎng)址下載我們使用的zk版本為zookeeper-3.4.5-cdh5.14.2.tar.gz
下載完成之后,上傳到我們的node01的/kkb/soft路徑下準備進行安裝
2.解壓
node01執(zhí)行以下命令解壓zookeeper的壓縮包到node01服務器的/kkb/install路徑下去,然后準備進行安裝
cd /kkb/softtar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /kkb/install/3. 修改配置文件
第一臺機器修改配置文件
cd /kkb/install/zookeeper-3.4.5-cdh5.14.2/confcp zoo_sample.cfg zoo.cfgmkdir -p /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatasvim zoo.cfg dataDir=/kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas autopurge.snapRetainCount=3 autopurge.purgeInterval=1server.1=node01:2888:3888 server.2=node02:2888:3888 server.3=node03:2888:38884. 添加myid配置
在第一臺機器的/kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/
這個路徑下創(chuàng)建一個文件,文件名為myid ,文件內(nèi)容為1
echo 1 > /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid5. 安裝包分發(fā)并修改myid的值
安裝包分發(fā)到其他機器
第一臺機器上面執(zhí)行以下兩個命令 scp -r /kkb/install/zookeeper-3.4.5-cdh5.14.2/ node02:/kkb/install/ scp -r /kkb/install/zookeeper-3.4.5-cdh5.14.2/ node03:/kkb/install/第二臺機器上修改myid的值為2 直接在第二臺機器任意路徑執(zhí)行以下命令 echo 2 > /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid第三臺機器上修改myid的值為3 直接在第三臺機器任意路徑執(zhí)行以下命令 echo 3 > /kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid6.三臺機器啟動zookeeper服務
三臺機器啟動zookeeper服務
這個命令三臺機器都要執(zhí)行
/kkb/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh start查看啟動狀態(tài)/kkb/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh status2.3 hadoop環(huán)境安裝
1、CDH軟件版本重新進行編譯
1、為什么要編譯hadoop
由于CDH的所有安裝包版本都給出了對應的軟件版本,一般情況下是不需要自己進行編譯的,但是由于cdh給出的hadoop的安裝包沒有提供帶C程序訪問的接口,所以我們在使用本地庫(本地庫可以用來做壓縮,以及支持C程序等等)的時候就會出問題,好了廢話不多說,接下來看如何編譯
2、編譯環(huán)境的準備
2.1:準備linux環(huán)境
準備一臺linux環(huán)境,內(nèi)存4G或以上,硬盤40G或以上,我這里使用的是Centos6.9 64位的操作系統(tǒng)(注意:一定要使用64位的操作系統(tǒng))
2.2:虛擬機聯(lián)網(wǎng),關閉防火墻,關閉selinux
關閉防火墻命令:service iptables stop chkconfig iptables off 關閉selinux vim /etc/selinux/config[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xrfvdvNl-1621359108869)(%E5%A4%A7%E6%95%B0%E6%8D%AE%E8%AF%BE%E7%A8%8B%E5%89%8D%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.assets/1573482881980.png)]
2.3:安裝jdk1.7
注意:親測證明hadoop-2.6.0-cdh5.14.2 這個版本的編譯,只能使用jdk1.7,如果使用jdk1.8那么就會報錯
注意:這里一定不要使用jdk1.8,親測jdk1.8會出現(xiàn)錯誤
將我們jdk的安裝包上傳到/kkb/soft(我這里使用的是jdk1.7.0_71這個版本)
解壓我們的jdk壓縮包
統(tǒng)一兩個路徑
mkdir -p /kkb/soft mkdir -p /kkb/install cd /kkb/soft tar -zxvf jdk-7u71-linux-x64.tar.gz -C ../servers/配置環(huán)境變量
vim /etc/profileexport JAVA_HOME=/kkb/install/jdk1.7.0_71export PATH=:$JAVA_HOME/bin:$PATH 讓修改立即生效source /etc/profile2.4:安裝maven
這里使用maven3.x以上的版本應該都可以,不建議使用太高的版本,強烈建議使用3.0.5的版本即可
將maven的安裝包上傳到/kkb/soft
然后解壓maven的安裝包到/kkb/install
cd /kkb/soft/tar -zxvf apache-maven-3.0.5-bin.tar.gz -C ../servers/配置maven的環(huán)境變量
vim /etc/profileexport MAVEN_HOME=/kkb/install/apache-maven-3.0.5export MAVEN_OPTS="-Xms4096m -Xmx4096m"export PATH=:$MAVEN_HOME/bin:$PATH 讓修改立即生效source /etc/profile2.5:安裝findbugs
下載findbugs
cd /kkb/softwget --no-check-certificate https://sourceforge.net/projects/findbugs/files/findbugs/1.3.9/findbugs-1.3.9.tar.gz/download -O findbugs-1.3.9.tar.gz解壓findbugstar -zxvf findbugs-1.3.9.tar.gz -C ../install/配置findbugs的環(huán)境變量vim /etc/profileexport JAVA_HOME=/kkb/install/jdk1.7.0_75export PATH=:$JAVA_HOME/bin:$PATHexport MAVEN_HOME=/kkb/install/apache-maven-3.0.5export PATH=:$MAVEN_HOME/bin:$PATHexport FINDBUGS_HOME=/kkb/install/findbugs-1.3.9 export PATH=:$FINDBUGS_HOME/bin:$PATH 讓修改立即生效source /etc/profile2.6:在線安裝一些依賴包
yum install autoconf automake libtool cmakeyum install ncurses-develyum install openssl-develyum install lzo-devel zlib-devel gcc gcc-c++bzip2壓縮需要的依賴包yum install -y bzip2-devel2.7:安裝protobuf
protobuf下載百度網(wǎng)盤地址
https://pan.baidu.com/s/1pJlZubT
下載之后上傳到 /kkb/soft
解壓protobuf并進行編譯
cd /kkb/softtar -zxvf protobuf-2.5.0.tar.gz -C ../servers/cd /kkb/install/protobuf-2.5.0./configuremake && make install2.8、安裝snappy
snappy下載地址:
http://code.google.com/p/snappy/
cd /kkb/soft/tar -zxf snappy-1.1.1.tar.gz -C ../servers/cd ../servers/snappy-1.1.1/./configuremake && make install2.9:下載cdh源碼準備編譯
源碼下載地址為:
http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.2-src.tar.gz
下載源碼進行編譯
cd /kkb/softwget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.2-src.tar.gztar -zxvf hadoop-2.6.0-cdh5.14.2-src.tar.gz -C ../servers/cd /kkb/install/hadoop-2.6.0-cdh5.14.2編譯不支持snappy壓縮:mvn package -Pdist,native -DskipTests –Dtar 編譯支持snappy壓縮:mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X編譯完成之后我們需要的壓縮包就在下面這個路徑里面2.10:常見編譯錯誤
如果編譯時候出現(xiàn)這個錯誤:
An Ant BuildException has occured: exec returned: 2
這是因為tomcat的壓縮包沒有下載完成,需要自己下載一個對應版本的apache-tomcat-6.0.53.tar.gz的壓縮包放到指定路徑下面去即可
這兩個路徑下面需要放上這個tomcat的 壓縮包
/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoop-common-project/hadoop-kms/downloads2、hadoop集群的安裝
安裝環(huán)境服務部署規(guī)劃
| HDFS | NameNode | ||
| HDFS | SecondaryNameNode | ||
| HDFS | DataNode | DataNode | DataNode |
| YARN | ResourceManager | ||
| YARN | NodeManager | NodeManager | NodeManager |
| 歷史日志服務器 | JobHistoryServer |
第一步:上傳壓縮包并解壓
將我們重新編譯之后支持snappy壓縮的hadoop包上傳到第一臺服務器并解壓
第一臺機器執(zhí)行以下命令
cd /kkb/soft/tar -zxvf hadoop-2.6.0-cdh5.14.2_after_compile.tar.gz -C ../install/第二步:查看hadoop支持的壓縮方式以及本地庫
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2bin/hadoop checknative如果出現(xiàn)openssl為false,那么所有機器在線安裝openssl即可,執(zhí)行以下命令,虛擬機聯(lián)網(wǎng)之后就可以在線進行安裝了
yum -y install openssl-devel第三步:修改配置文件
修改core-site.xml
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoopvim core-site.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://node01:8020</value></property><property><name>hadoop.tmp.dir</name><value>/kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas</value></property><!-- 緩沖區(qū)大小,實際工作中根據(jù)服務器性能動態(tài)調(diào)整 --><property><name>io.file.buffer.size</name><value>4096</value></property><!-- 開啟hdfs的垃圾桶機制,刪除掉的數(shù)據(jù)可以從垃圾桶中回收,單位分鐘 --><property><name>fs.trash.interval</name><value>10080</value></property> </configuration>修改hdfs-site.xml
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoopvim hdfs-site.xml<configuration><!-- NameNode存儲元數(shù)據(jù)信息的路徑,實際工作中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 --> <!-- 集群動態(tài)上下線 <property><name>dfs.hosts</name><value>/kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/accept_host</value></property><property><name>dfs.hosts.exclude</name><value>/kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/deny_host</value></property>--><property><name>dfs.namenode.secondary.http-address</name><value>node01:50090</value></property><property><name>dfs.namenode.http-address</name><value>node01:50070</value></property><property><name>dfs.namenode.name.dir</name><value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas</value></property><!-- 定義dataNode數(shù)據(jù)存儲的節(jié)點位置,實際工作中,一般先確定磁盤的掛載目錄,然后多個目錄用,進行分割 --><property><name>dfs.datanode.data.dir</name><value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas</value></property><property><name>dfs.namenode.edits.dir</name><value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name</value></property><property><name>dfs.namenode.checkpoint.edits.dir</name><value>file:///kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.permissions</name><value>false</value></property> <property><name>dfs.blocksize</name><value>134217728</value></property> </configuration>修改hadoop-env.sh
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoopvim hadoop-env.sh export JAVA_HOME=/kkb/install/jdk1.8.0_141修改mapred-site.xml
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoopvim mapred-site.xml<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><property><name>mapreduce.jobhistory.address</name><value>node01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node01:19888</value></property> </configuration>修改yarn-site.xml
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoopvim yarn-site.xml<configuration><property><name>yarn.resourcemanager.hostname</name><value>node01</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property> </configuration>修改slaves文件
第一臺機器執(zhí)行以下命令
cd /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoopvim slavesnode01 node02 node03第四步:創(chuàng)建文件存放目錄
第一臺機器執(zhí)行以下命令
node01機器上面創(chuàng)建以下目錄
mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name mkdir -p /kkb/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits第五步:安裝包的分發(fā)
第一臺機器執(zhí)行以下命令
cd /kkb/install/scp -r hadoop-2.6.0-cdh5.14.2/ node02:$PWD scp -r hadoop-2.6.0-cdh5.14.2/ node03:$PWD第六步:配置hadoop的環(huán)境變量
三臺機器都要進行配置hadoop的環(huán)境變量
三臺機器執(zhí)行以下命令
sudo vim /etc/profileexport HADOOP_HOME=/kkb/install/hadoop-2.6.0-cdh5.14.2 export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH配置完成之后生效source /etc/profile第七步:集群啟動
要啟動 Hadoop 集群,需要啟動 HDFS 和 YARN 兩個集群。
注意:首次啟動HDFS時,必須對其進行格式化操作。本質(zhì)上是一些清理和準備工作,因為此時的 HDFS 在物理上還是不存在的。
bin/hdfs namenode -format或者bin/hadoop namenode –format單個節(jié)點逐一啟動
在主節(jié)點上使用以下命令啟動 HDFS NameNode: hadoop-daemon.sh start namenode 在每個從節(jié)點上使用以下命令啟動 HDFS DataNode: hadoop-daemon.sh start datanode 在主節(jié)點上使用以下命令啟動 YARN ResourceManager: yarn-daemon.sh start resourcemanager 在每個從節(jié)點上使用以下命令啟動 YARN nodemanager: yarn-daemon.sh start nodemanager 以上腳本位于$HADOOP_PREFIX/sbin/目錄下。如果想要停止某個節(jié)點上某個角色,只需要把命令中的start 改為stop 即可。腳本一鍵啟動
如果配置了 etc/hadoop/slaves 和 ssh 免密登錄,則可以使用程序腳本啟動所有Hadoop 兩個集群的相關進程,在主節(jié)點所設定的機器上執(zhí)行。
啟動集群
node01節(jié)點上執(zhí)行以下命令
第一臺機器執(zhí)行以下命令cd /kkb/install/hadoop-2.6.0-cdh5.14.2/ sbin/start-dfs.sh sbin/start-yarn.sh sbin/mr-jobhistory-daemon.sh start historyserver停止集群:sbin/stop-dfs.shsbin/stop-yarn.shmr -job history-daemon.sh stop historyserver第八步:瀏覽器查看啟動頁面
hdfs集群訪問地址
http://192.168.32.100:50070/dfshealth.html#tab-overview
yarn集群訪問地址
http://192.168.32.100:8088/cluster
jobhistory訪問地址:
http://192.168.32.100:19888/jobhistory
2.4 寫在最后:
OK,經(jīng)過兩篇帖子,Hadoop集群搭建的過程完成了,希望能幫助到更多的小伙伴。
知識總結不易,歡迎各位大佬指正。同時也歡迎大家關注我的公眾號,上面也有我定期分享的學習、工作總結。
總結
以上是生活随笔為你收集整理的Hadoop集群配置(二)免密登录和集群配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java mail 设置参数
- 下一篇: AS3.0面向对象的写法,类和实例