Linux 之 VMware虚拟机CentOS上安装hadoop集群

Linux之 hadoop集群

第一步 官网下载jar包 上传到系统中 解压

第二步 设置免密登录
a. 用 ssh-key-gen 在本地主机上创建公钥和密钥 ssh-keygen -t rsa -P ''
[[email protected] ~]# ssh-keygen -t rsa -P ''

Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]

Enter passphrase (empty for no passphrase): [Press enter key]

Enter same passphrase again: [Pess enter key]

Your identification has been saved in /home/jsmith/.ssh/id_rsa.

Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.

The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9

[email protected]

b. 用 ssh-copy-id 把公钥复制到远程主机上 ssh-copy-id -i  root@Datanode1
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@Datanode1

root@Datanode1's password:

Now try logging into the machine, with ―ssh ?root@Datanode1‘‖, and check in:

.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.

[注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]

c. 直接登录远程主机
[[email protected] ~]# ssh Datanode1

Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2

[注: SSH 不会询问密码.]

[root@Datanode1 ~]

[注: 你现在已经登录到了远程主机上]

d. 注意:在这里,执行都在Namenode上面,而且Namenode也需要对自己进行无密码操作即
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]操作,

其他的,按照a-c重复操作Datanode2和Datanode3就行了

一定要能无密码访问,否则不能集群Hadoop一定失败.

第三步 设置主机名和ip
1.命令 vi /etc/hostname 设置主机名和ip
2.命令 vi /etc/hosts 设置ip
注释本地ip 加入我们的ip
192.168.204.128 Master

第四步 创建文件夹 -p 强制创建
1.mkdir /usr/local/hadoop/tmp
2.mkdir /usr/local/hadoop/name
3.mkdir -p /usr/local/hadoop/hdfs/name
4.mkdir -p /usr/local/hadoop/hdfs/data

第五步 修改超级用户的环境变量
1.vi ~/.bash_profile
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME PATH
2.声明一下 source ~/.bash_profile

3.hadoop-env.sh中配置JAVA_HOME

第六步 修改4个配置文件,分别是core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml(Hadoop-env.sh、yarn-env.sh)
1. 执行命令到 cd /usr/local/hadoop/hadoop-2.7.1/etc/hadoop
修改:
core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
<description>默认的HDFS路径</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>路径默认是NameNode、DataNode等存放数据的公目录</description>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
<description> 网页界面访问数据使用的用户名</description>
</property>

</configuration>

hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>备份几份数据</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/name</value>
<description>NN使用的元数据保存</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file: /usr/local/hadoop /data/dfs/dn</value>
<description>DN使用的数据保存</description>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop /etc/hadoop/dfs-hosts.exclude</value>
<description>增加、卸载节点的文件的路径</description>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file: /usr/local/hadoop /data/dfs/nn/edits</value>
<description>edits文件的存储路径</description>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>/usr/local/hadoop /data/dfs/snn/edits</value>
<description>SecondaryNameNode在文件系统中存储用于合并的临时edits文件的目录</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.204.128:50090</value>
<description>secondarynamenode提供网络服务的端口和地址</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>文件操作时的权限检查标识</description>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>192.168.204.128:50070</value>
<description>namenode提供网络服务的端口和地址</description>
</property>
</configuration>

mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>使用yarn运行mapreduce程序</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.204.128:10020</value>
<description>MapReduce的JobHistoryserver的IP和端口</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.204.128:19888</value>
<description>MapReduce的JobHistoryserver在web端查看的地址</description>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
<description>是否开启小作业优化</description>
</property>
</configuration>


yarn-site.xml:
<configuration>
<!-- Site specific YARN configuration properties -->

<property>
<name>yarn.log-aggregation-enable</name>
<value>false</value>
<description>是否启用日志聚合功能,日志聚合开启后保存到HDFS上</description>
</property>

<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
<description>聚合后的日志在HDFS上保存多长时间,单位为s </description>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
<description>把resourcemanager放到那台机器</description>
</property>
</configuration>



4.修改slaves文件 加入我们的ip和名称


第七步 配置一下hadoop的环境变量 然后格式化节点
1. 执行命令 /usr/local/hadoop/hadoop-2.7.3/bin
2. 配置一下hadoop的环境变量:
执行 vi /etc/profile
最后添加 export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3. 格式化 hadoop namenode -format

第八步 启动和停止HDFS 在hadoop的sbin下
1.start-dfs.sh 启动单一

2.start-all.sh 启动全部

3.stop-all.sh 停止全部

第九步 启动完后jps命令可以查看正在启动的java服务

第十步 netstat -nltp命令查看所监听的端口

第十一步 查看并关闭防火墙
firewall-cmd --state 查看防火墙

systemctl stop firewalld.service 关闭防火墙

第十二步 hadoop 开机自启

1.进入/etc/rc.d/init.d目录

cd /etc/rc.d/init.d

2.新建文件hadoop

touch hadoop

3.添加以下内容,只在master配置即可

#!/bin/bash
#chkconfig:2345 20 90
#description:hadoop
#processname:hadoop
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
case $1 in
start) su root /usr/local/hadoop/hadoop-2.7.3/sbin/start-all.sh;;
stop) su root /usr/local/hadoop/hadoop-2.7.3/sbin/stop-all.sh;;
*) echo "require start|stop" ;;
esac
4.给文件设置权限

chmod +x hadoop

5.加入开机自启列表

chkconfig --add hadoop

6.查看列表

chkconfig --list

猜你喜欢

转载自www.cnblogs.com/lzz122/p/10892469.html