一、安裝jdk之前卸載open jdk ?
虛擬機掛載命令(Mount -t iso9660 /dev/cdrom /mnt)
虛擬機安裝完成后重啟系統
1.(rpm -qa|grep java)命令 查看所安裝的java組件
2.使用 (rpm -e --nodeps +java組件名) 命令卸載java組件
3.進入JDK文件存放目錄使用 (./+文件名) ?命令 執行安裝JDK操作
4.回到主目錄進入/etc/目錄使用vi命令修改profile文件配置JAVA環境變量
添加如下參數:
export JAVA_HOME=/usr/java/jdk1.6.0_24
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
配置完成后重啟系統
二、安裝并配置Hadoop
1.復制Hadoop安裝包到其他目錄
2.使用 (tar -zxvf +Hadoop文件路徑) 命令 解壓到當前目錄
3.進入Hadoop安裝目錄下的conf文件夾
4.使用vi命令修改hadoop-env.sh文件添加如下參數
export JAVA_HOME=/usr/java/jdk1.6.0_24 (jdk安裝目錄)
5.使用(hostname)命令查看主機名稱
6.使用(vi /etc/hosts)命令修改host文件配置, 使用(chown -R 用戶名 Hadoop安裝路徑)命令來修改Hadoop安裝文件夾的所屬者
7.在最后一行中加入127.0.0.1 ? ? 主機名 并保存
8.配置core-site.xml文件:在configuration節點中加入
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
9.配置hdfs-site.xml文件:在configuration節點中加入
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
10.配置mapred-site.xml文件:在configuration節點中加入
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
三、免密碼SSH登錄設置
1.使用 (ssh-keygen -t rsa)命令生成密鑰對
2.使用(cd ~)命令 進入用戶主目錄并使用(ls -f)命令查看目錄
3.進入.ssh目錄 執行 (cp id_rsa.pub authorized_keys)命令 追加密鑰
4.使用(ssh localhost)命令實現SSH連接
配置ssh免密碼登錄(三個節點m1、s1、s2)
實現SSH免密碼登錄的另一種方式:
主節點配置:
首先到用戶主目錄(cd ?~),ls ?-a查看文件,其中一個為“.ssh”,該文件價是存放密鑰的。待會我們生成的密鑰都會放到這個文件夾中。
現在執行命令生成密鑰:ssh-keygen -t rsa -P ""(使用rsa加密方式生成密鑰)回車后,會提示三次輸入信息,我們直接回車即可。
進入文件夾cd ?.ssh (進入文件夾后可以執行ls ?-a 查看文件)
將生成的公鑰id_rsa.pub 內容追加到authorized_keys(執行命令:cat id_rsa.pub >>?authorized_keys)
從節點配置:
以同樣的方式生成秘鑰(ssh-keygen -t rsa -P ""),然后s1和s2將生成的id_rsa.pub公鑰追加到m1的authorized_keys中)
在s1中執行命令:scp id_rsa.pub m1:/root/.ssh/id_rsa.pub.s1 ,在s2中執行命令:scp id_rsa.pub m1:/root/.ssh/id_rsa.pub.s2
進入m1執行命令:cat id_rsa.pub.s1 >> authorized_keys ,cat id_rsa.pub.s1 >> authorized_keys
最后將生成的包含三個節點的秘鑰的authorized_keys 復制到s1和s2的.ssh目錄下(?scp authorized_keys s1:/root/.ssh/,?scp authorized_keys s2:/root/.ssh/)
四、啟動及停止Hadoop
1.格式化分布式文件系統(HDFS)
進入Hadoop主目錄下使用命令:(bin/hadoop namenode-format)
2.啟動Hadoop守護進程
進入Hadoop主目錄下使用命令:(bin/start-all.sh)
執行完畢后會在本機啟動NameNode、DataNode、JobTracker、TaskTracker、Secondary NameNode五個Java進程
3.使用jps命令查看當前進程
4.停止Hadoop守護進程
進入Hadoop主目錄下使用命令:(bin/stop-all.sh)
五、運行WordCount測試用例
1.在根目錄下新建input文件,并新增test1.txt和test2.txt文件,內容隨意寫
2.使用(chown -R 用戶名 路徑)命令修改input文件所屬者
3.進入Hadoop安裝目錄使用(bin/hadoop dfs -put ?/完整本地路徑/ ? ?/完整hdfs路徑/)命令將input文件夾放入hdfs文件系統中
4.使用(bin/hadoop jar hadoop-0.20.2-examples.jar wordcount ? /待計算文件的hdfs完整路徑/ ?/結果輸出文件夾hdfs完整路徑) 命令進行計算
六、完全分布式模式配置
1.配置三臺Linux虛擬機,一臺桌面版,兩臺服務器版
2.在VMware中更改虛擬網絡設置,設定host-only模式下的子網段
3.在Linux虛擬機中使用(dhclient eth0)命令加載第一塊網卡
4.使用(ifconfig)命令查看網絡狀態及IP地址
5.在作為namenode和datanode節點的機器中配置etc/hosts文件,在最后一行中加入:
192.168.10.129(namenode節點IP地址) ? ? namenode節點名稱
192.168.10.128(datanode0節點IP地址) ? ? datanode0節點名稱
192.168.10.130(datanode1節點IP地址) ? ? ?datanode1節點名稱
6.建立相同的用戶hadoop,使用(adduser +用戶名)命令,刪除用戶使用(userdel -Z +用戶名命令)
使用(passwd +用戶名)命令設置hadoop用戶的密碼,輸入兩次即可
/etc/sudoers 修改root權限
7.在所有機器的/home/用戶名/目錄下建立.ssh目錄,并使用 ssh-keygen -t rsa和ssh-keygen -t dsa命令生成密鑰對
8.進入~/.ssh目錄使用如下命令
chmod -R 755 /home/hadoop改變目錄權限
cp id_rsa.pub authorized_keys (將生成的密鑰追加到authorized_keys中)
cp id_dsa.pub authorized_keys (將生成的密鑰追加到authorized_keys中)
scp authorized_keys ?datanode0節點名稱:/home/grid/.ssh
scp authorized_keys ?datanode1節點名稱:/home/grid/.ssh
9.進入所有機器的.ssh目錄下,使用如下命令更改authorized_keys的許可權限
chmod -R 700 ~/.ssh(chmod 644 authorized_keys ?0.20.2版本無效)
10.所有機器的Hadoop程序需安裝至相同目錄下
11.在hadoop安裝目錄下的conf文件夾中修改Master和Slaves兩個配置文件,分別為主節點和從節點(每個主機名為一行)
12.修改core-site.xml、hdfs-site.xml和mapred-site.xml三個配置文件
sudoservice iptables stop# 關閉防火墻服務
sudochkconfig iptables off
Hadoop-2.7.1配置文件:
core-site.xml:
(configuration)
(property)
(name)fs.defaultFS(/name)
(value)hdfs://master:9000(/value)
(/property)
(property)
(name)hadoop.tmp.dir(/name)
(value)file:/usr/local/hadoop/hadoop-2.7.1/tmp(/value)
(/property)
(property)
(name)io.file.buffer.size(/name)
(value)131702(/value)
(/property)
(/configuration)
hdfs-site.xml:
(configuration)
(property)
(name)dfs.namenode.name.dir(/name)
(value)file:/usr/local/hadoop/hadoop-2.7.1/hdfs/name(/value)
(/property)
(property)
(name)dfs.datanode.data.dir(/name)
(value)file:/usr/local/hadoop/hadoop-2.7.1/hdfs/data(/value)
(/property)
(property)
(name)dfs.replication(/name)
(value)3(/value)
(/property)
(property)
(name)dfs.namenode.secondary.http-address(/name)
(value)master:9001(/value)
(/property)
(property)
(name)dfs.webhdfs.enabled(/name)
(value)true(/value)
(/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(/name)
(value)mapreduce_shuffle(/value)
(/property)
(property)
(name)yarn.nodemanager.auxservices.mapreduce.shuffle.class(/name)
(value)org.apache.hadoop.mapred.ShuffleHandler(/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)
(property)
(name)yarn.nodemanager.resource.memory-mb(/name)
(value)1024(/value)
(/property)
(/configuration)
13.發放Hadoop文件到從節點
命令:發放文件:scp -r hadoop-0.20.2 slaves0:/usr/local/hadoop
七、新增DataNode節點及相關配置
1.基礎準備
在基礎準備部分,主要是設置hadoop運行的系統環境
修改系統hostname(通過hostname和/etc/sysconfig/network進行修改)
修改hosts文件,將集群所有節點hosts配置進去(集群所有節點保持hosts文件統一)
設置NameNode(兩臺HA均需要)到DataNode的免密碼登錄(ssh-copy-id命令實現,可以免去cp *.pub文件后的權限修改)
修改主節點slave文件,添加新增節點的ip信息(集群重啟時使用)
將hadoop的配置文件scp到新的節點上
2.添加DataNode
對于新添加的DataNode節點,需要啟動datanode進程,從而將其添加入集群
在新增的節點上,運行sbin/hadoop-daemon.sh start datanode即可
然后在namenode通過hdfs dfsadmin -report查看集群情況
最后還需要對hdfs負載設置均衡,因為默認的數據傳輸帶寬比較低,可以設置為64M,即hdfs dfsadmin -setBalancerBandwidth 67108864即可
默認balancer的threshold為10%,即各個節點與集群總的存儲使用率相差不超過10%,我們可將其設置為5%
然后啟動Balancer,sbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可
3.添加Nodemanager
由于Hadoop 2.X引入了YARN框架,所以對于每個計算節點都可以通過NodeManager進行管理,同理啟動NodeManager進程后,即可將其加入集群
在新增節點,運行sbin/yarn-daemon.sh start nodemanager即可
在ResourceManager,通過yarn node -list查看集群情況