Hadoop平台搭建,安装与配置完整过程

谁说我不能喝 提交于 2020-03-12 11:53:58

Hadoop的安装与配置

几个知识点:
HDFS:底层,存储
HBase :NOSQL列数据库
Map Reduce:编程模型,用于并行计算
ZooKeeper:分布式应用程序协调服务
Avro:数据序列化系统,设计用于支持大批数据交换的应用
Pig:大数据分析工具
Hive:数据仓库,依赖传统关系型数据库(行存储)
Sqoop:数据导入导出模式

**怕装坏了,可以先在虚拟机拍摄快照**
  1. Xftp连接虚拟机centos01,将Hadoop压缩包放入根目录下/opt/softwares,
  2. 用Xshell连接三台虚拟机
  3. 用SSH(Secure Shell)
    2.1检查电脑是否安装SSH
ssh -V


若没有就搜索教程安装一个

在Xshell中,查看—撰写—撰写栏-在下侧弹出的框中选择:发送文本到Xshell文本全部对话。
4. 配置ssh免秘钥登录
4.1生成密钥文件,并将秘钥加入到授权文件中。
1)创建,ssh将秘钥保存到此
在根目录下,#ls -a查看文件,因为ls会隐藏一部分文件
三台虚拟机一起:(执行完命令后打开每一个窗口看一下,防止出现其他问题)

mkdir .ssh
cd .ssh
ls
ssh-keygen -t rsa 生成秘钥文件


2)将公钥加入授权文件中,一个个来

cat ./id_rsa.pub >> ./authorized_keys


3)将centos02,centos03的秘钥文件远程拷贝到centos01,并将两者的秘钥文件重新命名为id_rsa.pub.centos02和id_rsa.pub.centos03.
在centos02中:

scp ~/.ssh/id_rsa.pub root@centos01:~/.ssh/id_rsa.pub.centos02

在centos03中:

scp ~/.ssh/id_rsa.pub root@centos01:~/.ssh/id_rsa.pub.centos03


4)在centos01中,将centos02和centos03节点的秘钥文件信息都加入到授权文件中。

cat ./id_rsa.pub.centos02 >> ./authorized_keys
cat ./id_rsa.pub.centos03 >> ./authorized_keys

进入authorized_keys查看

vi authorized_keys


可以看到01 02 03即成功

5)拷贝授权文件到各个节点:
在centos01中:

 scp ~/.ssh/authorized_keys root@centos02:~/.ssh/
 scp ~/.ssh/authorized_keys root@centos03:~/.ssh/


5. 验证三台机器的免秘钥登录配置成功

ssh centos02

三台虚拟机之间互相登录

exit  # 退出

第一次连接可能会出现图片中的提示,输入yes回车即可

6-9都在centos01上操作

  1. 将开始上传的Hadoop解压至/opt/modules
cd /opt/spftwares
ls
tar -zxf hadoop-2.8.2.tar.gz -C /opt/modules/
Hadoop版本根据自己的调整
像这种带着版本号的,不太好输入,可以先输入几个字母,再用TAB键补齐
需要注意一点就是解压到/opt/modules/下,最后的/不要漏
  1. 配置hadoop环境变量

修改以下文件,在其中加入JAVA_HOME环境变量

手动输入Java环境变量比较麻烦,可以在与centos01连接的对话框上右键—复制此连接(大概这个意思,忘记原字),就会打开第二个和centos01的框,此时cd进入/opt/modules/jdk1.8.0_144/再输入pwd(路径)即复制就可

vi Hadoop-env.sh
vi mapred-env.sh
vi yarn_env.sh

再文档中快速查找JAVA_HOME,输入/JAVA回车即可
以下截图为修改完毕的三个文件




进入文件点击i进入输入模式,写完之后点击ESC,再输入:wq回车即可。

  1. 配置HDFS

    配置文件很重要,要注意小符号,建议复制粘贴
    (1)修改配置文件core-site.xml,加入以下内容:

<configuration>
   <property>
	 <name>fs.defaultFS</name>
	 <value>hdfs://centos01:9000</value>
   </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/modules/hadoop-2.8.2/tmp</value>
     </property>
</configuration>

参数解析:
fs.defaultFS:HDFS的默认访问路径。
hadoop.tmp.dir:Hadoop临时文件的存放目录,可自定义。
(2)修改配置文件hdfs-site.xml,加入以下内容:

<configuration>
   <property>
	  <name>dfs.replication</name>
	  <value>2</value>
	</property>
    <property><!--不检查用户权限-->
	  <name>dfs.permissions.enabled</name>
	  <value>false</value>
	</property>
	<property>
	  <name>dfs.namenode.name.dir</name>
	  <value>file:/opt/modules/hadoop-2.8.2/tmp/dfs/name</value>
	</property>
	<property>
	  <name>dfs.datanode.data.dir</name>
	  <value>file:/opt/modules/hadoop-2.8.2/tmp/dfs/data</value>
	</property>
</configuration>

参数解析:
dfs.replication:文件在HDFS系统中的副本数。
dfs.namenode.name.dir:HDFS名称节点数据在本地文件系统的存放位置。
dfs.datanode.data.dir:HDFS数据节点数据在本地文件系统的存放位置。
(3)修改slaves文件,配置DataNode节点。slaves文件原本无任何内容,需要将所有DataNode节点的主机名都添加进去,每个主机名占一整行。本例中,DataNode为三个节点:

centos01
centos02
centos03
  1. 配置YARN

(1)有将mapred-site.xml.template文件重命名为mapred-site.xml,风险较大,可以改为复制一份mapred-site.xml.template,再复制文件上进行操作。复制文件命名为mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

(1)修改mapred-site.xml文件,添加以下内容,指定以yarn集群方式运行。

<configuration>  
    <property>  
       <name>mapreduce.framework.name</name>  
       <value>yarn</value> 
    </property> 
</configuration>

(2)修改yarn-site.xml文件,添加以下内容:

<configuration>  
    <property>  
       <name>yarn.nodemanager.aux-services</name>  
       <value>mapreduce_shuffle</value>  
    </property>     
</configuration>

参数解析:
yarn.nodemanager.aux-services :NodeManager上运行的附属服务。需配置成mapreduce_shuffle才可运行MapReduce程序。

  1. 拷贝Hadoop安装文件到其他主机
    再centos01中:
cd /opt/modules
scp -r hadoop-2.8.2/ root@centos02:/opt/modules/
scp -r hadoop-2.8.2/ root@centos03:/opt/modules/

查看是否拷贝成功
在centos02和centos03中分别:进入/opt/modules/查看
有hadoop-2.8.2就成功了:)

  1. 配置Hadoop的环境变量
    在01 02 03 三台虚拟机都需要配置,修改/etc/profile文件,添加以下内容。先退到根目录下,再修改。
export HADOOP_HOME=/opt/modules/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

别忘记重启文件使其生效:

source /etc/profile

12.启动Hadoop

格式化NameNode可以初始化HDFS文件系统的一些目录和文件。

hadoop namenode -format

 格式化只需要在第一次启动Hadoop的时候用,(这个对我来说,是比较大的一个坑,之前搭建Hadoop集群的时候,那位老师就一直让格式化☹选择一位良师还是很有必要的:))


出现这个就成功了
启动:

start-all.sh

也可以执行start-dfs.sh和start-yarn.sh分别启动HDFS和YARN集群。

13.查看各节点启动进程

三台虚拟机上输入

jps




Jps进程多一个少一个没关系,其他不能多一个或者少一个,但是集群启动时间长了之后再去jps,可能有些就没有了,大部分是因为你没有用到那个节点,它就歇着去了。

14.网页也可登录
Centos01 的IP地址在加上:50070就是网址
如:192.168.170.133:50070
在Overview里看到’centos01:9000’active就可以啦

14.1)做一个小测试:
在centos01节点的HDFS根目录创建文件夹,名为input,并在/opt/data目录下的一个创建一个命名为123.txt文件(文件中输入两行话:第一行:Hello, Hadoop!,第二行:My name is pinyin)上传到新建的input文件夹中

cd /opt/data
ls
vi 123

hdfa dfs -mkdir /input
hdfs dfs put /opt/data/123 /input

在网页中查看HDFS的NameNode信息。选择绿色条目栏的最后一个Utitles

点击input,进入即可看见你命名为123的文件,再次点击进入

可以选择download,将文件下载下来,以文本文档的形式打开
(有的可以直接点开查看)


成功!

15.测试MapReduce
运行Hadoop自带的Map reduce单词计数程序,统计/input文件中所有文件的单词数量:
进入 /opt/modules/hadoop-2.8.2/share/Hadoop/mapreduce

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar workcount /input /output

统计完成后,查看执行结果:

hadf dfs -cat /output/*


网页中也可以查看:

同样,也可以下载下来看看。
到这里,就把Hadoop平台搭建起来,配置完成:)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!