Hadoop 详细配置文档

准备配置:

1、用sudo gedit /etc/hostname ,在打开的文件里更改主机名

2、为了虚拟机之间能够ping通,需要修改主机名

   sudo gedit /etc/hosts 命令,把对应的主机名进行更改,同时更改前面对应的ip地址

3、关闭防火墙:用sudo ufw version 来查看是否有防火墙

    开启/关闭防火墙:sudo ufw enable/disable

 

SSH配

1、终端输入ssh localhost 来测试是否有sshserver

   如果出现request confuse,则使用sudo apt-get install openssh-server语句,安装服务,一路回车

   教程网站https://www.linuxidc.com/Linux/2015-01/112045.htm

 

2、对新用户user配置ssh公匙认证。

mkdir ~/.ssh 创建隐藏ssh文件夹

cd ~/.ssh 转到ssh文件夹

ssh-keygen -t rsa   生成密匙(不加sudo)

 

3、

如果权限不够,无法生成rsa文件,则是.ssh文件夹权限不够

更改.ssh文件夹权限:chmod  777   ~/.ssh

注:

如果无法更改可能是文件夹所属权限问题,在root用户下输入:chown + -R + 所属者 文件路径 。可以把文件夹的权限更改到指定所有者,-R递归下面的每一个文件(夹)

 

4、scp  ~/.ssh/id_rsa.pub h1@192.168.45.72:~/.ssh/ras.pub

将host1上.ssh下的所有文件复制到主机host2上

然后在host2上追加:cat rsa.pub >> .ssh/authorized_keys

 

5、用ssh h1@192.168.43.38 命令测试是否成功(如果主机名一致可以不加h1@,如果不一致必须要加h1@)

 

6、用ls -al 语句显示.ssh文件夹下的主要内容有4个:

授权钥匙:authorized_keys(不一定有)

私有钥匙:id_rsa

公用钥匙:id_rsa.pub

登录日志:known_hosts

 

 

JDK安装配置:

  1. 下载jdk压缩包(.tar),(需要较低版本的,11.0的版本不能用)
  2. 打开profile文件(sudo gedit /etc/profile)配置环境变量 

(Ubuntu系统还要配置.bashrc文件:sudo gedit ~/.bashrc)

export JAVA_HOME=/usr/java/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  1. 用 source /etc/profile 命令刷新profile文件(每次打开profile文件后都要source)

Ubuntu系统还要配置~/.bashrc文件

Source ~/.bashrc 更新

用 echo $PATH (或 Java -version)查看是否配置成功

 

 

HADOOP配置

1、下载Hadoop压缩包(.tar),解压到/home/h1/目录下,重命名为hadoop

 

2、在hadoop目录新建名为hdfs的文件夹

文件结构:/home/h1/hadoop/hdfs/

在hdfs文件夹下新建tmp文件夹

文件结构:/home/h1/hadoop/hdfs/tmp/

在hdfs文件夹下新建name文件夹

文件结构:/home/h1/hadoop/hdfs/name/

在hdfs文件夹下新建data文件夹

文件结构:/home/h1/hadoop/hdfs/data/

 

3、配置hadoop的配置文件:

先进入/home/h1/hadoop/etc/hadoop/文件夹下:

(实际操作中,用主机的ip地址代替master,用从机ip地址代替slave)

 

~1、配置core-site.xml文件(用sudo gedit core-site.xml 命令打开)

在<configuration></configuration>中加入以下代码: 

<property>
   <name>hadoop.tmp.dir</name>
   <value>file:/home/h1/hadoop/hdfs/tmp</value>
   <description>A base for other temporary directories.</description>
 </property>

 <property>
  <name>io.file.buffer.size</name>
   <value>131072</value>
 </property>

 <property>
   <name>fs.defaultFS</name>
   <value>hdfs://master:9000</value>
 </property>

注意:第一个属性中的value和我们之前创建的/hadoop/hdfs/tmp路径要一   致

 

~2、配置hadoop-env.sh文件(用sudo gedit hadoop-env.sh命令打开)

  将JAVA_HOME文件配置作为本机JAVA_HOME路径

         

 

~3、配置yarn-env.sh文件(用sudo gedit yarn-env.sh 命令打开)

     将其中的JAVA_HOME修改为本机的JAVA_HOME路径(先把这一行#去掉)

         

 

~4、配置hdfs-site.xml文件(用sudo gedit hdfs-site.xml 命令打开)

  在<configuration></configuration>中加入以下代码:

 <property>
 <name>dfs.replication</name>
   <value>1</value>
 </property>

 <property>
   <name>dfs.namenode.name.dir</name>   
   <value>file:/home/h1/hadoop/hdfs/name</value>
   <final>true</final>
</property>

 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/home/h1/hadoop/hdfs/data</value>
   <final>true</final>
 </property>

 <property>
  <name>dfs.namenode.secondary.http-address</name>
   <value>master:9001</value>
 </property>

 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>

 <property>
   <name>dfs.permissions</name>
   <value>false</value>
 </property>

注意(其中第二个dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致;因为这里只有一个从主机slave1,所以dfs.replication设置为1)

         另外在这个文件中追加以下代码,可以设置分块大小:

<property>  
<name>dfs.blocksize</name>  
<value>31457280</value>
</property>  

<property>
<name>dfs.namenode.fs-limits.min-block-size</name> 
<value>31457280</value> 
</property>

 Value值为分块的大小,31457280为30MB(以字节为单位。)

 

~5、复制mapred-site.xml.template文件,并命名为mapred-site.xml

(用sudo gedit mapred-site.xml 命令打开)

配置 mapred-site.xml,在标签<configuration>中添加以下代码

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

 

~6、配置yarn-site.xml文件(用sudo gedit yarn-site.xml 命令打开)

在<configuration>标签中添加以下代码

<property>
 <name>yarn.resourcemanager.address</name>
   <value>master:18040</value>
 </property>

 <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>master:18030</value>
 </property>

 <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:18088</value>
 </property>

 <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>master:18025</value>
 </property>

 <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>master:18141</value>
 </property>

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

 <property>
     <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>

~7、配置slaves文件(用sudo gedit slaves命令打开)

     把原本的localhost删掉,改成从机的主机名

 

 

4、配置hadoop的环境变量打开profile文件(sudo gedit /etc/profile)

(Ubuntu还有.bashrc)

在后面添加:

HADOOP_HOME=/home/h1/hadoop
CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后用 source /etc/profile 命令刷新profile文件

用scp命令将hadoop文件夹拷贝到从机上,传过去后在从机上面对hadoop进行环境变量配置,如4步。

 

5、初始化hadoop:hdfs namenode  -format

 

6、开启hadoop:start-all.sh

在master上键入jps看到4个文件表明成功

在h1上键入jps看到3个文件表明成功

 

7、测试hadoop:

   hadoop   jar   /home/h1/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar  pi 10 10

出现上面图片表明成功。

 

 

测试:

wordcount测试
1.在当前用户目录下建立hadoop_data文件夹
2.建立file1.txt file2.txt文件,内容自定即可
3.在hadoop根目录下建立文件夹
hdfs dfs -mkdir /intput  
  查看hadoop根目录
hdfs dfs -ls /
4.将本地文件上传到hadoop目录下
hdfs dfs -put /home/h1/hadoop_data/*.txt  /input/
5.执行测试程序
hadoop jar /home/h1/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar  wordcount  /input  /output
6.查看结果
hadoop fs -cat /output/part-r-00000

 

 

补充:

1、初始化成功后,启动失败

初始化次数过多,namenode和hdfs文件夹内容不匹配

解决:删除Hadoop 下的logs文件夹里面的所有内容

      删除hdfs文件夹下的三个文件夹,在重新创建三个文件夹

在重新初始化,在启动。

 

2、jps找不到

配置~/.bashrc 和profile文件

 

3、初始化过多会进入安全模式:

退出安全模式:hadoop dfsadmin -safemode leave

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值