前言
大数据省赛貌似用的是CentOS7+Hadoop2.7.6,所以用CentOS再配置一遍Hadoop2.7.6,这篇博客简单记录一下安装和配置过程。
目录
在103上启动yarn(因为resourceManager在103上):
1.硬件安装
自定义(高级)--稍后安装操作系统--Linux+CentOS7 64位--核心内存之类的看情况填--NAT--默认--默认--默认--40GB--完成--编辑此虚拟机--CD/DVD--使用ISO--开启此虚拟机--install
2.配置网络
su root
vim /etc/sysconfig/network-scripts/ifcfg-ens33
dhcp改成static
在下面插入:
修改主机名称
vim /etc/hostname
修改主机名称映射
vim /etc/hosts
重启
sudo reboot
3.配置环境
以下全程以root用户进行
1)安装elep-release
yum install -y epel-release
2)关闭防火墙和防火墙开机自启动
systemctl stop firewalld
systemctl disable firewalld.service
3)给原始用户增加root权限
sudo vim /etc/sudoers
在%wheel ALL=(ALL) ALL下面加入
用户名 ALL=(ALL) NOPASSWD:ALL
4)在opt目录下创建文件夹,并修改所属主和组
mkdir /opt/module
mkdir /opt/software
sudo chown wolf:wolf module/ software/
5)卸载虚拟机自带的JDK
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
rmp -qa:查询所安装的所以软件包
grep -i:忽略大小写
xargs -n1:表示每次只传一个参数
rpm -e -nodeps:强制卸载软件
重启
reboot
4.克隆虚拟机
过程略,克隆出Hadoop100、102、103、104
5.修改克隆机的配置
修改ip地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改IPADDR后面的100,改成102、103、104
修改主机名称
vim /etc/hostname
还是,改成hadoop102、103、104
重启
reboot
然后用ssh工具把软件包都上传到机器上。
6.安装jdk
以下步骤可以在主机用户下进行
解压jdk到module
tar -zxvf jdk-xxxxx -C /opt/module
配置环境变量
sudo vim /etc/profile
在末尾加上
export JAVA_HOME=/opt/module/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
激活环境变量修改
source /etc/profile
验证java
java -version
7.安装Hadoop 2.7.6
解压
tar -zxvf hadoop-2.7.6.tar.gz -C /opt/module/
配置环境变量
sudo vim /etc/profile
在末尾加上
export HADOOP_HOME=/opt/module/hadoop-2.7.6
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
激活环境变量修改
source /etc/profile
验证
hadoop
然后配置两个Node的环境变量
sudo vim /etc/profile
把master加入的内容也加进去
激活环境变量修改
source /etc/profile
8.本地运行模式测试
Grep案例
在hadoop安装目录中
mkdir input
cp etc/hadoop/*.xml input/
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar grep input/ output 'dfs[a-z.]+'
查看结果
WordCount案例
在hadoop安装目录下创建一个wcinput文件夹
mkdir wcinput
在wcinput文件夹下创建一个wc.input文件
touch wc.input
在wc.input文件中输入以下内容:
hadoop yarn
hadoop mapreduce
wolf
wolf
wolf
abcd
回到hadoop安装目录
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount wcinput wcoutput
9.全分布式配置
(1)配置网络(不知道有没有意义)
vim /etc/sysconfig/network
NETWORKING = yes
HOSTNAME=hadoop102
scp分发到103和104上
scp -r /opt/module/ wolf@hadoop103:/opt/
scp -r /opt/module/ wolf@hadoop104:/opt/
(2)集群配置
集群部署规划
hadoop-env.sh
修改JAVA_HOME为本机的JAVA_HOME路径
export JAVA_HOME=/opt/module/jdk1.8.0_171/
core-site.xml
<configuration>
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.6/data</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 2nn web 端访问地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
</configuration>
yarn-env.sh
修改JAVA_HOME为本机的JAVA_HOME路径
yarn-site.xml
<configuration>
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManeger的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
</configuration>
mapred-env.sh
修改JAVA_HOME为本机的JAVA_HOME路径
mapred-site.xml
拷贝mapred-site模板
cp mapred-site.xml.template mapred-site.xml
mapred-site.xml内容
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
分发到103和104
scp -r hadoop/ wolf@hadoop103:/opt/module/hadoop-2.7.6/etc/
scp -r hadoop/ wolf@hadoop104:/opt/module/hadoop-2.7.6/etc/
(3)格式化
清除data和log
rm -rf data/ logs/
格式化hdfs
bin/hdfs namenode -format
(4)手动启动集群(配置SSH免密登录之后可以群起)
启动hadoop102的namenode
sbin/hadoop-daemon.sh start namenode
启动hadoop102的datanode
sbin/hadoop-daemon.sh start datanode
启动hadoop103的datanode
sbin/hadoop-daemon.sh start datanode
启动hadoop104的datanode
sbin/hadoop-daemon.sh start datanode
网页验证
hadoop102:50070
10.配置ssh免密登录
(1)生成公钥
ssh-keygen -t rsa
(2)将公钥追加到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys文件的权限,命令如下:
chmod 600 ~/.ssh/authorized_keys
(3)修改master的ssh配置
sudo vi /etc/ssh/sshd_config
设置PermitEmptyPasswords配置为
PermitEmptyPasswords yes
使配置生效
sudo service sshd restart
修改HadoopMaster节点的~/.ssh目录和.ssh/authorized_keys文件的权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
(4)拷贝公钥到其他机器上
ssh-copy-id hadoop103
ssh-copy-id hadoop104
ssh-copy-id hadoop102
在其他两个机器上也进行同样操作。
11.群起集群
(1)配置slaves
cd /opt/module/hadoop-2.7.6/etc/hadoop/
vim slaves
添加如下内容:
hadoop102
hadoop103
hadoop104
在三台机器上都进行
(2)手动停止脚本
102
sbin/hadoop-daemon.sh stop datanode
sbin/hadoop-daemon.sh stop namenode
103&104
sbin/hadoop-daemon.sh stop datanode
(3) 启动集群
在102上启动dfs:
/opt/module/hadoop-2.7.6/sbin/start-dfs.sh
在103上启动yarn(因为resourceManager在103上):
/opt/module/hadoop-2.7.6/sbin/start-yarn.sh
至此,Hadoop2.7.6已经成功以完全分布式的运行模式安装在CentOS7上了。