创建普通用户名为hadoop
修改sudo权限,将sudoers配置文件添加写入权限
[root@server1 ~]# chmod 740 /etc/sudoers [root@server1 ~]# vim /etc/sudoers hadoop ALL=(root) NOPASSWD:ALL
解压后的hadoop文件夹全部修改所属用户为hadoop用户
[hadoop@server1 opt]$ sudo chown -R hadoop:hadoop hadoopstandalone/ [hadoop@server1 opt]$ ll drwxr-xr-x. 3 hadoop hadoop 26 9月 12 04:15 hadoopstandalone
编辑profile添加环境变量,并执行source启用
[hadoop@server1 hadoop-2.7.3]$ sudo vim /etc/profile [hadoop@server1 hadoop-2.7.3]$ source /etc/profile export HADOOP_HOME='/opt/hadoopstandalone/hadoop-2.7.3' export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
验证环境变量是否配置完成
配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的JAVA_HOME参数
[hadoop@server1 hadoop-2.7.3]$ sudo vim ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
配置core-site.xml
[hadoop@server1 hadoop]$ vim ${HADOOP_HOME}/etc/hadoop/core-site.xml <configuration> <property> <name>fs.defaultFS</name> #配置HDFS地址 <value>hdfs://server1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> #配置hadoop临时目录 <value>/opt/data/tmp</value> </property> </configuration>
#创建在core-site.xml中配置的历史目录,并修改所有人为hadoop
[hadoop@server1 hadoop]$ sudo mkdir -p /opt/data/tmp [hadoop@server1 hadoop]$ sudo chown -R hadoop:hadoop /opt/data/tmp/
配置hdfs-site.xml
[hadoop@server1 hadoop]$ vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value>
#dfs.replication配置的是HDFS存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1
</property> </configuration>
格式化hdfs
格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中。
格式化后,查看core-site.xml里hadoop.tmp.dir(本例是/opt/data目录)指定的目录下是否有了dfs目录,如果有,说明格式化成功
[hadoop@server1 bin]$ hdfs namenode -format [hadoop@server1 current]$ ${HADOOP_HOME}/sbin/start-dfs.sh
验证
配置的data/tmp目录下出现了dfs
在dfs文件夹下有hdfs生产的文件
- fsimage是NameNode元数据在内存满了后,持久化保存到的文件。
- fsimage*.md5 是校验文件,用于校验fsimage的完整性。
- seen_txid 是hadoop的版本
- vession文件里保存:
- namespaceID:NameNode的唯一ID。
- clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群。
namespaceID:NameNode的唯一ID。
clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群。
#启动namenode
[hadoop@server1 current]$ ${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode starting namenode, logging to /opt/hadoopstandalone/hadoop-2.7.3/logs/hadoop-hadoop-namenode-server1.out
#启动datanode
[hadoop@server1 current]$ ${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode starting datanode, logging to /opt/hadoopstandalone/hadoop-2.7.3/logs/hadoop-hadoop-datanode-server1.out
#启动secondarynode
[hadoop@server1 current]$ ${HADOOP_HOME}/sbin/hadoop-daemon.sh start secondarynamenode starting secondarynamenode, logging to /opt/hadoopstandalone/hadoop-2.7.3/logs/hadoop-hadoop-secondarynamenode-server1.out
检查是否启动成功
测试HDFS
在hdfs上创建文件夹
[hadoop@server1 bin]$ hdfs dfs -mkdir /test1
#创建测试文件,上传文件到hdfs新建的文件夹
[hadoop@server1 bin]$ hdfs dfs -put test.txt /test1
#读取测试上传的test.txt文件内容
[hadoop@server1 bin]$ hdfs dfs -cat /test1/test.txt this is test file
#下载hdfs中的test.txt至本地
[hadoop@server1 bin]$ hdfs dfs -get /test1/test.txt
配置、启动YARN
配置yarn-site.xml
[hadoop@server1 hadoop]$ cp mapred-site.xml.template mapred-site.xml [hadoop@server1 hadoop]$ vim mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> #指定mapreduce运行在yarn框架 <value>yarn</value> </property> </configuration>
[hadoop@server1 hadoop]$ vim yarn-site.xml <?xml version="1.0"?> <configuration> <property> <name>yarn.nodemanager.aux-services</name>#配置了yarn的默认混洗方式选择为mapreduce的默认混洗算法 <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name>#指定了Resourcemanager运行在哪个节点上 <value>server1</value> </property> </configuration>
#启动Resourcemanager
[hadoop@server1 sbin]$ ./yarn-daemon.sh start resourcemanager starting resourcemanager, logging to /opt/hadoopstandalone/hadoop-2.7.3/logs/yarn-hadoop-resourcemanager-server1.out
#启动nodemanager
[hadoop@server1 sbin]$ ./yarn-daemon.sh start nodemanager starting nodemanager, logging to /opt/hadoopstandalone/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-server1.out
测试
输入jps查看nodemanager和resourcemanager是否启动成功
YARN的Web客户端端口号是8088,通过 http://192.168.100.10:8088/可以查看。