Hadoop伪分布式搭建

linux 7个月前 散逸
浏览:905 0

1. 关闭防火墙

关闭防火墙

执行关闭命令: systemctl stop firewalld.service执行开机禁用防火墙自启命令 : systemctl disable firewalld.service

开启防火墙

启动:systemctl start firewalld.service防火墙随系统开启启动 : systemctl enable firewalld.service

查看防火墙状态

service iptables status        查看防火墙状态
systemctl status firewalld

2. 配置主机名

2.1. 修改文件 /etc/sysconfig/network

设定主机名与网卡启动、网关配置

vi /etc/sysconfig/network
[root@host1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=host1

需要注意的是Hadoop的集群中的主机名不能有_ (下划线)。如果存在_会导致Hadoop集群无法找到这群主机,从而无法启动!

经过上面的修改,主机名称不会马上改变,必须重启才能生效。所以可以使用如下命令进行立即更改:

2.2. 将hostname属性改为指定的主机名。

hostname 

2.3. 让network文件重新生效:

source /etc/sysconfig/network

修改主机名:

vi /etc/sysconfig/network 修改HOSTNAME(永久改)
hostname再修改(临时改)

修改了/etc/sysconfig/network下的HOSTNAME后,然后使用hostname命令使其生效。但是需要注意的是当前会话还是不会变化,但是后续新建会话会生效。
结合永久性修改和临时性修改hostname,使其不必重启Linux服务器

3. 配置hosts文件,将主机名和ip地址进行映射

编辑hosts文件:

vim /etc/hosts
172.16.51.21  host1

 

4. 配置ssh进行免密互通 (可先跳过)

安装hadoop后,本机进行启动停止服务等操作时,需要多次输入本地密码,比较麻烦,需要配置ssh无密码登录。

HDFS 是由一个 NameNode,一个 SecodaryNameNode,以及 n 个 DataNode 组成,当有多台物理机时,NameNodeDataNode 是分布在不同的物理机上,部署则需要 NameNode 能够直接与 DataNode 进行通信,通信方式之一就是使用 SSH,所以需要在之间设置免密登录。

因为本次是 Hadoop 伪分布式搭建,本机同时充当 NameNodeDataNode 角色,所以只需要配置一个本机的 SSH 免密登录。

删除已有的 ssh 配置,使用命令 rm -r ~/.ssh 进行删除 ;
生成新的 ssh-key ,使用命令 ssh-keygen -t rsa ;
-为本机进行公钥的注册:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys


ssh-keygen -t rsa                  //回车
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

测试:ssh localhost  如果无需密码,则成功。

其中id_rsa为私钥文件,id_rsa.pub为公钥文件。

5. 重启Linux让主机名的修改生效:reboot

6. 安装JDK

6.1. 上传gz包,并解压

解压:tar -zxvf 包名

6.2. 设置环境

vi /etc/profile在文件尾行添加以下内容
JAVA_HOME=/simple/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH

6.3. 重新加载profile使配置生效。

source /etc/profile

这个文件是每个用户登录时都会运行的环境变量设置,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。

环境变量配置完成,测试环境变量是否生效。

echo $JAVA_HOME
java -version

7. 配置Hadoop

7.1. 上传安装包,并解压

tar -zxvf hadoop-2.4.1.tar.gz

7.2. 修改配置

cd /simple/hadoop-2.4.1/etc/hadoop 

7.2.1. hadoop-env. sh

修改JAVA_HOME的路径,修改成具体的路径。
修改HADOOP_CONF_DIR的路径,修改为具体的路径。

# The java implementation to use.
export JAVA_HOME=/simple/jdk1.7.0_79
 
# The jsvc implementation to use. Jsvc is required to run secure datanodes.
#export JSVC_HOME=${JSVC_HOME}
 
export HADOOP_CONF_DIR=/simple/hadoop-2.4.1/etc/hadoop(可以不写)

7.2.2. core-site.xml

<configuration>
<property>
    <name>fs.default.name</name>
    <value>hdfs://172.16.51.21:9000</value>
</property>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://172.16.51.21:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/simple/hadoop-2.4.1/tmp</value>
</property>
</configuration>

7.2.3. hdfs-site.xml

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.name.dir</name>
                <value>/simple/hadoop-2.4.1/hdfs/name</value>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/simple/hadoop-2.4.1/hdfs/data</value>
        </property>
</configuration>
 

7.2.4. mapred-site.xml

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

7.2.5. yarn-site.xml

<configuration>
 
<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>host1</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
 
</configuration>

8. 编辑profile文件:

vi /etc/profile

1.添加Hadoop的环境变量
在最后一行添加

JAVA_HOME=/simple/jdk1.7.0_79
HADOOP_HOME=/simple/hadoop-2.4.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 

重新生效:

source /etc/profile

9. 启动

9.1. 格式化namenode:

hdfs namenode -format  或者  hadoop namenode -format

第一次配置需要初始化

9.2. 启动dfs和yarn (这里命令手动输入,不要复制)

start-dfs.sh

start-yarn.sh

启动之后,在任意目录下执行jps命令验证进程是否正 常启动。

1、全部启动 :start-all.sh

2、分开启动:单独启动hdfs start-hdfs.sh;单独启动yarn start-yarn.sh

jps 查看是否启动成功。

start-hdfs.sh 会启动文件系统的 namenode datanode

start-yarn.sh 会启动资源调度 ResourceManager NodeManager

停止也有2种方式:

1、停止全部 stop-all.sh

2、分开停止:1、停止hdfs stop-hdfs.sh;2、停止yarn stop-yarn.sh

输入 jps 查看

[root@host1 hadoop]# jps
14711 DataNode
97326 NameNode
98508 SecondaryNameNode
99506 NodeManager
48045 Jps
94455 ResourceManager

测试:

浏览器输入:http://自己的ip:50070 出现界面

 

10. PS:尽量不要多次格式化,会导致ID不相同,启动失败,启动过程中,注意输入密码和yes。

PS: 出现:Hadoop无法正确启动××

解决方法:

1、删除Hadoop文件夹…/tmp/dfs 里面的data和name文件夹,tmp下的文件,还有hdfs里面的date,name 清空

2、重新初始化NameNode:hadoop namenode -format

3、启动:start-all.sh

此时再输入jps,可看到所有进程都正常启动

(总结:有异常,可通过查看操作日志查找错误原因 初始化namenode之前,应先删除data和name文件夹。

11. 题目1

1、在本地计算机上创建测试文件helloworld.txt ,输入3行内容

helloworld this is my test mkdir touch blue yum yum mkdir
helloworld cat vim mkdir touch yum
cat this my test cat vim touch red yello

将helloworld.txt文件上传至HDFS目录/user/root/filetest下,并以HDFS显示它的内容将整个工作流程及最终验证结果截图,写在word文档中,上传。

步骤:
1、windows上创建helloword.txt输入3行内容
2、启动hadoop
3、把本地计算机中的helloword.txt.上传到centos中
4、创建目录/user/root/filetest
hdfs dfs -mkdir -p /user/root/filetest 解释: -p(逐级创建)
5、把helloword.txt.上传到HDFS目录中
hdfs dfs -put /root/helloworld.txt /user/root/filetest 或者 hadoop fs -moveFromLocal aaa.txt /user/root
6、查看文件(命令) hdfs dfs -ls /user/root/filetest

结果:浏览器

Hadoop伪分布式搭建
版权声明:散逸 发表于 2020-04-15 17:28:50。
转载请注明:Hadoop伪分布式搭建 | 散逸-博客-导航

暂无评论

暂无评论...