hadoop启动命令 hadoop启动hdfs命令
- 游戏前瞻
- 2024-11-28 17:07
- 1
如何配置Hadoop环境
设你的hadoop安装在/home/hadoop下,你可以打用于测试,我用4台虚拟机搭建成了hadoop结构
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,本站将立刻删除。
上一篇
文具单价统计表 文具统计表格
下一篇