本文將為初學者的搭建簡單的偽分布式集群,將搭建一台虛擬機,用於學習Hadoop
工具:vm虛擬機,centOS7,jdk-8,Hadoop2.7,xftp,xshell
用戶:在虛擬機中創建一個hadoop用戶並加入到root組中useradd -m hadoop -G root -s /bin/bash
准備好這些工具,用戶,我們將開始搭建hadoop
1.讓虛擬機鏈接同主機:(建議使用nat模式)
因為虛擬機默認就是nat鏈接,所以我們一路配置虛擬機便可。然后我們使用root用戶登陸Linux(我的Linux叫bigdatas)
查看主角ip (ip a)比如我的IP是192.168.1.11.然后我們打開主機(真機不是虛擬機)打開網路編輯
將里面的IP,網口全部改成和bigdatas里面相同的便可,如果在主機聯網的情況下,進入bigdatas中 ping www.baidu.com
有返回值,便可修改hosts vi /etc/
hosts添加如下:
192.168.1.111 bigdatas
2.配置ssh免密碼登陸:
ssh-keygen -t rsa 生成公鑰和私鑰一路回車道yes,完成后便可登陸自己,要想登陸其他機器要
將生產的公鑰拷貝給需要登錄的目標主機 ssh-copy-id bigdatas
然后便可看道.ssh文件
cd ~
ll .ssh
這時我們便可測試ssh登陸了ssh bigdatas(1.先使用hadoop用戶連接 2.連接成功后再次ssh free97zl 無需輸入密碼登錄即測試成功!)
3配置環境
這時我拿xftp把下載好的jdk,hadoop傳到bigdatas下hadoop文件夾下,並解壓(tar -zxvf 。。。)
切換到hadoop用戶,vi ~/.bashrc后
添加如下環境變量
export JAVA_HOME=/home/hadoop/opt/jdk-9.0.1
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/home/hadoop/opt/hadoop-2.9.0
export HADOOP_CONF_DIR=/home/hadoop/opt/hadoop-2.9.0/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后按下shift zz進行保存
然后輸入source .bashrc讓環境變量立刻生效
4配置Hadoop,想進入如下目錄下
/home/hadoop/opt/hadoop-2.9.0/etc/hadoop 在/home/hadoop/opt/hadoop-2.9.0下建一個臨時目錄tmp
輸入ll -a后修改如下幾個配置文件:
core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://bigdatas:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/opt/hadoop-2.9.0/tmp</value> </property> fs:指定hadoop文件系統hdfs dir:指定hadoop數據存放位置 hdfs-site.xml <property> <name>dfs.namenode.secondary.http-address</name> <value>bigdatas:50090</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/opt/hadoop-2.9.0/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/opt/hadoop-2.9.0/tmp/dfs/data</value> </property> host:port dfs.replication 默認備份3 mapred-site.xml cp mapred-site.xml.template mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>free97zl:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>free97zl:19888</value> </property> slaves(不需要vi slaves) yarn-site.xml <property> <name>yarn.resourcemanager.hostname</name> <value>free97zl</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
5啟動hadoop集群
hadoop用戶下:
hdfs namenode -format #第一次啟動要執行格式化,之后啟動不用執行這個
start-dfs.sh
6.
在free97zl 執行 jps
看到如下算成功
[root@bigdatas hadoop]# jps
2880 JobHistoryServer
2457 ResourceManager
2746 NodeManager
2922 Jps
2107 DataNode
2012 NameNode
2300 SecondaryNameNode