Hadoop入门系列(三) Centos7的基本配置
前言准备
这些基本配置是每台虚拟机刚下完都要检查的,不仅仅是为了安装hadoop而做准备,用于其他方面也一样
1.VMware Tools的安装
2. 共享文件夹
虚拟机>设置
选项下的共享文件夹,改成总是启用,并添加一个文件夹
完成后就可以了,下面我们在虚拟机中找到它
就在mmt当中
如果消失了就用这个命令
sudo vmhgfs-fuse /mnt/hgfs/
3. 赋予hadoop用户sudo权限
[hadoop@HadoopMaster ~]$ su
密码:
[root@HadoopMaster hadoop]# gedit /etc/sudoers
在打开的文件中找到下面这行,把自己创建的用户加入
这里我创建的用户是hadoop, 所以我就加了一行hadoop ALL=(ALL) ALL
下面显示的格式是sh ,可以在gedit打开文件后自行修改显示样式,默认的是matlab
形式
保存并退出即可
4. 配置主机名与ip映射
[hadoop@HadoopMaster ~]$ sudo vim /etc/hosts
这里建议注释上面两行,在下面加上一行
格式是自己虚拟机的ip 与 虚拟机的主机名
可以自己测试一下能不能ping通
基本配置
完成了之前的几步操作,接下来就可以进行CentOS的其他配置了
网络环境配置
1.关闭防火墙与SELinux
在Hadoop安装过程中需要关闭防火墙和SELinux,否则会出现异常。防火墙是隔离内
外网、过滤非法数据的有力屏障,正确使用防火墙可以确保系统的网络安全。然而在Hadoop
安装过程中需要关闭防火墙和SELinux,否则会出现异常。以hadoop用户身份登录进行系统,在终端中执行以下命令关闭SELinux和防火墙
sudo systemctl stop firewalld #停止防火墙服务
sudo systemctl disable firewalld #关闭防火墙开机自动启动
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #关闭SELinux
grep SELINUX=disabled /etc/selinux/config #检查配置是否已修改
sudo setenforce 0 #停止SELinux
firewall-cmd --state # 查看默认防火墙状态
2.jdk安装与环境配置
首先移除系统自带的jdk
rpm -qa | grep java
sudo yum remove java-1.*
然后把事先准备好的文件上传到虚拟机中/mnt/hgfs/emjoy
这里我就用到了虚拟文件夹
cd /mnt/hgfs/emjoy
sudo rpm -ivh ~/jdk-8u172-linux-x64.rpm #安装JDK1.8
配置环境变量
cat << EOF | sudo tee /etc/profile.d/jdk.sh > /dev/null
以上命令执行后出现">"提示后,输入的文件内容
export JAVA_HOME=/usr/java/default
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${PATH}:${JAVA_HOME}/bin
EOF
source /etc/profile.d/jdk.sh #使配置立即生效
输入java -version
查看是否成功,如下,输入下面的信息,就说明java的安装成功
3.ssh无密码验证配置
Hadoop是通过SSH来启动和管理各个DataNode上的各种守护进程的,节点之间不需
要输入密码就可以执行指令,故我们需要配置SSH无密码公钥验证。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
使用下面的命令导入hadoop用户公钥
ssh-copy-id hadoop@localhost
该命令的作用是将本地用户通过sshkeygen创建的公钥写入将要登录的远程系统上hadoop
用户的授权文件”~/.authorized_keys”中。凡是在拥有此授权文件中的一个公钥的
用户都可以以hadoop用户的身份无密码远程ssh登录系统。用下列命令可以查看授权文件
中的公钥信息。
验证无密钥登录
ssh hadoop@localhost
或者
ssh localhost
不许要输入密码 就说明成功了
退出ssh 使用 exit命令或者快捷键CTRL+D
如果SSH无密码验证配置过程中有操作错误,可以执行以下命令删除与ssh密钥相关
的所有文件,然后再重新配置。
rm -rf ~/.ssh
4. 安装hadoop2.8.3系统
下载
cd ~
curl -O \
http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-2.8.3/hadoop-2.8.3.tar.gz
安装
tar xvf ~/hadoop-2.8.3.tar.gz -C ~ #将安装包解包到主目录
sudo mv ~/hadoop-2.8.3 /usr/local/hadoop2
mkdir -p /usr/local/hadoop2/tmp/dfs/{name,data}
环境变量
执行下列命令在/etc/profile.d目录下建立hadoop的环境变量配置文件hadoop2.sh 执行
第2条命令后,核对一下文件内容是否正确正确后再执行后续命令。
echo 'export HADOOP_HOME=/usr/local/hadoop2
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export YARN_HOME=${HADOOP_HOME}
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"' > ~/hadoop2.sh
cat ~/hadoop2.sh
sudo mv ~/hadoop2.sh /etc/profile.d/
sudo chown root:root /etc/profile.d/hadoop2.sh
source /etc/profile.d/hadoop2.sh
检查安装是否成功**
hadoop version
安装本地库
hadoop使用Java语言开发,但是一些需求和操作并不适合使用java语言处理,为了提
高性能就引入了本地库(c/编写的。安装本地库可以提高系统性能,但不安装系统也可以
正常工作,差别仅是性能稍低。执行以下命令安装本地库。
sudo yum install zlib snappy lz4 bzip2 openssl-libs openssl-devel #安装本地库
cp $HADOOP_HOME/lib/native/* $HADOOP_HOME/lib/ #复制hadoop库到库目录下
hadoop checknative #检查本地库状态
若第3条命令的执行结果如下,既所有本地库的状态均显示为”说明本地库安装
成功。
5.配置 Hadoop2.8.3 伪分布式系统
tar -xvf ./hadoop2configfiles.tar -C /usr/local/hadoop2/etc/hadoop/
方法二是直接修改配置文件,请按以下方法修改
修改hadoop-env.sh文件
sed -i 's/# export JAVA_HOME=/export JAVA_HOME=\/usr\/java\/default/g' \
/usr/local/hadoop2/etc/hadoop/hadoop-env.sh
修改core-site.xml文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop2/tmp</value>
</property>
</configuration>
修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop2/tmp/dfs/data</value>
</property>
</configuration>
修改mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>/usr/local/hadoop2/share/hadoop/mapreduce/*, /usr/lib/hadoop2/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
修改yarn-site.xml文件
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6.HDFS文件系统格式化和系统启动
格式化
执行以下命令进行格式化
cd $HADOOP_HOME
bin/hdfs namenode -format
启动hadoop
执行以下命令启动系统
cd $HADOOP_HOME
sbin/start-dfs.sh
sbin/start-yarn.sh
结果如下
查看结果
当输入jps后输出以下六个进程,就说明启动成功了
浏览器查看
进入虚拟机桌面,打开浏览器在地址栏输入“http://localhost:50070”后,如果能打开下
图NameNode的Web管理网页说明成功启动了Hadoop的NameNode,通过这个页面可以
查看Hadoop的HDFS文件系统的目录结构、存储的文件、系统日志及当前状态。
http://localhost:50070
http://localhost:8088
7.Hadoop系统的关闭
执行以下两条命令就可以关闭系统
cd $HADOOP_HOME
sbin/stop-yarn.sh
sbin/stop-dfs.sh
特别提醒:如果启动了Hadoop,请在CentOS6操作系统关闭前务必关闭Hadoop系统,否则会损坏HDFS文件系统。