Apache Hadoop 2.6.0安装部署(2)

$mkdir /home/hadoop/bin
$ln -s /home/hadoop/hadoop/jdk/bin/jps /home/hadoop/bin/
$cd /home/hadoop/hadoop/
$sbin/hdfs namenode -format  先进行初始化
$sbin/start-dfs.sh

The hadoop daemon log output is written to the $HADOOP_LOG_DIR directory (defaults to $HADOOP_HOME/logs).(写入到日志文件)

web测试:50070/ 

$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
$bin/hdfs dfs -put etc/hadoop input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
$ bin/hdfs dfs -get output output
$ cat output/*

配置YARN

cd /home/hadoop/hadoop/

etc/hadoop/mapred-site.xml:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

etc/hadoop/yarn-site.xml:


<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>


Start ResourceManager daemon and NodeManager daemon:

$ sbin/start-yarn.sh

访问:http://172.20.115.1:8088

Apache Hadoop 2.6.0安装部署

如果达到这种效果就说明你已经成功部署伪分布式 


6.部署Hadoop集群

前面讲的这么多 Hadoop 的环境变量和配置文件都是在 hadoop1 这台机器上的,现在需要将 hadoop 部署到其他的机器上,保证目录结构一致。

$scp -r /home/hadoop/hadoop hadoop2.example.com:/home/hadoop/

$scp -r /home/hadoop/hadoop hadoop3.example.com:/home/hadoop/

$scp -r .ssh/ hadoop2.example.com:

$scp -r .ssh/ hadoop3.example.com:

注意还要修改以下文件:

$cd /home/hadoop/hadoop/etc/hadoop

/masters

hadoop1.example.com

/slaves

hadoop2.example.com
hadoop3.example.com

$ln -s hadoop-1.2.1/ hadoop
$mkdir /home/hadoop/bin
$ln -s /home/hadoop/hadoop/jdk/bin/jps /home/hadoop/bin
至此,可以说,Hadoop 已经在各个机器上部署完毕了,下面就让我们开始启动 Hadoop 吧。

7. 启动 Hadoop

启动之前,我们先要格式化 namenode,先进入~/hadoop/目录,执行下面的命令:

$bin/hadoop namenode –format

不出意外,应该会提示格式化成功。如果不成功,就去 hadoop/logs/目录下去查看日志文件。
下面就该正式启动 hadoop 啦,在 sbin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的 Hadoop 守护。包括 namenode, datanode, jobtracker,tasktrack
* stop-all.sh 停止所有的 Hadoop
* start-mapred.sh 启动 Map/Reduce 守护。包括 Jobtracker 和 Tasktrack
* stop-mapred.sh 停止 Map/Reduce 守护

* start-dfs.sh 启动 Hadoop DFS 守护.Namenode 和 Datanode
* stop-dfs.sh 停止 DFS 守护

在这里,简单启动所有守护:
[hadoop@hadoop1:hadoop]$sbin/start-all.sh

$jps

查看JobTracker,Jps,SecondaryNameNode,NameNode是否启动成功。
同样,如果要停止 hadoop,则

[hadoop@hadoop1:hadoop]$sbin/stop-all.sh

8. HDFS 操作

运行 sbin/目录的 hadoop 命令,可以查看 Haoop 所有支持的操作及其用法,这里以几个简单的操作为例。
建立目录:

[hadoop@hadoop1 hadoop]$sbin/hadoop dfs -mkdir testdir

在 HDFS 中建立一个名为 testdir 的目录,复制文件:

[hadoop@hadoop1 hadoop]$sbin/hadoop dfs -put /home/large.zip testfile.zip

把 本 地 文 件 large.zip 拷 贝 到 HDFS 的 根 目 录 /user/hadoop/ 下 , 文 件 名 为testfile.zip,查看现有文件:

[hadoop@hadoop1 hadoop]$sbin/hadoop dfs -ls

9.hadoop 在线更新节点:

新增节点:

1). 在新增节点上安装 jdk,并创建相同的 hadoop 用户,uid 等保持一致
2). 在 conf/slaves 文件中添加新增节点的 ip
3). 同步 master 上 hadoop 所有数据到新增节点上,路径保持一致
4). 在新增节点上启动服务:

$ sbin/hadoop-daemon.sh start datanode
$ sbin/hadoop-daemon.sh start tasktracker

5). 均衡数据:

$ sbin/start-balancer.sh

(1)如果不执行均衡,那么 cluster 会把新的数据都存放在新的 datanode 上,这样会降低 mapred的工作效率
(2)设置平衡阈值,默认是 10%,值越低各节点越平衡,但消耗时间也更长

$ sbin/start-balancer.sh -threshold 5

在线删除datanode节点:

1). 在 master 上修改/mapred-site.xml

<property>
 
<name>dfs.hosts.exclude</name>
 
<value>/home/hadoop/hadoop-1.2.1//datanode-excludes</value>
 
</property>
 

2). 创建 datanode-excludes 文件,并添加需要删除的主机,一行一个

172.20.115.4

3). 在 master 上在线刷新节点

$ sbin/hadoop dfsadmin -refreshNodes

此操作会在后台迁移数据,等此节点的状态显示为 Decommissioned,就可以安全关闭了。

4). 你可以通过以下命令查看 datanode 状态

$ sbin/hadoop dfsadmin -report

在做数据迁移时,此节点不要参与 tasktracker,否则会出现异常。

在线删除tasktracker 节点:

1). 在 master 上修改/mapred-site.xml

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/cc1786fca1ef77b55458e2f52dbcb810.html