一、準(zhǔn)備環(huán)境
1.1安裝
1)準(zhǔn)備若干臺機(jī)器
2)安裝配置系統(tǒng):CentOS-7.0-1406-x86_64-DVD.iso
3)安裝JAVA環(huán)境:jdk-8u131-linux-x64.gz
4)hadoop2.7.2:hadoop-2.7.2.tar.gz
1.2網(wǎng)絡(luò)配置
ifconfig -a 查看各臺機(jī)器的ip,相互ping一下,看是否可以ping通。
記錄個臺機(jī)器的ip。
二、配置CentOS
2.1配置hosts
# vi /etc/hosts
編輯內(nèi)容:
202.196.37.40 master
202.196.37.41 slave1
202.196.37.42 slave2
202.196.37.43 slave3
.......ip地址替換為真實(shí)ip
2.2關(guān)閉防火墻
# systemctl status firewalld.service #檢查防火墻狀態(tài)
# systemctl stop firewalld.service #關(guān)閉防火墻
# systemctl disable firewalld.service #禁止開機(jī)啟動防火墻
2.3時間同步
# yum install -y ntp #安裝ntp服務(wù)
# ntpdate cn.pool.ntp.org #同步網(wǎng)絡(luò)時間
2.4安裝配置jdk
上傳jdk-8u131-linux-x64.gz 安裝包到root根目錄
# mkdir /usr/java
# tar -zxvf jdk-8u131-linux-x64.gz -C/usr/java/
# rm -rfjdk-8u131-linux-x64.gz
2.5各個主機(jī)之間復(fù)制jdk
# scp -r /usr/java slave1:/usr
# scp -r /usr/java slave2:/usr
# scp -r /usr/java slave3:/usr
.......
2.6配置各個主機(jī)jdk環(huán)境變量
# vi /etc/profile
編輯內(nèi)容
export JAVA_HOME=/usr/java/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# source/etc/profile #使配置文件生效
# java -version #查看java版本
2.7配置ssh無密鑰訪問
分別在各個主機(jī)上檢查ssh服務(wù)狀態(tài):
# systemctl status sshd.service #檢查ssh服務(wù)狀態(tài)
# yum install openssh-server openssh-clients #安裝ssh服務(wù),如果已安裝,則不用執(zhí)行該步驟
# systemctl start sshd.service #啟動ssh服務(wù),如果已安裝,則不用執(zhí)行該步驟
分別在各個主機(jī)上生成密鑰
# ssh-keygen -t rsa #生成密鑰
在slave1上
cp ~/.ssh/id_rsa.pub ~/.ssh/slave1.id_rsa.pub
scp ~/.ssh/slave1.id_rsa.pub master:~/.ssh
在slave2上
cp ~/.ssh/id_rsa.pub ~/.ssh/slave2.id_rsa.pub
scp ~/.ssh/slave2.id_rsa.pub master:~/.ssh
以此類推。
在master上
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
cat slave1.id_rsa.pub >>authorized_keys
cat slave2.id_rsa.pub >>authorized_keys
scp authorized_keys slave1:~/.ssh
scp authorized_keys slave2:~/.ssh
scp authorized_keys slave3:~/.ssh
三、安裝配置hadoop
3.1安裝hadoop
上傳hadoop-2.7.2.tar.gz安裝包到root根目錄
# tar -zxvf hadoop-2.7.2.tar.gz -C /usr
# rm -rf hadoop-2.7.2.tar.gz
# mkdir /usr/hadoop-2.7.2/tmp
# mkdir /usr/hadoop-2.7.2/logs
# mkdir /usr/hadoop-2.7.2/hdf
# mkdir/usr/hadoop-2.7.2/hdf/data
# mkdir /usr/hadoop-2.7.2/hdf/name
在hadoop-2.7.2/etc/hadoop目錄下
配置hadoop
修改hadoop-env.sh文件
增加 export JAVA_HOME=/usr/java/jdk1.8.0_91
修改yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_91
修改slaves
配置內(nèi)容:
刪除:localhost
添加:
slave1
slave2
slave3
修改core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop/hadoop-2.7.4/tmp</value>
</property>
</configuration>
修改hdfs-site.xml
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/hadoop-2.7.4/hdf/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/hadoop-2.7.4/hdf/name</value>
<final>true</final>
</property>
</configuration>
修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
各個主機(jī)之間復(fù)制hadoop
# scp -r /data/hadoop/hadoop-2.7.4 slave1:/data/hadoop
# scp -r /data/hadoop/hadoop-2.7.4 slave2:/data/hadoop
# scp -r /data/hadoop/hadoop-2.7.4 slave3:/data/hadoop
各個主機(jī)配置hadoop環(huán)境變量
# vi /etc/profile
編輯內(nèi)容:
export HADOOP_HOME=/data/hadoop/hadoop-2.7.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_LOG_DIR=/data/hadoop/hadoop-2.7.4/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
# source /etc/profile #使配置文件生效
3.2啟動hadoop
格式化namenode
# cd /data/hadoop/hadoop-2.7.4/sbin
# hdfs namenode -format
啟動
# cd /data/hadoop/hadoop-2.7.4/sbin
# start-all.sh
檢查進(jìn)程
# jps
master主機(jī)包含ResourceManager、SecondaryNameNode、NameNode等,則表示啟動成功,例如
2212 ResourceManager
2484 Jps
1917 NameNode
2078 SecondaryNameNode
![Uploading image_385194.png . . .]
各個slave主機(jī)包含DataNode、NodeManager等,則表示啟用成功,例如
17153 DataNode
17334 Jps
17241 NodeManager
運(yùn)行wordcount
由于hadoop自帶wordcount例程所以就可以直接調(diào)用了
在啟動hadoop之后
我們可以通過一下命令來對hdfs中的文件進(jìn)行操作
# hadoop fs -mkdir input
# hadoop fs -put input.txt /input
# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output/
出現(xiàn)以上結(jié)果就說明已經(jīng)成功了
查看輸出目錄
hadoop fs -ls /output
查看輸出結(jié)果
hadoop fs -cat /output/part-r-00000
出現(xiàn)類似以下結(jié)果
部分轉(zhuǎn)自http://blog.csdn.net/sinat_30569973/article/details/52232850