1.准備Linux環境
1.0先將虛擬機的網絡模式選為NAT
1.1修改主機名
hostnamectl set-hostname server1
1.2修改IP
修改配置文件方式(修改的是網卡信息 ip a 查看網卡),第一次啟動時沒有ip的,需要將 網卡配置之中 ONBOOT=yes, 然后重啟網絡
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="static" ### HWADDR="00:0C:29:3C:BF:E7" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c" IPADDR="192.168.1.101" ### NETMASK="255.255.255.0" ### GATEWAY="192.168.1.1" ###
1.3修改主機名和IP的映射關系(每台機器都要有)
192.168.33.101 server1
192.168.33.102 server2
192.168.33.103 server3
1.4關閉防火牆
#查看防火牆狀態 service iptables status #關閉防火牆 service iptables stop #查看防火牆開機啟動狀態 chkconfig iptables --list #關閉防火牆開機啟動 chkconfig iptables off
1.5 關閉linux服務器的圖形界面:
vi /etc/inittab
1.6重啟Linux
reboot
2.安裝JDK
#創建文件夾 mkdir /home/hadoop/app #解壓 tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app
2.3將java添加到環境變量中(如果在 .bashrc 之中配置了java環境變量,hadoop 是不需要指定 JAVA_HOME,如果在 /etc/profile 需要指定,因為 ssh 默認不會加載 /et/profile)
vim ~/.bashrc #在文件最后添加 export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585 export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source ~/.bashrc
3.安裝hadoop2.4.1(要保證以下文件都有讀寫權限)
先上傳hadoop的安裝包到服務器上去/home/hadoop/
分布式需要修改5個配置文件
3.1配置hadoop
vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
第二個:core-site.xml
<!-- 指定HADOOP所使用的文件系統schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://server1:9000</value> </property> <!--hadoop 的默認用戶--> <property> <name>hadoop.http.staticuser.user</name> <value>master</value> </property> <!--datanode.data.dir 存儲文件目錄, namenode.name.dir 元數據,namenode.edits.dir 日志目錄 三者都依賴於此目錄--> <property> <name>hadoop.tmp.dir</name> <value>/opt/modules/hadoop-2.7.0/data/tmp</value> </property>
第三個:hdfs-site.xml
<!--其他用戶使用hdfs 操作文件,是否進行驗證!--> <property> <name>dfs.permissions</name> <value>false</value> </property>
第四個:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--日志頁面的顯示 ip:port--> <property> <name>mapreduce.jobhistory.address</name> <value>sserver1:10020</value> </property> <!--運行 yarn 任務跳轉的頁面--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>server1:19888</value> </property>
第五個:yarn-site.xml
<property> <name>yarn.resourcemanager.hostname</name> <value>server1</value> </property> <!-- reducer獲取數據的方式,一種輔助 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--開啟日志聚集--> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!--日志存放的時間(s)--> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>100000</value> </property>
第六個 salves(代表着 DataNode個數, 在sbin/slaves 之中 ssh 遍歷連接)
server1
server2
server3
3.2將hadoop添加到環境變量
vim /etc/proflie export JAVA_HOME=/usr/java/jdk1.7.0_65 export HADOOP_HOME=/master/hadoop-2.4.1 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile
3.3 將 app 文件夾 配置到 其他的節點之上(節點信息與master配置信息是一樣的)
scp -r app/ hdp-node-01:/home/slave
3.4 格式化namenode(是對namenode進行初始化)
hdfs namenode -format (hadoop namenode -format)
3.5啟動hadoop
先啟動HDFS sbin/start-dfs.sh 再啟動YARN sbin/start-yarn.sh
3.6驗證是否啟動成功
使用jps命令驗證 27408 NameNode 28218 Jps 27643 SecondaryNameNode 28066 NodeManager 27803 ResourceManager 27512 DataNode http://192.168.1.101:50070 (HDFS管理界面) http://192.168.1.101:8088 (MR管理界面)
4.配置ssh免登陸
#生成ssh免登陸密鑰 #進入到我的home目錄 cd ~ ssh-keygen -t rsa #四個回車 #執行完這個命令后,會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰) # master ,authorized_keys 文件(新生成) ssh-copy-id -i ~/.ssh/id_rsa.pub localhost #slave, authorized_keys 文件(新生成),此處是在 /etc/hosts 寫入的(集群是相同的用戶名) ssh-copy-id -i ~/.ssh/id_rsa.pub server1
5,注:更改文件夾權限
更改文件夾權限 # 切換超級權限 su # 當前文件夾所有的用戶與組 chown -R hadoop:hadoop *