大数据集群配置过程hadoop篇.docx
《大数据集群配置过程hadoop篇.docx》由会员分享,可在线阅读,更多相关《大数据集群配置过程hadoop篇.docx(19页珍藏版)》请在冰豆网上搜索。
![大数据集群配置过程hadoop篇.docx](https://file1.bdocx.com/fileroot1/2023-1/29/a1b502d8-4de6-4bc8-91f0-1915bd4875fb/a1b502d8-4de6-4bc8-91f0-1915bd4875fb1.gif)
大数据集群配置过程hadoop篇
大数据集群配置过程_hadoop篇
JDDC_SEED_BIGDATA2015-01-15
修改历史
修改日期
担当者
审阅人
版本号
新增
2015-01-15
孙云涛
V1.0
1.概述
本篇文档主要讲解hadoop的安装过程。
Hadoop是安装hbase和hive的基础,即安装hbase和hive之前必须先安装hadoop并且hdfs和mapreduce必须都功能正常。
因为hbase和hive其底层所使用都是应用hadoop的两个核心部分—hdfs和mapreduce。
在安装hadoop之前需要考滤操作系统的版本(32位还是64位)以及hbase和hive的版本,否则会引起jar包不支持而导致的jar包替换或jar包重新编译等问题。
Hadoop、hbase、hive的版本匹配信息如下:
由于我们所使用的操作系统centos6.5是32位,而且hadoop2.2.0是官方推荐的稳定版本,所以本次安装的hadoop是2.2.0版本,具体的安装方式和配置方式请参考本篇文档的正文部分。
2.正文
本次hadoop集群规模以及分布如下:
主机IP
主机名
主机角色
操作系统
192.168.1.202
hadoop02
namenode
Centos6.5
192.168.1.201
hadoop01
datanode
Centos6.5
192.168.1.203
hadoop03
datanode
Centos6.5
192.168.1.204
hadoop04
datanode
Centos6.5
注意:
datanode的数量要求是奇数,否则后继安装hbase时会报错。
2.1操作系统安装
每台主机都安装centos6.5,安装时可以用desktop方式进行安装,但是安装完成之后需要把启动模式改命令行模式,然后重新启动每台主机。
修改启动模式需要修改/etc/inittab这个文件
把id后面的数字改成3
2.2配置网络
Hadoop集群中的第个主机节点需要配置成静态IP,配置IP时需要修改/etc/sysconfig/network-scripts/ifcfg-eth0这个文件,修改内容如下(以namenode的文件为例)
修改完成之后,需要运行servicenetworkrestart这个命令。
其它各个datanode主机也需要按同样的方式对网络进行配置,三个datanode的IP分别为:
192.168.1.201;192.168.1.203;192.168.1.204。
网络配置完成之后要通过ping命令确认各主机之间是否能访问。
2.3修改主机名
由于hadoop集群,特别是hbase集群在各节点在通信过程中直接使用IP会出现问题,所以集群中每个节点主机要配置一个固定的主机名。
1)修改/etc/sysconfig/network这个文件
Namenode节点:
Datanode节点1:
Datanode节点2:
Datanode节点3:
2)修改/etc/hosts文件
注意默认127.0.0.1localhost后面会有其它内容,建意删掉,否则hadoop集群能正常启动运行,但使用hbase时会出现访问拒绝的情况。
在namenode节点上修改完成/ect/hosts这个文件之后可以通过scp命令复制到各个datanode节点上。
Scp命令示例:
scp/etc/hosts192.168.1.201:
/etc
scp/etc/hosts192.168.1.203:
/etc
scp/etc/hosts192.168.1.204:
/etc
2.4配置ssh无密码登陆
1)在namenode节点上执行命令ssh-keygen-trsa之后一路回车,查看刚生成的无密码钥对:
cd.ssh后执行ll
2、把id_rsa.pub追加到授权的key里面去。
执行命令cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
3、修改权限:
执行chmod600~/.ssh/authorized_keys
4、确保cat/etc/ssh/sshd_config中存在如下内容
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFile.ssh/authorized_keys
如需修改,则在修改后执行重启SSH服务命令使其生效:
servicesshdrestart
5、将公钥复制到所有的datanode节点上
scp~/.ssh/id_rsa.pub192.168.1.201:
~/
scp~/.ssh/id_rsa.pub192.168.1.203:
~/
scp~/.ssh/id_rsa.pub192.168.1.204:
~/
通过scp进行远程复制过程中会要求输入各节点的主机登录密码。
6、在各datanode节点上创建.ssh文件夹:
mkdir~/.ssh然后执行chmod700~/.ssh(若文件夹以存在则不需要创建)
7、在各datanode节点上,将公钥追加到授权文件authorized_keys执行命令:
cat~/id_rsa.pub>>~/.ssh/authorized_keys然后执行chmod600~/.ssh/authorized_keys
8、在各datanode节点上确保cat/etc/ssh/sshd_config中存在如下内容
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFile.ssh/authorized_keys
9、重新启动各个节点(包括namenode和datanode)
10、各个节点全部重新启动完成之后需要验证一下ssh无密码登录是否成功(在namenode结点上验证)
从上面的截图可以看出在namenode节点通过ssh命令登录其它节点时不再需要输入密码。
注意:
如果ssh无密码登录配置完成之后,有哪个节点进行过系统重新安装,需要在namenode节点上,把/root/.ssh/known_hosts这个文件中把重新安装过系统的结点的信息删掉,然后重新通过ssh命令进行连接,否则会报“主机指纹无法识别的”的异常
例如:
hadoop01这个节点系统重新安装过后,当公钥复制完成和授权配完成之后,需要在namenode结点上把/root/.ssh/known_hosts文件中的hadoop01相关的信息删除掉。
2.5安装JDK
安装的JDK需要与操作系统相匹配,例如centos6.5是32位的操作系统,所以安装的JDK也应该是32位的JDK。
本次安装的JDK版本是jdk-8u25-linux-i586.rpm,参考下载地址是
JDK下载之后,进行安装,各个节点都需要安装,而且安装路径和/etc/profile中的配置每个节点要求一至(/etc/profile可以在namenode节点进行配置,然后通过scp命令向其它节点复制)
JDK安装目录
JDK安装包放到指定目录下,由于是RPM包所以通过rpm–ivh命令进行安装
rpm-ivhjdk-8u25-linux-i586.rpm
rpm命令运行完成之后在/usr/java目录下会生成jdk1.8.0_25这个目录
修改/etc/profile这个文件
新增内容如下:
exportJAVA_HOME=/usr/java/jdk1.8.0_25/
exportJRE_HOME=/usr/java/jdk1.8.0_25/jre
exportCLASS_PATH=.:
$CLASS_PATH:
$JAVA_HOME/lib:
$JRE_HOME/lib
exportPATH=$PATH:
$JAVA_HOME/bin:
$JRE_HOME/bin
profile修改之后,需要重启机器,重启之后通过java–version验证JDK是否安装成功
2.6关闭防火墙并停止一些服务
如果不关闭防火墙并停止一些服务在运行mapreduce时会出现“访问拒绝”错误。
注意,集群中每个节点(包括namenode和各个datanode)的防火墙都需要关闭。
在各个节点中执行以命令:
vim/etc/sysconfig/selinux
SELINUX=enforcing
↓
SELINUX=disabled
forSERVICESinabrtdacpidavahi-daemoncpuspeedhaldaemonmdmonitormessagebusudev-post;dochkconfig${SERVICES}off;done
2.7安装以及配置hadoop
1)创建hadoop用户以及相关的工作目录
使用root登陆所有机器后,所有的机器都创建hadoop用户
useraddhadoop
passwdhadoop
此时在/home/下就会生成一个hadoop目录,目录路径为/home/hadoop
创建相关的目录
定义需要数据及目录的存放路径
定义代码及工具存放的路径
mkdir-p/home/hadoop/source
定义数据节点存放的路径到跟目录下的hadoop文件夹,这里是数据节点存放目录需要有足够的空间存放
mkdir-p/hadoop/hdfs
mkdir-p/hadoop/tmp
mkdir-p/hadoop/log
设置可写权限
chmod-R755/hadoop
2)安装配置hadoop
声明:
Hadoop的安装与配置可以先在namenode节点上进行,然后把配置完成之后hadoop包和profile文件用scp命令同步到各个datanode节点上,而且各个datanode上不需要对配置好的hadoop包和profile进行任何修改。
本次hadoop使用的安装包:
hadoop-2.2.0.tar.gz,参考下载地址http:
//ftp.riken.jp/net/apache/hadoop/common/
下载之后放置在/home/hadoop/source下,并过通过tar命令进行解压
tar–zxvfhadoop-2.2.0.tar.gz
解压之后创建联接(联接需要在各个节点上独立创建)
cd/home/hadoop
ln-s/home/hadoop/source/hadoop-2.2.0/./hadoop
在/etc/profile文件中追加一些内容
exportHADOOP_HOME=/home/hadoop/hadoop
exportHADOOP_COMMON_HOME=$HADOOP_HOME
exportHADOOP_HDFS_HOME=$HADOOP_HOME
exportHADOOP_MAPRED_HOME=$HADOOP_HOME
exportHADOOP_YARN_HOME=$HADOOP_HOME
exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportPATH=$PATH:
$HADOOP_HOME/bin:
$HADOOP_HOME/sbin:
$HADOOP_HOME/lib
exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
进入到/home/hadoop/source/hadoop-2.2.0/etc/hadoop目录下对下面几个文件进行修改
core-site.xml文件中在内追加以下内容:
hadoop.tmp.dir
/hadoop/tmp
Abaseforothertemporarydirectories.
fs.default.name
hdfs:
//hadoop02:
9000
hadoop.proxyuser.root.hosts
hadoop02
hadoop.proxyuser.root.groups
*
hdfs-site.xml文件中在内追加以下内容:
dfs.replication
3
dfs.namenode.name.dir
file:
/hadoop/hdfs/name
true
dfs.federation.nameservice.id
ns1
dfs.namenode.backup.address.ns1
hadoop02:
50100
dfs.namenode.backup.http-address.ns1
hadoop02:
50105
dfs.federation.nameservices
ns1
dfs.namenode.rpc-address.ns1
hadoop02:
9000
dfs.namenode.rpc-address.ns2
hadoop02:
9000
dfs.namenode.http-address.ns1
hadoop02:
23001
dfs.namenode.http-address.ns2
hadoop02:
13001
dfs.dataname.data.dir
file:
/hadoop/hdfs/data
true
dfs.namenode.secondary.http-address.ns1
hadoop02:
23002
dfs.namenode.secondary.http-address.ns2
hadoop02:
23002
dfs.namenode.secondary.http-address.ns1
hadoop02:
23003
dfs.namenode.secondary.http-address.ns2
hadoop02:
23003
hadoop-env.sh文件中修改以下内容
exportJAVA_HOME=/usr/java/jdk1.8.0_25
注:
这里的JAVA_HOME需要与/etc/profile里的JAVA_HOME配置一样。
yarn-site.xml文件中在内追加以下内容:
yarn.resourcemanager.address
hadoop02:
18040
yarn.resourcemanager.scheduler.address
hadoop02:
18030
yarn.resourcemanager.webapp.address
hadoop02:
18088
yarn.resourcemanager.resource-tracker.address
hadoop02:
18025
yarn.resourcemanager.admin.address
hadoop02:
18141
yarn.nodemanager.aux-services
mapreduce.shuffle
mapred-site.xml文件中在内追加以下内容:
mapred.job.tracker
hadoop02:
9001
mapred.map.java.opts
-Xmx1024m
mapred.child.java.opts
-Xmx1024m
注:
如果没有mapred-site.xml文件,可以根据mapred-site.xml.template复制出一个。
修改slaves文件
hadoop01
hadoop03
hadoop04
注:
这里写的几个主机名都是datanode节点的主机名
上述几个文件修改完成之后,hadoop包和/etc/profile文件通过scp命令复制到各个datanode上
scp-r/home/hadoop/source/hadoop-2.2.0hadoop01:
/home/hadoop/source/
scp-r/home/hadoop/source/hadoop-2.2.0hadoop03:
/home/hadoop/source/
scp-r/home/hadoop/source/hadoop-2.2.0hadoop04:
/home/hadoop/source/
scp/etc/profilehadoop01:
/etc/profile
scp/etc/profilehadoop03:
/etc/profile
scp/etc/profilehadoop04:
/etc/profile
由于/etc/profile进行了修改,各个节点需要重新启动一下。
2.8验证hadoop集群
1)格式化namenode
在namenode节点执行以下命令
hadoopnamenode–format
2)启动hadoop集群
在namenode节点执行以下命令
start-all.sh
3)查看进程
在namenode节点执行以下命令
jps
在datanode节点执行以下命令
jps
注:
hadoop2.2.0以前的版本进程中还会有nodemanager进程,但2.2.0版本中没有这个进程也不影响hdfs和mapreduce的运行。
4)验证hdfs
在namenode节点执行以下命令
hadoopfs-lshdfs:
//hadoop02:
9000/
5)验证mapreduce
在namenode节点执行以下命令
hadoopfs-put/home/hadoop/hadoop/*.txthdfs:
//hadoop02:
9000/input
cd/home/hadoop/hadoop/share/hadoop/mapreduce
hadoopjarhadoop-mapreduce-examples-2.2.0.jarwordcounthdfs:
//hadoop02:
9000/inputhdfs:
//hadoop02:
9000/output
执行hadoopfs-lshdfs:
//hadoop02:
9000/
执行hadoopfs-cathdfs:
//hadoop02:
9000/output/part-r-00000
出现上述各个截屏中显示的内容,说明hadoop集群已经配置成功。
3.补充说明
3.1hadoop的启动与停止
start-all.sh启动所有的Hadoop守护进程。
包括NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTrack
stop-all.sh停止所有的Hadoop守护进程。
包括NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTrack
start-dfs.sh启动HadoopHDFS守护进程NameNode、Secondar