首页 > 游戏前瞻 >  > 

hadoop启动命令 hadoop启动hdfs命令

如何配置Hadoop环境

设你的hadoop安装在/home/hadoop下,你可以打

用于测试,我用4台虚拟机搭建成了hadoop结构

hadoop启动命令 hadoop启动hdfs命令hadoop启动命令 hadoop启动hdfs命令


hadoop启动命令 hadoop启动hdfs命令


hadoop启动命令 hadoop启动hdfs命令


hadoop启动命令 hadoop启动hdfs命令


我用了两个台式机。一个xp系统,一个win7系统。每台电脑装两个虚拟机,要不然内存就满了。

1、安装虚拟机环境

Vmware,收费产品,占内存较大。

或Oracle的VirtualBox,开源产品,占内存较小,但安装ubuntu过程中,重启会出错。

我选Vmware。

2、安装作系统

Centos,红帽开源版,接近于生产环境。

Ubuntu,作简单,方便,界面友好。

我选Ubuntu12.10.X 32位

3、安装一些常用的软件

在每台linux虚拟机上,安装:vim,ssh

sudo apt-get install ssh

在客户端,也就是win7上,安装SecureCRT,Winscp或putty,这几个程序,都是依靠ssh服务来作的,所以前提必须安装ssh服务。

serv ssh status 查看ssh状态。如果关闭使用serv ssh start开启服务。

4、修改主机名和网络配置

主机名分别为:,host2,host3,host4。

网络配置,包括ip地址,子网掩码,DNS。如上图所示。

5、修改/etc/hosts文件。

hosts文件和windows上的功能是一样的。存储主机名和ip地址的映射。

在每台linux上,sudo vim /etc/hosts 编写hosts文件。将主机名和ip地址的映射填写进去。编辑完后,结果如下:

无密码登陆,效果也就是在上,通过 ssh host2 或 ssh host3 或 ssh host4 就可以登陆到对方计算机上。而且不用输入密码。

四台虚拟机上,使用 ssh-keygen -t rsa 一路按回车就行了。

刚才都作甚了呢?主要是设置ssh的密钥和密钥的存放路径。 路径为~/.ssh下。

打开~/.ssh 下面有三个文件

authorized_keys,已认证的keys

id_rsa,私钥

id_rsa.pub,公钥 三个文件。

下面就是关键的地方了,(我们要做ssh认证。进行下面作前,可以先搜关于认证和加密区别以及各自的过程。)

①在上将公钥放到authorized_keys里。命令:sudo cat id_rsa.pub >> authorized_keys

②将上的authorized_keys放到其他linux的~/.ssh目录下。

命令:sudo scp authorized_keys hadoop@10.10.11.192:~/.ssh

sudo scp authorized_keys 远程主机用户名@远程主机名或ip:存放路径。

③修改authorized_keys权限,命令:chmod 644 authorized_keys

④测试是否成sudo apt-get install vim功

ssh host2 输入用户名密码,然后退出,再次ssh host2不用密码,直接进入系统。这就表示成功了。

7、上传jdk,并配置环境变量。

通过winSCP将文件上传到linux中。将文件放到/usr/lib/ja中,四个linux都要作。

解压缩:tar -zxvf jdk1.7.0_21.tar

设置环境变量 sudo vim ~/.bashrc

在最下面添加:

export JAVA_HOME = /usr/lib/ja/jdk1.7.0_21

export PATH = $JAVA_HOME/bin:$PATH

8、上传hadoop,配置hadoop

通过winSCP,上传hadoop,到/usr/local/下,解压缩tar -zxvf hadoop1.2.1.tar

再重命名一下,sudo mv hadoop1.2.1 hadoop

这样目录就变成/usr/local/hadoop

①修改环境变量,将hadoop加进去(四个linux都作一次)

sudo vim ~/.bashrc

export PATH = $JAVA_HOme/bin:$HADOOP_HOME/bin:$PATH

②修改/usr/local/hadoop/conf下配置文件

(上面这张,有一些问题,只export JAVA_HOME进去就可以了,不用export HADOOP_HOME和PATH了 )

core-site.xml,

hdfs-site.xml,

mapred-site.xml,

sle,

上面的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml,,sle几个文件,在四台linux中都是一样的。

配置完一台电脑后,可以将hadoop包,直接拷贝到其他电脑上。

③要记得,将hadoop的用户加进去,命令为

sudo chown -R hadoop:hadoop hadoop

sudo chown -R 用户名@用户组 目录名

④让hadoop配置生效

⑤格式化namenode,只格式一次

hadoop namenode -format

⑥启动hadoop

切到/usr/local/hadoop/bin目录下,执行 start-all.sh启动所有程序

⑦查看进程,是否启动

host2,

host3,host4,的显示结果,与host2相同。

Hadoop重启,部分进程没有成功开启

应该出现下面结果:

这种情况下一般是端口占用,执行命令 netstat -anp |grep 端口号 ,查看占用该端口的进程,并执行 kill 9 进程号 ,再次重启即可。

一段时间后,重新启动hadoop之后,没有显示应有的五个进程。一般情况下从logs目录出发,进行修改。最经常报的错误是:

根据报错信息 ja.io.IOException: Incompatible clusterIDs in /root/hadoop/dfs/data: namenode clusterID = CID-deb400ff-00be-4e84-b647-6be4edbe6abb; datanode clusterID = CID-83f6523b-7765-4eb1-abde-5887636778c9 和 博客 可知, namenode和datanode的clusterID不同造成的 解决办法:

根据日志中的路径, cd /root/hadoop/dfs/ 下面有data和name两个文件夹,

将 /root/hadoop/dfs/name/current 下的 VERSION中的clusterID 覆盖掉 /root/hadoop/dfs/data/current 下的 VERSION的clusterID 即可。

全部修改完毕后,重启即可。

hadoop设置执行对应角色

做法:

(1)核心配置文件core-site.xml,该配置文件属于Hadoop的全局配置文件,我们主要进行配置分布式文件系统的入口地址NameNode的地址和分布式文件系统中数据落地到本地磁盘位置的配置

(2)Hadoop环境配置文件hadoop-env.sh,在这个配置文件中我们主要需要制定jdk的路径JAVA_HOME,避免程序运行中出现JAVA_HOME找不到的异常。

(4)YARN的环境配置文件yarn-env.sh,同样将JAVA_HOME路径配置指明。

(5)关于YARN的配置文件yarn-site.xml,其中配置YARN的相关参数,主要配置一下两个source hadoop-env.sh参数。

(8)主NameNode和ResourceMar的角色在配置文件中已经做了配置,从的角色还需指定,配置文件sles就是用来配置Hadoop集群中各个从角色的。如下,对sles文件进行修改,即将3台全部指定为从,可以启动DataNode和NodeMar进程。

(9)在集群上分发配置好的Hadoop配置文件,这样3台即享有相同的Hadoop的配置,可准备通过不同的进程启动命令进行启动了。

(10)查看文件分发SecureCRT,可以通过ssh远程访问linux虚拟机。情况。

hadoop中命令经常含有-fs,-dfs,fs和dfs有什么区别?作用是什么?

,就当是抛砖引玉了。

You can see definitions of the two commands (hadoop fs & hadoop dfs)6、配置ssh,实现无密码登陆 in

可以看一下hadoop的源代码

$HADOOP_HOME/bin/hadoop

...elif [ "$COMMAND" = "datanode" ] ; then CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode' HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_OPTS"elif [ "$COMMAND" = "fs" ] ; then CLASS=org.apache.hadoop.fs.FsShell HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"elif [ "$COMMAND" = "dfs" ] ; then CLASS=org.apache.hadoop.fs.FsShell HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"elif [ "$COMMAND" = "dfsadmin" ] ; then CLASS=org.apache.hadoop.hdfs.tools.DFSAdmin HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"...

So, they are exactly the same.

所以,发现两者是完全一样的功能。

谢谢

如何在Linux上安装与配置Hadoop-IT168 技术开发专区

在Linux上安装Hadoop之前,需要先安装两个程序:

1. JDK 1.6或更高版本;

2. SSH(安全外壳协议),安装OpenSSH。

下面简述一下安装这两个程序的原因:该文该中队jobhistoryserver的堆栈大小进行了设置,

1. Hadoop是用Ja开发的,Hadoop的编译及MapReduce的运行都需要使用JDK。

2. Hadoop需要通过SSH来启动salve列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分集群式和伪分布式)。对于伪分布式,Hadoop会采用与集群相同的处理方式,即依次序启动文件conf/sles中记载的主机上的进程,只不过伪分布式中salve为localhost(即为自身),所以对于伪分布式Hadoop,SSH一样是必须的。

输入命令:

sudo gedit /etc/profile

输入密码,打开profile文件。

#set Ja Environment

export JAVA_HOME= (你的JDK安装位置,一般为/usr/lib/jvm/ja-6-sun)

expor在文件的最下面输入如下内容:t CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"

export PATH="$JAVA_HOME/:$PATH"

这一步的意义是配置环境变量,使你的系统可以找到JDK。

(3)验证JDK是否安装成功

输入命令:

ja -version

查看信息:

ja version "1.6.0_14"

Ja(TM) SE Runtime Environment (build 1.6.0_14-b08)

Ja HotSpot(TM) VM (build 14.0-b16, mixed mode)

如何启动jobhistoryserver进程

修改每台电脑的hosts文件。

Hadoop启动jobhistoryserver来实现web查看作业的历史运行情况,由于在启动hdfs和Yarn进程之后,jobhistoryserver进程并没有启动,需要手动启动,启动的方法是通过:

mr-jobhistory-daemon.sh start historyserver 命令还启动。

由于前面有过一篇通过web查看job的运行情况的文章,文中介绍的是当作业在运行时,如何通过web查看job的运行情况,当job运行完之后,就无法查看,这是由于集群的historyserver 进程没有启动。因此需要手动启动。

我在启动的时候出现错误:

mnvaild maxumum heap size :-Xmx1000

ERROR:could not create the ja Virtual Machine 如下图所示:

通过查看执行的脚本mr-jobhistory-daemon.sh的内容,发现脚本文件中(2)配置环境变量的内容并未涉及到maxumum heap size的问题,于是可能是脚本文件中调用的其他文件所导致的,如下图所示:

由于mapred-config.sh 脚本文件并未发现,因此只有mapred-env.sh 脚本文件中出现的问题。于是查看mapred-env.sh 脚本文件,如下图所示:

HADOOP__HISTORYSERVER_HEAPSIZE的值默认单位是M,因此在设置的时候不需要添加任何的单位,默认设置的值是1000,于是我将该值设置为100。再执行

mr-jobhistory-daemon.sh start historyserver

此时,执行historyserver启动成功,这时候就可以点击web页面上的job最右边的history的选项,进入作业历史运行界面,查看历史运行信息,包括:运行了多少个map,多少个reduce,多少个counters等等。

下面哪个目录保存了hadoop集群的命令

修改完后,用source ~/.bashrc让配置文件生效。

您想问的是哪个目录保存了hadoop集群的命令吗?in。

查阅资料得知,namenode没有启动起来,一般都是配置文件有问题,再查资料,修改配置文件 core-site.xml ,原错误配置文件如下:

in目录,存放的是Hadoop集群启动停止相关脚本,命令share目录,Hadoop的一些jar,案例jar,文档等。

集群就是指一组(若干个)相互的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群(集群系统中的单个计算机通常称为)都是运行各自服务的。在某种意义上,他们可以被看作是一台计算机。

Hadoop集群执行start-all.sh后没有namenode没有启动

Hadoop集群配置好后,执行 start-all.sh 启动集群后,然后执行 jps 查看ja进程,发现没有namenode,往回看,才发现执行 hdfs namenode -format 命令时报错了,报错如1. 创建本地的示例数据文件:下:

修改方法,删除 file: ,修改后hadoop-env.sh,的配置文件如下:

然后删除集群中三台机器中Hadoop目录下的logs和tmp目录,重新格式化namenode,搞定!

另一种解决方案,不删除 file: ,在配置文件hdfs-site.xml中添加如下配置:

然后删除logs和tmp目录,重新格式化namenode

参考:

为什么启动hadoop后在hdfs上系统里创建input的文件夹的命令没有用 命令为hadoop

mkdir

Usage: hadoop fs -mkdir [-p]

Takes path uri’s as argument and creates directories.

Options:

The -p option behior is much like Unix mkdir -p, creating parent directories along the path.

Example:

hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2

hadoop fs -mkdir hdfs:// hdfs://

Exit(6)mapreduce的环境配置文件mapred-env.sh,同样将JAVA_HOME路径配置指明。(7)关于MapReduce的配置文件mapred-site.xml,主要配置一个参数,指明MapReduce的运行框架为YARN. Code:

Returns 0 onsudo vim /etc/hostname success and -1 on error.

版权声明:本文内容由互联网用户自发贡献。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com,本站将立刻删除。