hadoop 集群部署

1.创建用户

10.4.231.61 mqtt1

10.4.231.57 mqtt3

创建用户hadoop(所有节点机器都要创建并且目录一致)

adduser hadoop

2.生成公共密钥

ssh-keygen -t rsa -P ''

查看"/home/用户名/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。

接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

查看下authorized_keys的权限,如果权限不对则利用如下命令设置权限

chmod600 authorized_keys


用root用户登录修改SSH配置文件"/etc/ssh/sshd_config"的下列内容

检查下面几行前面”#”注释是否取消掉:

RSAAuthentication yes# 启用 RSA 认证

PubkeyAuthenticationyes # 启用公钥私钥配对认证方式

AuthorizedKeysFile  %h/.ssh/authorized_keys# 公钥文件路径 

 

设置完之后记得重启SSH服务,才能使刚才设置有效。

退出root登录,使用普通用户验证是否设置成功。

ssh 本机host

将id_rsa.pub文件发送到远程服务器。

scp id_rsa.pub [email protected]:/home/

每台服务器将得到的id_rsa.pub添加到authorized_keys

cat /home/id_rsa.pub >>/home/hadoop/.ssh/authorized_keys


测试


3.新建jdk安装目录

cd /usr

mkdir java

cd java/

tar xzvf  jdk-8u121-linux-x64.tar.gz

vi  /etc/profile

修改配置文件

配置文件最后加入:

#java environment

export JAVA_HOME=/usr/java/jdk1.8.0_121

export PATH=$JAVA_HOME/bin:$PATH

HADOOP_PREFIX=/home/hadoop/hadoop (一定要设置hadoop环境变量)

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

source/etc/profile

测试

java –version


修改bashrc文件

vi ~/.bashrc

exportHADOOP_HOME=/home/hadoop/hadoop

ExportPATH=${HADOOP_HOME}/bin:${HIVE_HOME}/bin:${HADOOP_HOME}/sbin:${HIVE_HOME}/sbin:$PATH

4. Hadoop集群安装

安装hadoop

解压安装包

tar -zxvf hadoop-2.7.4.tar.gz

解压后的件夹改名成hadoop,并且将文件夹"hadoop"读权限分配给hadoop普通用户,每台服务器都要做。

chown -Rhadoop:hadoophadoop

打开core-site.xml文件并在<configuration>,</configuration>标签之间添加以下属性

<property>

<name>fs.defaultFS</name>

<value>hdfs://10.128.51.117:9000</value>

</property>

<property>

<name>hadoop.proxyuser.hadoop.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hadoop.groups</name>

<value>*</value>

</property>

 

 

 

打开hdfs-site.xml文件并在<configuration>,</configuration>标签之间添加以下属性:

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>/app/hadoop/dfs/namenode</value>

</property>

 

<property>

 <name>dfs.datanode.data.dir</name>

 <value>/app/hadoop/dfs/datanode</value>

</property>

打开yarn-site.xml文件并在<configuration>,</configuration>标签之间添加以下属性

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>maximum-am-resource-percent</name>

<value>0.5</value>

</property>

 

配置slaves文件(Master主机特有)去掉"localhost",加入集群中所有Slave机器的IP,也是每行一个。

 eg:


现在在Master机器上的Hadoop配置就结束了,现在将配好的hadoop所在文件夹复制到所有的远程服务器。

scp -r /home/hadoop [email protected]服务器IP:/home/hadoop

 

5.启动hdfs

格式化hdfs文件

在bin/目录下

./hdfsnamenode -format

 启动NameNode守护进程和DataNode守护进程

sbin/start-dfs.sh

bin/hdfs dfs -mkdir /user

bin/hdfs dfs -mkdir /user/<username>(这里指的是登陆的用户名)

 

(jps查看进程)

将输入文件复制到分布式文件系统中

bin/hdfs dfs -put etc/hadoop input

6.测试

运行示例

bin/hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar grep input output'dfs[a-z.]+'


检查输出文件

bin/hdfs dfs -getoutput output

cat output/*

停止hdfs

sbin/stop-dfs.sh

7.启动ResourceManager守护程序和NodeManager守护程序

sbin / start-yarn.sh

ResourceManagerWeb界面默认值为ResourceManager - http// localhost8088 /

//  http//192.168.56.28088/