伪分布式

配置伪分布式

  • hadoop-env.sh
$ cd /opt/module/hadoop/etc/hadoop/
$ vim hadoop-env.sh
# export JAVA_HOME=${JAVA_HOME}改为:
export JAVA_HOME=/opt/module/jdk
  • core-site.xml
<configuration>
	<!-- 指定HDFS中NameNode的地址 -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://localhost:9000</value>
	</property>
	<!-- 指定Hadoop运行时产生文件的存储目录 -->
	<property>
   		<name>hadoop.tmp.dir</name>
    	<value>/opt/module/hadoop/data/tmp</value>
	</property>
</configuration>
  • hdfs-site.xml
<configuration>
	<!-- 指定HDFS副本的数量 -->
	<property>
    	<name>dfs.replication</name>
    	<value>1</value>
	</property>
</configuration>

格式化namenode

  • 格式化NameNode(第一次启动需要格式化,以后就不要总格式化
$ cd /opt/module/hadoop
$ bin/hdfs namenode -format # 重点

启动/停止HDFS

注意:jps是JDK中的命令,因此需要安装JDK才能使用jps

  • 启动
$ sbin/start-dfs.sh
$ jps
  • 停止
$ sbin/stop-dfs.sh
$ jps

查看HDFS

  • 通过界面查看HDFS文件系统
localhost:50070
  • 也可以通过命令查看
$ hadoop fs -lsr /

日志位置

说明:在遇到Bug时,往往会根据日志的提示信息去分析问题、解决问题。

$ pwd
/opt/module/hadoop
$ cd logs/
# 主要是log后缀结尾文件
xx-namenode-xx.log 
xx-datanode-xx.log
# 查看日志
$ cat hadoop-hadoop-datanode-hadoop.log

wordcount案例

  • 在HDFS文件系统上创建一个input文件夹
$ hadoop fs -mkdir -p /user/hadoop/input
  • 将测试文件内容上传到文件系统上
$ hadoop fs -put wcinput/wc.input /user/hadoop/input/

# wc.input的内容如下:
hadoop yarn
hadoop mapreduce
spark scala
spark hadoop
  • 查看上传的文件是否正确
$ hadoop fs -ls  /user/hadoop/input/
$ hadoop fs -cat  /user/hadoop/input/wc.input
  • 运行MapReduce程序
$ hadoop fs jar /opt/module/hadoop/share/hadoop/hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar wordcount /user/hadoop/input/ /user/hadoop/output	# 输入、输出目录
  • 查看输出结果
$ hadoop fs -cat /user/hadoop/output/*
  • 将测试文件内容下载到本地
$ hadoop fs -get /user/hadoop/output/part-r-00000 ./wcoutput/ # 确保本地存在wcoutput这个目录
$ cat wcoutput/* # 查看计算结果
  • 删除输出结果
$ hadoop fs -rm -r /user/hadoop/output

猜你喜欢

转载自www.cnblogs.com/JZTX123/p/10631525.html