1. 程式人生 > >hadoop2.6虛擬機安裝

hadoop2.6虛擬機安裝

1.7 point hadoop集群 jps 輸入密碼 ip地址 進程 單節點 size

Linux環境設置
/*安裝Hadoop集群時要確保以下幾個方面
1.本機與虛擬機之間是否可以通信(Ping)。如果不行檢查下面
1.1本機防火墻關閉(開啟情況是本機可以ping虛擬機,虛擬機不能ping本機)
1.2虛擬機是克隆的情況(按照Linux文檔中,修改ip地址等方法)
1.3虛擬機設置--網卡是否是僅主機模式或者橋接模式:僅主機模式需要檢查VMware1網卡設置與虛擬機網卡設置是否匹配。橋接模式是為了讓虛擬機可以連接外網,只需要改該虛擬機網卡信息即可(網關)

2.虛擬機與虛擬機之間是否可以通信(Ping)。
參考上面檢查古城
*/

//關閉本機網絡管理
# /etc/init.d/NetworkManager stop


# chkconfig NetworkManager off

//清空和關閉防火墻
# iptables -F
# chkconfig iptables off
# service iptables save

//更改主機名稱
# vi /etc/sysconfig/network

//更改主機與ip映射
# vi /etc/hosts

//安裝JDK
# tar -xvf jdk-7u79-linux-x64.tar.gz
# mv jdk1.7.0_79/ jdk

//修改系統環境變量
# vi /etc/profile
export JAVA_HOME=/home/bigdata/jdk/
export HADOOP_HOME=/home/bigdata/hadoop/


export HIVE_HOME=/home/bigdata/hive/
export ZOOKEEPER_HOME=/home/bigdata/zookeeper/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export PATH=$PATH:$JAVA_HOME/bin:/home/bigdata/protoc/bin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:

//使修改後的系統生效
# source /etc/profile

//設置免密碼ssh 方式一 選其一
# ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
# scp ~/.ssh/authorized_keys slave1:/root/.ssh/
# scp ~/.ssh/authorized_keys slave2:/root/.ssh/

//設置免密碼ssh 方式二 選其一
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub master@root
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1@root
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2@root

//設置免密碼ssh 方式三 選其一 (推薦)
ssh-keygen -t rsa
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

Hadoop單機安裝
單機不需要啟動任何服務即可使用,一般只用於調試
# mkdir input
# cp etc/hadoop/*.xml input
# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output ‘dfs[a-z.]+‘
# cat output/*


Hadoop集群下的偽分布式的安裝
00:0C:29:67:88:5E
//修改core-site.xml文件
#etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
</configuration>

//修改hdfs-site.xml文件
#etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>512000</value>
</property>
<property>
<name>dfs.http.address</name>
<value>hadoop02:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoopdata/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
</configuration>

//格式化文件系統(安裝Hadoop後只需執行一次格式化)
bin/hdfs namenode -format

//開啟NameNode進程和DataNode進程
sbin/start-dfs.sh

//檢查Hadoop進程
#jps

//通過瀏覽頁面查看NameNode和Datanode
http://192.168.10.11:50070/

//創建運行MapReduce job所需的HDFS目錄:
#bin/hdfs dfs -mkdir /user

//拷貝輸入文件到分布式文件系統(上傳)
# bin/hdfs dfs -put etc/hadoop input

//運行一些提供的示例:
#bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep /input /output ‘dfs[a-z.]+‘

//檢查輸出文件(下載): 從分布式文件系統拷貝輸出文件到本地文件系統並檢查它們:
# bin/hdfs dfs -get output output
# cat output/*

//在分布式系統上查看輸出文件的內容:
# bin/hdfs dfs -cat output/*

//當你完成操作後,使用下列命令關閉進程:
#sbin/stop-dfs.sh

單節點YARN
//編輯mapred-site.xml文件
#etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

//編輯yarn-site.xml文件
#etc/hadoop/
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

//開啟ResourceManager進程和NodeManager進程
#sbin/start-yarn.sh

//檢查ResourceManager進程和NodeManager進程是否正常運行
#jps

//在頁面上瀏覽ResourceManager
http://192.168.10.11:8088/

//運行一個MapReduce任務
# yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep /input /output2 ‘dfs[a-z.]+‘

寫出hadoop案例都是幹什麽用的 作為偽分布式的操作案例

//當你完成操作後,使用下列命令關閉進程:
# sbin/stop-yarn.sh

Hadoop集群下的全分布式的安裝

主機名稱 IP地址 功能
master 192.168.10.11 NameNode、DataNode
slave1 192.168.10.12 DataNode
slave2 192.168.10.13 DataNode
所有機子都需要配置
1.JDK 2.SSH免登陸 3.Hadoop集群

SSH免登陸
計算機A每次SSH遠程連接計算機B時,都需要輸入密碼。當有些軟件需要頻繁使用SSH連接其他計算機時,這個時候需要人工填寫計算機B的密碼,這個會造成大量無用操作,不利於程序的使用。
在為了避免這類問題的發生,而且也要兼顧安全問題(設置SSH免密碼登陸後,SSH這臺計算就不需要密碼即可登陸,存在安全隱患),使用公鑰和私鑰方式解決SSH免密碼登陸問題,而且只在一邊做,另一邊不做,這樣也達到了安全的問題。一般是那臺機器需要SSH遠程其他機器,就在這臺機器上設置SSH免登陸操作。
"公私鑰"認證方式簡單的解釋:首先在客戶端上創建一對公私鑰 (公鑰文件:~/.ssh/id_rsa.pub; 私鑰文件:~/.ssh/id_rsa)。然後把公鑰放到服務器上(~/.ssh/authorized_keys), 自己保留好私鑰.在使用ssh登錄時,ssh程序會發送私鑰去和服務器上的公鑰做匹配.如果匹配成功就可以登錄了。
ssh 無密碼登錄要使用公鑰與私鑰。linux下可以用ssh-keygen生成公鑰/私鑰對.
//在master機下生成公鑰/私鑰對。
# ssh-keygen -t rsa
//追加到key文件當中
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
//將master機子上的key給其他機子上發送一份
# scp ~/.ssh/authorized_keys slave1:/root/.ssh/
# scp ~/.ssh/authorized_keys slave2:/root/.ssh/

Hadoop集群搭建
修改hadoop-env.sh文件
將hadoop-env.sh文件中的
export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME="/home/bigdata/jdk"

修改core-site.xml文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>

修改hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoopdata/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>slave1:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

修改mapred-site.xml文件
命令如下:
# mv mapred-site.xml.template mapred-site.xml
#vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>

修改yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master </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>

#vi /etc/hadoop/slaves
將所有需要配置成slave類型的機器的機器名寫在其內部即可.
註意:每個機器名占一行。
master
slave1
slave2

啟動歷史服務:mr-jobhistory-daemon.sh start historyserver
#vi /etc/hadoop/master
**********
Master文件存的是的secondarynamenode列表
slave1
********* 不用
//將配置好的jdk文件夾和Hadoop文件夾發送給slave1和slave2機子
# scp -r jdk/ slave1:/home/bigdata/
# scp -r jdk/ slave2:/home/bigdata/
# scp -r /home/bigdata/hadoop slave1:/home/bigdata/
# scp -r /home/bigdata/hadoop slave2:/home/bigdata/

//啟動Hadoop集群
//啟動之前先格式化,只需要一次即可
#hadoop namenode -format
//啟動namenode、datanode、ResourceManager、NodeManager節點
# start-dfs.sh
# start-yarn.sh

hadoop2.6虛擬機安裝