105
汽車大全
《Hadoop與大數據挖掘》一2.2.2 環境配置
本節書摘來華章計算機《Hadoop與大數據挖掘》一書中的第2章 ,第2.2.2節,張良均 樊 哲 位文超 劉名軍 許國傑 周 龍 焦正升 著 更多章節內容可以訪問雲棲社區“華章計算機”公眾號查看。
2.2.2 環境配置
1.安裝JDK
(1)文件下載
到www.oracle.com網站上下載自己係統對應JDK版本。文件名如jdk-7u-linux-x64.tar.gz,注意下載64位的版本。
(2)解壓文件
把下載下來的文件上傳到Linux機器,並解壓縮到某個路徑下,如/usr/local目錄。
mv jdk-7u<version>-linux-x64.tar.gz /usr/ local
tar zxvf jdk-7u<version>-linux-x64.tar.gz
(3)配置Java環境變量
編輯/etc/profile文件,在末尾加上Java配置,如代碼清單2-1所示。
代碼清單2-1 Java環境變量
#set Java environment
JAVA_HOME=/usr/local/jdk1.7.0_67
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
2.配置ssh無密碼登錄
1)生成公鑰和私鑰,執行ssh-keygen –t rsa,接著按3次Enter鍵即可,如代碼清單2-2所示。
代碼清單2-2 ssh無密碼登錄配置
[root@master opt]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
22:ec:f0:b6:2b:dc:54:d6:4f:ae:a0:a8:e6:3d:55:84 root@master
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| E . |
| .. |
| . o.. . |
| . ooo S+ |
| +.o.. o |
| . +=. . . |
| .=oo. . |
|+o o+. |
+-----------------+
在~/.ssh目錄生成兩個文件,id_rsa為私鑰,id_rsa.pub為公鑰。
2)設置hosts文件。在/etc/hosts文件中配置IP與HOSTNAME的映射(IP根據自己機器情況設置),如代碼清單2-3所示。
代碼清單2-3 hosts文件配置
192.168.0.130 master.centos.com master
192.168.0.131 slave1.centos.com slave1
192.168.0.132 slave2.centos.com slave2
192.168.0.133 slave3.centos.com slave3
3)導入公鑰到認證文件,執行ssh-copy-id命令,如代碼清單2-4所示。
代碼清單2-4 導入公鑰
[root@centos67 opt]# ssh-copy-id -i /root/.ssh/id_rsa.pub master
The authenticity of host 'master (192.168.0.130)' can't be established.
RSA key fingerprint is 09:7a:e4:ad:28:ce:ac:b6:0f:ea:99:82:fa:62:25:96.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'master,192.168.0.130' (RSA) to the list of known hosts.
root@master's password:
Now try logging into the machine, with "ssh 'master'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting
接著分別執行:
ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
ssh-copy-id -i /root/.ssh/id_rsa.pub slave2
ssh-copy-id -i /root/.ssh/id_rsa.pub slave3
即可導入公鑰到其他所有子節點。
4)驗證。打開終端,直接輸入ssh master、ssh slave1、ssh slave2、ssh slave3,如果可直接登錄,而不需要輸入密碼,則ssh無密碼登錄配置成功。
[root@master ~]# ssh master
Last login: Tue Nov 3 18:39:41 2015 from 192.168.0.1
3.配置NTP
配置NTP主要是為了進行集群間的時間同步,需要注意在master、slave1、slave2、slave3節點分別執行“yum install ntp”,即可安裝該軟件。
假設將Master節點作為NTP服務主節點,那麼其配置(修改/etc/ntp.conf文件)如代碼清單2-5所示。
**代碼清單2-5 NTP主節點配置
注釋掉server開頭的行,並添加
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0**
fudge 127.127.1.0 stratum 10
在slave1~slave3配置NTP,同樣修改/etc/ntp.conf文件,內容如代碼清單2-6所示。
代碼清單2-6 NTP從節點配置
#注釋掉server開頭的行,並添加
server master
在master、slave1、slave2、slave3節點執行“service ntpd start &chkconfig ntpd on”,即可啟動並永久啟動NTP服務。
4.配置Hadoop集群
上傳Hadoop安裝包到master機器,並解壓縮到/usr/local目錄,使用代碼:
tar -zxf hadoop-2.6.0.tar.gz -C /usr/local
Hadoop配置涉及的配置文件有以下7個:
- $HADOOP_HOME/etc/hadoop/hadoop-env.sh
- $HADOOP_HOME/etc/hadoop/yarn-env.sh
- $HADOOP_HOME /etc/hadoop/slaves
- $HADOOP_HOME /etc/hadoop/core-site.xml
- $HADOOP_HOME/etc/hadoop/hdfs-site.xml
- $HADOOP_HOME/etc/hadoop/mapred-site.xml
- $HADOOP_HOME /etc/hadoop/yarn-site.xml
各個配置文件修改如下所示。
1)配置文件1:hadoop-env.sh。
該文件是Hadoop運行基本環境的配置,需要修改為JDK的實際位置。故在該文件中修改JAVA_HOME值為本機安裝位置,如代碼清單2-7所示。
代碼清單2-7 hadoop-env.sh配置
# some Java parameters
export JAVA_HOME=/usr/local/jdk1.7.0_67
2)配置文件2:yarn-env.sh。
該文件是YARN框架運行環境的配置,同樣需要修改Java所在位置。在該文件中修改JAVA_HOME值為本機安裝位置,如代碼清單2-8所示。
代碼清單2-8 yarn-env.sh配置
# some Java parameters
export JAVA_HOME=/usr/local/jdk1.7.0_67
3)配置文件3:slaves。
該文件裏麵保存所有slave節點的信息,如代碼清單2-9所示。
代碼清單2-9 slaves配置
slave1
slave2
slave3
4)配置文件4:core-site.xml,配置內容如代碼清單2-10所示。
代碼清單2-10 core-site.xml配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
</property>
</configuration>
這個是Hadoop的核心配置文件,這裏需要配置兩個屬性:fs.defaultFS配置了Hadoop的HDFS係統的命名,位置為主機的8020端口,這裏需要注意替換hdfs://master:8020,中的斜體master,該名字為NameNode所在機器的機器名;hadoop.tmp.dir配置了Hadoop的臨時文件的位置。
5)配置文件5:hdfs-site.xml,配置內容如代碼清單2-11所示。
代碼清單2-11 hdfs-site.xml配置
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
這個是HDFS相關的配置文件,dfs.namenode.name.dir和dfs.datanode.data.dir分別指定了NameNode元數據和DataNode數據存儲位置;dfs.namenode.secondary.http-address配置的是SecondaryNameNode的地址,同樣需要注意修改“master”為實際Secondary-NameNode地址;dfs.replication配置了文件塊的副本數,默認就是3個,所以這裏也可以不配置。
6)配置文件6:mapred-site.xml,配置內容如代碼清單2-12所示。
代碼清單2-12 mapred-site.xml配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- jobhistory properties -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
這個是MapReduce相關的配置,由於Hadoop2.x使用了YARN框架,所以必須在ma-preduce.framework.name屬性下配置yarn。mapreduce.jobhistory.address和mapreduce.job-history.webapp.address是與JobHistoryServer相關的配置,即運行MapReduce任務的日誌相關服務,這裏同樣需要注意修改“master”為實際服務所在機器的機器名。
7)配置文件7:yarn-site.xml,配置內容如代碼清單2-13所示。
代碼清單2-13 yarn-site.xml配置
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/tmp/logs</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>https://master:19888/jobhistory/logs/</value>
<description>URL for job history server</description>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
該文件為YARN框架的配置,在最開始命名了一個名為yarn.resourcemanager.hostname的變量,這樣在後麵YARN的相關配置中就可以直接引用該變量了。其他配置保持不變即可。
將配置好的Hadoop複製到其他節點,直接執行如代碼清單2-14所示命令即可(注意,本文使用的從節點名字是slave1、slave2、slave3,讀者可根據自己機器實際情況修改)。
代碼清單2-14 拷貝Hadoop安裝包到其他子節點
scp -r /usr/local/hadoop-2.6.0/ slave1:/usr/local/
scp -r /usr/local/hadoop-2.6.0/ slave2:/usr/local/
scp -r /usr/local/hadoop-2.6.0/ slave3:/usr/local/
5.格式化NameNode
做完Hadoop的所有配置後,即可執行格式化NameNode操作。該操作會在NameNode所在機器初始化一些HDFS的相關配置,其命令如代碼清單2-15所示。
代碼清單2-15 格式化NameNode
$HADOOP_HOME/bin/hdfs namenode -format
若出現“Storage directory /data/hadoop/hdfs/name has been successsully formatted”的提示,則格式化成功(注意,/data/hadoop/hdfs/name目錄就是前麵配置的dfs.namenode.name.dir的值)。
最後更新:2017-06-26 09:32:00
上一篇:
《Hadoop與大數據挖掘》一2.2.3 集群啟動關閉與監控
下一篇:
《Hadoop與大數據挖掘》一2.2 Hadoop配置及IDE配置
hazelcast的坑爹事
Apache Storm 官方文檔 —— Storm 與 Kestrel
MySQL導入.sql文件及常用命令
筆記:Driving Architectural Simplicity - The Value, Challenge, and Practice of Simple Solutions
WML開發介紹
利用FRIDA攻擊Android應用程序(二)
小規模的流處理框架.Part 2: RxJava 1.x/2.x
在web和非web環境都可以使用的屬性文件屬性讀取java代碼
使用jdbc訪問日誌服務
點擊超2億 “軍裝照”背後不為人知的技術故事