您好,登錄后才能下訂單哦!
1:配置免密碼登錄
使用ssh-keygen生成密鑰,會在當前目錄下生成一個.ssh文件夾和id_rsa私鑰公鑰;
把公鑰拷貝到同一臺主機對應的.ssh目錄下,然后加載進authorized_keys文件里
cat id_rsa.pub>>authorized_keys //所有的公鑰都要追加進這個文件;
把authorized_keys文件拷貝到每臺主機的.ssh目錄;然后逐個登錄一次
也可以使用ssh-copy-id myuser@mynode
2:安裝zookeeper;配置conf/zoo.cfg;添加每個主機和myid;
啟動zookeeper:bin/zkServer.sh start
3:如果java是通過下載壓縮包的形式的,那么需要配置一下系統環境
vim /etc/profile
添加:
export JAVA_HOME=/home/hadoop/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
4:修改hadoop配置文件:
配置文件都在hadoop安裝目錄下的etc/hadoop/目錄下
core-site.xml文件:
<configuration>
<!-- 指定nameservice的名稱為mycluster -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value> //hdfs-site.xml配置文件里對應的名稱
</property>
<!-- 編輯日志文件存儲的路徑 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/var/hadoop/jn</value> //需要創建jn/mycluster文件夾
</property>
<!-- 配置緩存文件的目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/tmp</value>
</property>
<!--以下配置是使用文件系統作為namenode的
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/tmp</value>
</property>
-->
</configuration>
hdfs-site.xml
<configuration>
<!-- 指定hdfs的nameservice的名稱為mycluster -->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<!-- 指定mycluster的兩個namenode的名稱,分別是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<!-- 配置nn1,nn2的rpc通信 端口 -->
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>master:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>slave-one:8020</value>
</property>
<!-- 配置nn1,nn2的http訪問端口 -->
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>slave-one:50070</value>
</property>
<!-- 指定namenode的元數據存儲在journalnode中的路徑 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;slave-one:8485;slave-two:8485/mycluster</value>
</property>
<!-- 配置失敗自動切換的方式 -->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔離機制 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!-- 指定秘鑰的位置 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!-- 數據備份的個數 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--關閉權限驗證 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<!-- 開啟失敗故障自動轉移 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>master:2181,slave-one:2181,slave-two:2181</value>
</property>
<!--以下配置為使用文件系統的-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name><!--node number-->
<value>2</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>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
</configuration>
配置yarn-site.xml文件
<configuration>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>slave-one</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>slave-one:8088</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>master:2181,slave-one:2181,slave-two:2181</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property>
<name>yarn.nodemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.recovery.dir</name>
<value>/var/hadoop/yarn-recovery</value>
</property>
<property>
<name>yarn.nodemanager.address</name>
<value>45454</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
創建文件夾:
mkdir -p /var/hadoop/jn/mycluster mkdir -p /var/hadoop/tmp mkdir -p /var/hadoop/dfs/name mkdir -p /var/hadoop/dfs/data mkdir -p /var/hadoop/yarn-recovery
配置hadoop-env.sh的java_home路徑:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
配置slaves文件:添加所有節點主機
master
slave-one
slave-two
5:每一臺機子上都啟動journalnode節點:為格式化做準備
sbin/hadoop-daemon.sh start journalnode
6:在一臺主機上格式化namenode:
bin/hdfs namenode -format mycluster
7:在該臺主機格式化完namenode后,啟動namenode,方便給其他主機同步namenode信息
sbin/hadoop-daemon.sh start namenode
8:在其他主機上同步namenode信息:由于namenode節點只需要兩個,所以只同步配置里的主機
bin/hdfs namenode -bootstrapstandby
如果同步成功,可以看到集群的id等相關信息;如果不成功;查看主機監控的地址是否有誤;
如果監聽127.0.0.1會導致連接不上,修改/etc/hosts文件
9:配置zookeeper故障轉移:對namenode進行zk格式化;需要確保namenode進行已經啟動
在一臺主機上運行:
bin/hdfs zkfc -formatZK
10:關閉所有hdfs:sbin/stop-dfs.sh;然后再重新啟動所有sbin/start-dfs.sh
11:配置yarn:需要在每一臺ResourceManager上啟動
sbin/yarn-daemon.sh start resourcemanager
12:查看yarn啟動狀態:
bin/yarn rmadmin -getServiceState rm1|rm2 //rm1,rm2是定義的名稱
當前版本一個Namespace只運行最多兩個namenode節點;例如mycluster只能有nn1和nn2兩個namenode節點;nn1和nn2名稱可以自己命名;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。