安裝版本
hadoop-2.0.0-cdh4.2.0hbase-0.94.2-cdh4.2.0hive-0.10.0-cdh4.2.0jdk1.6.0_38
安裝前說明
- 安裝目錄為/opt
- 檢查hosts檔案
- 關閉防火牆
- 設定時鐘同步
使用說明
安裝hadoop、hbase、hive成功之後啟動方式為:
- 啟動dfs和mapreduce desktop1上執行start-dfs.sh和start-yarn.sh
- 啟動hbase desktop3上執行start-hbase.xml
- 啟動hive desktop1上執行hive
規劃
192.168.0.1 NameNode、Hive、ResourceManager 192.168.0.2 SSNameNode 192.168.0.3 DataNode、HBase、NodeManager 192.168.0.4 DataNode、HBase、NodeManager 192.168.0.6 DataNode、HBase、NodeManager 192.168.0.7 DataNode、HBase、NodeManager 192.168.0.8 DataNode、HBase、NodeManager
部署過程系統和網路設定
修改每台機器的名稱
[root@desktop1 ~]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=desktop1
在各個節點上修改/etc/hosts增加以下內容:
[root@desktop1 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.0.1 desktop1192.168.0.2 desktop2192.168.0.3 desktop3192.168.0.4 desktop4192.168.0.6 desktop6192.168.0.7 desktop7192.168.0.8 desktop8
配置ssh無密碼登陸 以下是設定desktop1上可以無密碼登陸到其他機器上。
[root@desktop1 ~]# ssh-keygen [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop2 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop3 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop4 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop6 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop7 [root@desktop1 ~]# ssh-copy-id -i .ssh/id_rsa.pub desktop8
- 每台機器上關閉防火牆:
[root@desktop1 ~]# service iptables stop
安裝Hadoop配置Hadoop
將jdk1.6.0_38.zip上傳到/opt,並解壓縮。 將hadoop-2.0.0-cdh4.2.0.zip上傳到/opt,並解壓縮。
在NameNode上配置以下檔案:
core-site.xml fs.defaultFS指定NameNode檔案系統,開啟資源回收筒功能。hdfs-site.xml dfs.namenode.name.dir指定NameNode儲存meta和editlog的目錄, dfs.datanode.data.dir指定DataNode儲存blocks的目錄, dfs.namenode.secondary.http-address指定Secondary NameNode地址。 開啟WebHDFS。slaves 添加DataNode節點主機
- core-site.xml 該檔案指定fs.defaultFS串連desktop1,即NameNode節點。
[root@desktop1 hadoop]# pwd/opt/hadoop-2.0.0-cdh4.2.0/etc/hadoop[root@desktop1 hadoop]# cat core-site.xml <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!--fs.default.name for MRV1 ,fs.defaultFS for MRV2(yarn) --><property> <name>fs.defaultFS</name> <!--這個地方的值要和hdfs-site.xml檔案中的dfs.federation.nameservices一致--> <value>hdfs://desktop1</value></property><property><name>fs.trash.interval</name><value>10080</value></property><property><name>fs.trash.checkpoint.interval</name><value>10080</value></property></configuration>
- hdfs-site.xml 該檔案主要設定資料副本儲存份數,以及namenode、datanode資料儲存路徑以及http-address。
[root@desktop1 hadoop]# cat hdfs-site.xml <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property> <name>dfs.replication</name> <value>1</value></property><property> <name>hadoop.tmp.dir</name> <value>/opt/data/hadoop-${user.name}</value></property><property><name>dfs.namenode.http-address</name><value>desktop1:50070</value></property><property><name>dfs.namenode.secondary.http-address</name><value>desktop2:50090</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property></configuration>
- masters 設定namenode和secondary namenode節點。
[root@desktop1 hadoop]# cat masters desktop1desktop2
- slaves 設定哪些機器上安裝datanode節點。
[root@desktop1 hadoop]# cat slaves desktop3desktop4desktop6desktop7desktop8
配置MapReduce
- mapred-site.xml 配置使用yarn計算架構,以及jobhistory的地址。
[root@desktop1 hadoop]# cat mapred-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property> <name>mapreduce.framework.name</name> <value>yarn</value></property><property> <name>mapreduce.jobhistory.address</name> <value>desktop1:10020</value></property><property> <name>mapreduce.jobhistory.webapp.address</name> <value>desktop1:19888</value></property></configuration>
- yarn-site.xml 主要配置resourcemanager地址以及
yarn.application.classpath(這個路徑很重要,要不然整合hive時候會提示找不到class)
[root@desktop1 hadoop]# cat yarn-site.xml <?xml version="1.0"?><configuration><property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>desktop1:8031</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>desktop1:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>desktop1:8030</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>desktop1:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>desktop1:8088</value> </property> <property> <description>Classpath for typical applications.</description> <name>yarn.application.classpath</name> <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*, $HADOOP_COMMON_HOME/share/hadoop/common/lib/*, $HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*, $YARN_HOME/share/hadoop/yarn/*,$YARN_HOME/share/hadoop/yarn/lib/*, $YARN_HOME/share/hadoop/mapreduce/*,$YARN_HOME/share/hadoop/mapreduce/lib/*</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> <property> <name>yarn.nodemanager.local-dirs</name> <value>/opt/data/yarn/local</value> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>/opt/data/yarn/logs</value> </property> <property> <description>Where to aggregate logs</description> <name>yarn.nodemanager.remote-app-log-dir</name> <value>/opt/data/yarn/logs</value> </property> <property> <name>yarn.app.mapreduce.am.staging-dir</name> <value>/user</value> </property></configuration>
同步設定檔
修改.bashrc環境變數,並將其同步到其他幾台機器,並且source .bashrc
[root@desktop1 ~]# cat .bashrc # .bashrcalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'# Source global definitionsif [ -f /etc/bashrc ]; then . /etc/bashrcfi# User specific environment and startup programsexport LANG=zh_CN.utf8export JAVA_HOME=/opt/jdk1.6.0_38export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib:$JRE_HOME/lib/tools.jarexport HADOOP_HOME=/opt/hadoop-2.0.0-cdh4.2.0export HIVE_HOME=/opt/hive-0.10.0-cdh4.2.0export HBASE_HOME=/opt/hbase-0.94.2-cdh4.2.0export HADOOP_MAPRED_HOME=${HADOOP_HOME}export HADOOP_COMMON_HOME=${HADOOP_HOME}export HADOOP_HDFS_HOME=${HADOOP_HOME}export YARN_HOME=${HADOOP_HOME}export HADOOP_YARN_HOME=${HADOOP_HOME}export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoopexport PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin
修改設定檔之後,使其生效。
[root@desktop1 ~]# source .bashrc
將desktop1上的/opt/hadoop-2.0.0-cdh4.2.0拷貝到其他機器上
啟動指令碼
第一次啟動hadoop需要先格式化NameNode,該操作只做一次。當修改了設定檔時,需要重新格式化
[root@desktop1 hadoop]hadoop namenode -format
在desktop1上啟動hdfs:
[root@desktop1 hadoop]#start-dfs.sh
在desktop1上啟動mapreduce:
[root@desktop1 hadoop]#start-yarn.sh
在desktop1上啟動historyserver:
[root@desktop1 hadoop]#mr-jobhistory-daemon.sh start historyserver
查看MapReduce:
http://desktop1:8088/cluster
查看節點:
http://desktop2:8042/http://desktop2:8042/node
檢查叢集進程
[root@desktop1 ~]# jps5389 NameNode5980 Jps5710 ResourceManager7032 JobHistoryServer[root@desktop2 ~]# jps3187 Jps3124 SecondaryNameNode[root@desktop3 ~]# jps3187 Jps3124 DataNode5711 NodeManager