修改環境配置文件 hadoop-env.sh
export JAVA_HOME = /usr/java/jdk1.8.0xxxx
export HDFS_NAMENODE_USER = root
export HDFS_DATANODE_USER = root
export HDFS_ZKFC_USER = root
export HDFS_JOURNALNODE_USER = root
export YARN_RESOURCEMANAGER_USER = root
export YARN_NODEMANAGER_USER = root
修改核心配置文件 core-site.xml
< ! -- 設置 NameNode 節點的 URI ( 包括協議、主機名稱、端口號) ,用于 NameNode 與 DataNode 之間的通訊 --> < property> < name> fs.defaultFS< /name> < value> hdfs://hdfs-yjx< /value> < /property> < ! -- 設置 Hadoop 運行時臨時文件的存放位置,比如 HDFS 的 NameNode 數據默認存放在該目錄 --> < property> < name> hadoop.tmp.dir< /name> < value> /var/yjx/hadoop/ha< /value> < /property> < ! -- 設置 Web 界面訪問數據時使用的用戶名 --> < property> < name> hadoop.http.staticuser.user< /name> < value> root< /value> < /property> < ! -- 配置 HA ( 高可用) ,需要一組 Zookeeper 地址,以逗號分隔 --> < ! -- 該參數被 ZKFailoverController 用于自動故障轉移(Failover) --> < property> < name> ha.zookeeper.quorum< /name> < value> node01:2181,node02:2181,node03:2181 < /value> < /property> < ! -- 該參數表示可以通過 httpfs 接口訪問 HDFS 的 IP 地址限制 --> < ! -- 配置 root(超級用戶)允許通過 httpfs 方式訪問 HDFS 的主機名或域名 --> < property> < name> hadoop.proxyuser.root.hosts< /name> < value> *< /value> < /property> < ! -- 通過 httpfs 接口訪問的用戶獲得的群組身份 --> < ! -- 配置允許通過 httpfs 方式訪問的客戶端的用戶組 --> < property> < name> hadoop.proxyuser.root.groups< /name> < value> *< /value> < /property>
修改 HDFS 配置文件 hdfs-site.xml
[ root@node01 hadoop] < ! -- 設置 NameService(HDFS 命名服務),支持多個 NameNode 的 HA 配置 --> < property> < name> dfs.nameservices< /name> < value> hdfs-yjx< /value> < /property> < ! -- 設置 NameNode ID 列表,hdfs-yjx 對應 dfs.nameservices --> < property> < name> dfs.ha.namenodes.hdfs-yjx< /name> < value> nn1,nn2 < /value> < /property> < ! -- 設置 NameNode 的 RPC 地址和端口 --> < property> < name> dfs.namenode.rpc-address.hdfs-yjx.nn1 < /name> < value> node01:8020 < /value> < /property> < property> < name> dfs.namenode.rpc-address.hdfs-yjx.nn2 < /name> < value> node02:8020 < /value> < /property> < ! -- 設置 NameNode 的 Web 界面訪問地址和端口 --> < property> < name> dfs.namenode.http-address.hdfs-yjx.nn1 < /name> < value> node01:9870 < /value> < /property> < property> < name> dfs.namenode.http-address.hdfs-yjx.nn2 < /name> < value> node02:9870 < /value> < /property> < ! -- 設置 JournalNode 共享存儲,用于存放 HDFS EditLog --> < property> < name> dfs.namenode.shared.edits.dir< /name> < value> qjournal://node01:8485; node02:8485; node03:8485/hdfs-yjx< /value> < /property> < ! -- 設置 JournalNode 日志存儲路徑 --> < property> < name> dfs.journalnode.edits.dir< /name> < value> /var/yjx/hadoop/ha/qjm< /value> < /property> < ! -- 設置客戶端連接 Active NameNode 的代理類 --> < property> < name> dfs.client.failover.proxy.provider.hdfs-yjx< /name> < value> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider< /value> < /property> < ! -- HDFS-HA 發生腦裂時的自動處理方法 --> < property> < name> dfs.ha.fencing.methods< /name> < value> sshfence< /value> < value> shell( true) < /value> < /property> < ! -- 失效轉移時使用的 SSH 私鑰文件 --> < property> < name> dfs.ha.fencing.ssh.private-key-files< /name> < value> /root/.ssh/id_rsa< /value> < /property> < ! -- 是否啟用 HDFS 自動故障轉移 --> < property> < name> dfs.ha.automatic-failover.enabled< /name> < value> true< /value> < /property> < ! -- 設置 HDFS 默認的數據塊副本數(可在文件創建時覆蓋) --> < property> < name> dfs.replication< /name> < value> 2 < /value> < /property>
修改 workers:[root@node01 hadoop]# vim workers
node01
node02
node03
啟動
[ root@node01 hadoop]
[ root@node01 hadoop]
[ root@node01 hadoop]
[ root@node01 ~]
[ root@node01 ~]
[ root@node02 ~]
[ root@node01 ~]
[ root@node01 ~]
關閉 hadoop
[ root@node01 ~]
[ root@node01 ~]
[ root@node01 ~]
[ root@node01 ~] [ root@node01 ~]