hadoop集群部署

来源:互联网 发布:高三要有多努力 知乎 编辑:程序博客网 时间:2024/06/01 01:34

1.服务器(ubuntu server 版本)


2.配置zookeeper集群

方法如上一篇博客写的,只是将zookeeper进群配置到zwj4-6这三台主机上,博客地址:http://blog.csdn.net/qq_14806125/article/details/50493914

3.配置免密码登陆

配置zwj1到zwj1-zwj6的ssh免密码登陆

①修改hosts文件

sudo vi /etc/hosts
将localhost 那两行整行删除,并加入如下ip名与主机名的映射关系

192.168.56.101      zwj1192.168.56.102      zwj2192.168.56.103      zwj3192.168.56.104      zwj4192.168.56.105      zwj5192.168.56.106      zwj6

②添加config文件(方便不同用户名机子之间的ssh)

cd ~/.ssh/
touch config
vi config
Host zwj1
    user zwj1Host zwj2    user zwj2Host zwj3    user zwj3Host zwj4    user zwj4Host zwj5    user zwj5Host zwj6    user zwj6

③在zwj1的机子上,输入

ssh-keygen -t rsa
ssh-copy-id zwj1ssh-copy-id zwj2ssh-copy-id zwj3ssh-copy-id zwj4ssh-copy-id zwj5ssh-copy-id zwj6

同理配置zwj2到 zwj1-zwj6的免密码登陆、zwj3 到 zwj3-zwj6的免密码登陆


④测试连接

ssh zwj1
如果可以免密码登陆,证明配置没有问题

⑤配置java以及hadoop的环境(每台机子上都要)

sudo vi /etc/profile
在文件末行加入以下内容(请根据你个人的具体情况添加)

JAVA_HOME=/enviroment/jdk1.8.0_65export JAVA_HOMEPATH=$PATH:$JAVA_HOME/binexport PATHCLASSPATH=.:$JAVA_HOME/libexport CLASSPATHexport HADOOP_INSTALL=/enviroment/hadoop-2.7.1export PATH=$PATH:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin



4.安装配置hadoop集群

①将下载好的文件放到自己定义的文件夹里面(这里我是放在自己建的文件夹/environment),并解压(解压跟配置都在任意一台机子上进行,配置好之后再复制到其他机子上)

tar -zxvf hadoop-2.7.7.tar.gz

②修改hadoo-env.sh
将export JAVA_HOME={JAVA_HOME}这一整行都替换成你java所在的目录,如export JAVA_HOME=/environment/jdk1.8.0_65

③修改core-site.xml

<configuration><!-- 指定hdfs的nameservice为ns1 --><property><name>fs.defaultFS</name><value>hdfs://ns1</value></property><!-- 指定hadoop临时目录 --><property><name>hadoop.tmp.dir</name><value>/environment/hadoop-2.7.1/tmp</value></property><!-- 指定zookeeper地址 --><property><name>ha.zookeeper.quorum</name><value>zwj4:2181,<span style="font-family: Arial, Helvetica, sans-serif;">zwj5</span><span style="font-family: Arial, Helvetica, sans-serif;">:2181,zwj6:2181</value></span></property></configuration>
④修改hdfs-site.xml

<configuration><!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 --><property><name>dfs.nameservices</name><value>ns1</value></property><!-- ns1下面有两个NameNode,分别是nn1,nn2 --><property><name>dfs.ha.namenodes.ns1</name><value>nn1,nn2</value></property><!-- nn1的RPC通信地址 --><property><name>dfs.namenode.rpc-address.ns1.nn1</name><value>zwj1:9000</value></property><!-- nn1的http通信地址 --><property><name>dfs.namenode.http-address.ns1.nn1</name><value>zwj1:50070</value></property><!-- nn2的RPC通信地址 --><property><name>dfs.namenode.rpc-address.ns1.nn2</name><value>zwj2:9000</value></property><!-- nn2的http通信地址 --><property><name>dfs.namenode.http-address.ns1.nn2</name><value>zwj2:50070</value></property><!-- 指定NameNode的元数据在JournalNode上的存放位置 --><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://zwj4:8485;zwj5:8485;zwj6:8485/ns1</value></property><!-- 指定JournalNode在本地磁盘存放数据的位置 --><property><name>dfs.journalnode.edits.dir</name><value>/enviroment/hadoop-2.7.1/journal</value></property><!-- 开启NameNode失败自动切换 --><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!-- 配置失败自动切换实现方式 --><property><name>dfs.client.failover.proxy.provider.ns1</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行--><property><name>dfs.ha.fencing.methods</name><value>sshfenceshell(/bin/true)</value></property><!-- 使用sshfence隔离机制时需要ssh免登陆 --><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>~/.ssh/id_rsa</value></property><!-- 配置sshfence隔离机制超时时间 --><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property><property>      <name>dfs.permissions</name>      <value>false</value></property></configuration>

⑤修改mapred-site.xml

<configuration><!-- 指定mr框架为yarn方式 --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
⑤修改yarn-site.xml

<configuration><!-- 分别指定RM的地址 --><property>   <name>yarn.resourcemanager.hostname</name>   <value>zwj3</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>

⑥修改slaves文件,将里面的内容替换为

zwj4zwj5zwj6

⑦将配置好的文件拷贝到其他机器上

scp -r /environment/hadoop2.7.1/ zwj2:/enviromentscp -r /environment/hadoop2.7.1/ zwj3:/enviromentscp -r /environment/hadoop2.7.1/ zwj4:/enviromentscp -r /environment/hadoop2.7.1/ zwj5:/enviromentscp -r /environment/hadoop2.7.1/ zwj6:/enviroment


5.启动集群,按顺序执行

①启动zookeeper集群和journalnode(zwj4-zwj6都要)

cd /enviroment/zookeeper/bin/ ./zkServer.sh startcd /enviroment/hadoop-2.7.1/sbin/hadoop-daemon.sh start journalnode

②在zwj1上格式化hdfs

hdfs namenode -format

③在zwj1上格式化zookeeper

hdfs zkfc -formatZK


④在zwj1上启动HDFS

start-dfs.sh

⑤在zwj3上启动yarn

start-yarn.sh

到这里,hadoop的集群的配置已经完毕。

在浏览器上访问http://192.168.56.101:50070 可以看到namenode是active

在浏览器上访问http://192.168.56.102:50070 可以看到namenode是standby

在浏览器上访问http://192.168.56.103:8088 可以看到HDFS的一些信息。
















0 0