一、完成本地模式搭建
二、配置core-site.xml
<!--指定HDFS namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://dtinone:9000</value>
</property>
<!--指定hadoop运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/apps/hadoop/hadoop-2.7.3/data</value>
</property>
三、配置hdfs-site.xml
<!--指定HDFS的副本数量,非生产环境,配置一份就够了-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--指定DFS名称节点在本地存放名称表(fsimages)的目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/apps/hadoop/hadoop-2.7.3/data/dfs/name</value>
</property>
<!--指定DFS数据节点将其块存放在本地文件系统的位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/apps/hadoop/hadoop-2.7.3/data/dfs/data</value>
</property>
四、配置mapred-site.xml
<!--指定yarn运行-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--为MR用户主进程添加环境变量-->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/apps/hadoop/hadoop-2.7.3</value>
</property>
<!--为map进程添加环境变量-->
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/apps/hadoop/hadoop-2.7.3</value>
</property>
<!--为reduce进程添加环境变量-->
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/apps/hadoop/hadoop-2.7.3</value>
</property>
五、配置yarn-site.xml
<!--指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>dtinone</value>
</property>
<!--reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
六、配置hadoop-env.sh
在文件中export JAVA_HOME位置添加JAVA_HOME环境变量
七、namenode格式化
hdfs namenode -format
八、进入sbin目录,执行start-dfs.sh
提示报错信息
Starting namenodes on [dtinone]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [dtinone]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
解决方案:在start-dfs.sh和stop-dfs.sh文件开头添加以下内容
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在start-yarn.sh和stop-yarn.sh文件开头添加以下内容
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
jps
如果namenode datanode jps secondarynamenode正常启动,则说明伪分布式安装成功。
九、进入web页面,地址栏输入http://localhost:50070,或者http://localhost:9870(版本不同有些web的默认端口也不同一般都是50070或者9870或者8088)此时会弹出分布式文件系统的提示界面
伪分布式模式下HDFS命令练习:
1、hadoop fs -mkdir 创建目录
hadoop fs -mkdir -p /user/data
2、hadoop fs -ls 显示当前目录结构,-ls -R 递归显示目录结构
这里表示递归显示根目录的目录结构
hadoop fs -ls -R /
3、hadoop fs -rm 删除文件,-rm -R 递归删除目录和文件
删除data文件
hadoop fs -rm data
4、hadoop fs -put [localsrc] [dst] 从本地上传文件到HDFS
hadoop fs - copyFromLocal [localsrc] [dst] 从本地加载文件到HDFS,与put一致
将sourcedata文件上传到desdir目录下
hadoop fs -put sourcedata desdir
hadoop fs - copyFromLocal sourcedata desdir
5、hadoop fs -get [dst] [localsrc] 从HDFS导出文件到本地
hadoop fs -copyToLocal [dst] [localsrc] 从HDFS导出文件到本地,与get一致
hadoop fs -get data /opt/apps/hadoop/hadoop-2.7.3/data
hadoop fs -copyToLocal data /opt/apps/hadoop/hadoop-2.7.3/data
6、hadoop fs -test -e 检测目录和文件是否存在,存在返回值$?为0,不存在返回1
hadoop fs -test -e /uesr/data
7、hadoop fs -text 查看文件内容
hadoop fs -text /uesr/data/a.txt
8、hadoop fs -du 统计目录下各文件大小,单位字节。-du -s 汇总目录下文件大小,-du -h 显示单位
hadoop fs -du -s -h /uesr
9、hadoop fs -tail 显示文件末尾
hadoop fs -tail /uesr/data/a.txt
10、hadoop fs -cp [src] [dst] 从源目录复制文件到目标目录
这里指的是HDFS上的两个目录
hadoop fs -cp /uesr/data/a.txt /opt
11、hadoop fs -mv [src] [dst] 从源目录移动文件到目标目录
从HDFS上的一个目录移动到HDFS上的另一个目录
hadoop fs -mv /uesr/data /opt