标签:不可 有一个 ima sla tput lin 输入密码 examples second
用于存放Hadoop用户安装的各种应用
tar -zxvf jdk-7u80-linux-x64.tar.gz -C ~/App/
cd ~/App/jdk1.7.0_80/bin
./java -version
sudo vi /etc/profile
source /etc/profile
tar -zvxf hadoop-2.7.1_64bit.tar.gz -C ~/App/
bin: 存放的是我们用来实现管理脚本和使用的脚本的目录,我们对hadoop文件系统操作的时候用的就是这个目录下的脚本
常用的命令脚本(我们忽略.cmd的文件这是windows下的使用的文件):hdfs hadoop yarn 来执行对文件操作
其中hadoop文件用于执行hadoop脚本命令,被hadoop-daemon.sh调用执行,也可以单独执行,一切命令的核心
etc:存放一些hadoop的配置文件
cd ./hadoop/
Hadoop核心全局配置文件,可以其他配置文件中引用该文件中定义的属性,如在hdfs-site.xml及mapred-site.xml中会引用该文件的属性; 该文件的模板文件存在于$HADOOP_HOME/src/core/core-default.xml,可将模板文件复制到conf目录,再进行修改。
Hadoop环境变量
HDFS配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/hdfs/hdfs-default.xml,可将模板文件复制到conf目录,再进行修改
yarn的配置文件,该模板的属性继承于core-site.xml;该文件的模板文件存于$HADOOP_HOME/src/mapred/mapredd-default.xml, 可将模板文件复制到conf目录,再进行修改
用于设置所有的slave的名称或IP,每行存放一个。如果是名称,那么设置的slave名称必须在/etc/hosts有IP映射配置
include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
lib:该目录下存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中。
libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
sbin: 存放的是我们管理脚本的所在目录,重要是对hdfs和yarn的各种开启和关闭和单线程开启和守护
start-dfs.sh
启动NameNode、DataNode以及SecondaryNameNode
start-yarn.sh
启动ResourceManager以及NodeManager
stop-dfs.sh
停止NameNode、DataNode以及SecondaryNameNode
stop-yarn.sh
停止ResourceManager以及NodeManager
start-all.sh
相当于执行 start-dfs.sh 及 start-yarn.sh
stop-all.sh
相当于执行 stop-dfs.sh 及 stop-yarn.sh
hadoop-daemon.sh
通过执行hadoop命令来启动/停止一个守护进程(daemon);
该命令会被bin目录下面所有以start或stop开头的所有命令调用来执行命令;
hadoop-daemons.sh也是通过调用hadoop-daemon.sh来执行命令;
hadoop-daemon.sh本身就是通过调用hadoop命令来执行任务。
Hadoop各个模块编译后的jar包所在的目录。开发程序需要从此引入jar包
vi hadoop-env.sh
echo $JAVA_HOME获取完整环境变量:/home/hadoop/App/jdk1.7.0_80
vi core-site.xml
fs.defaultFS:默认采用的文件系统---指定namenode(主节点)的地址
我们需要修改他,因为Hadoop各组件组件是松耦合联系,而文件系统可以是本地文件系统,如linux ext等,也可以是HDFS,....。
所以我们需要指定一个专门的文件系统,为HDFS
value值必须为URI类型:例如HDFS URI: hdfs://主节点名称:端口号/ 其中端口默认9000
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoopH1:9000</value>
</property>
hadoop.tmp.dir:Hadoop公共目录,用来指定使用hadoop时产生文件的存放目录(如果可以,应该是磁盘挂载点,方便扩容)
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/App/hadoop-2.7.1/data/tmp/</value> 这里我们指定存放在hadoop根目录下的data文件夹下
</property>
<property>
<name>dfs.replication</name>
<value>1</value> 伪分布指定一个即可
</property>
也可以指定切块大小,默认128M(太小了,效率会降低)
dfs.namenode.name.dir:指定hdfs中namenode的存储位置 dfs.datanode.data.dir:指定hdfs中datanode的存储位置
Hadoop hdfs有NameNode和DataNode两种节点(两种不同进程),DataNode进程负责管理我们传送的文件块,存放在linux文件目录下, 同样NameNode也需要文件目录存放数据,我们可以分别指定,
<!--指定hdfs中namenode的存储位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/App/hadoop-2.7.1/data/name</value>
</property>
<!--指定hdfs中datanode的存储位置-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/App/hadoop-2.7.1/data/data</value>
</property>
先将mapred-site.xml.template(Hadoop不可读)变为mapred-site.xml文件(Hadoop可读)
mv mapred-site.xml.template mapred-site.xml
mapreduce.framework.name:指定mapreduce程序应该放入哪一个资源调度集群上使用,否则在本地运行,而不是在集群中使用
<!--告诉hadoop以后MR(Map/Reduce)运行在YARN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn.resourcemanager.hostname:指定Yarn主节点ResourceManager地址
yarn.nodemanager.aux-services:指定nodeManager节点获取数据的方式
yarn.log-aggregation-enable:是否开启工作日志
<!--nomenodeManager获取数据的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定Yarn的老大(ResourceManager)的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoopH1</value>
</property>
<!--Yarn打印工作日志-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
sudo firewall-cmd --state 查看防火墙状态
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
hadoop namenode -format
可以看到,格式化namenode之后,会在我们指定的配置项所指目录中,生成一些文件
其中fsimage是元数据,.md5是校验文件
而整个文件系统命名空间(包括块到文件和文件系统属性的映射)存储在名为 FsImage 的文件中。
FsImage 也作为文件存储在 NameNode 的本地文件系统中。
进入sbin目录(存放系统启动脚本)
cd ~/App/hadoop-2.7.1/sbin/
start-dfs.sh
需要选择是否连接主机,并且每启动一次进程,需要输入一次密码!!!
注意:我们在core-site.xml中只配置了NameNode,并没有配置DataNode。但是为什么依旧启动了DataNode??
0.0.0.0广播地址,用于查看集群中有几台机器。
hdfs正常运行,需要上面3种进程
NameNode只有一个,DataNode则有多个,DataNode设置需要在配置文件
查看slave文件内容:
start-yarn.sh
我们本机为主节点,直接开启resourcenamager,不需要输入密码。而nodemanager需要在其他主机中启动,故需要输入密码才可以启动nodemanager进程
http://hadooph1:50070 注意:https可能无法访问
hadoop fs -put jdk-7u80-linux-x64.tar.gz hdfs://hadoopH1:9000/ 上传到hdfs文件系统根目录下
(1)在web中查看,可进行下载
(2)使用命令行下载文件到当前目录
hadoop fs -get hdfs://hadoopH1:9000/jdk-7u80-linux-x64.tar.gz
mapreduce案例程序在/home/hadoop/App/hadoop-2.7.1/share/hadoop/mapreduce,在share文件夹下
可用于计算圆周率
vi test.txt
hello world
hello ketty
hello boys
hello mark
hello mark
hello doctor
hello kitty
先在hdfs系统中创建一个目录
hadoop fs -mkdir hdfs://hadoopH1:9000/wordcount 或者 hadoop fs -mkdir /wordcount
hadoop fs -mkdir /wordcount/input 创建二级目录
上传文件到input文件目录中
hadoop fs -put test.txt /wordcount/input
hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount /wordcount/input /wordcount/output
调用jar案例包,使用wordcount类进行单词字数统计,输入数据在/worddcount/input目录下,输出数据应该放入/wordcout/output目录下
注:指定数据输入目录下的所有文件都会读取!!!
hadoop fs -ls /wordcount/output
其中_SUCCESS大小为0,为空文件。part-r-00000存放结果。
hadoop fs -cat /wordcount/output/part-r-00000
标签:不可 有一个 ima sla tput lin 输入密码 examples second
原文地址:https://www.cnblogs.com/ssyfj/p/12300462.html