Ubuntu16.04 搭建伪分布式Hadoop环境
0x00 java环境配置
Hadoop需要java环境,首先检测是否存在java环境:
java –version
如果没有,则需要去Oracle官网下载jdk:
https://www.oracle.com/cn/java/technologies/javase-jdk8-downloads.html
选择linux x64:
下载后解压到/opt目录下:
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt
然后添加环境变量:
修改配置文件/etc/profile,追加以下内容:
export JAVA_HOME="/opt/jdk1.8.0_181" export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
这里第一行的路径要根据jdk安装的不同位置而改变
然后重启,再次测试:
可以看到已经配置好java环境了
0x01 设置ssh免密登录
启动ssh:
sudo /etc/init.d/ssh start
设置免密码登录:
ssh-keygen -t rsa
一直回车即可
导入authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
检测是否可以免密登录:
0x02 创建新用户
创建一个名字为hadoop的普通用户(虽然我也不明白为啥非得创建一个新用户....):
sudo adduser hadoop
这里一开始用的useradd,但是创建了之后进不去.....用adduser就好了
给hadoop用户sudo权限 /etc/sudoers里面修改:
root ALL=(ALL) ALL hadoop ALL=(root) NOPASSWD:ALL
切换到hadoop用户
su - hadoop
创建存放hadoop文件的目录:
sudo mkdir /opt/modules
将hadoop文件夹的所有者指定为hadoop用户:
sudo chown -R hadoop:hadoop /opt/modules
0x03 配置hadoop
下载hadoop压缩包:
https://downloads.apache.org/hadoop/common/hadoop-2.10.0/
选择:
把它复制到/opt/modules目录下。
解压:
tar -zxvf hadoop-2.10.0.tar.gz
配置环境变量,在etc/profile文件里追加如下内容:
export HADOOP_HOME="/opt/modules/hadoop-2.10.0" export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
重启使得配置生效。
验证HADOOP_HOME参数:
配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的JAVA_HOME参数:
sudo gedit ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
修改JAVA_HOME参数为:
export JAVA_HOME="/opt/jdk1.8.0_181"
配置core-site.xml,在/opt/modules/hadoop-2.10.0/etc/hadoop文件夹中找到core-site.xml文件,插入如下内容:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/modules/hadoop-2.10.0/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</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:/opt/modules/hadoop-2.10.0/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/modules/hadoop-2.10.0/tmp/dfs/data</value> </property> </configuration>
配置yarn-site.xml,也是在同一个文件夹下:
<configuration> <!-- Site specific YARN configuration properties --> <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> <property> <name>yarn.resourcemanager.address</name> <value>127.0.0.1:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>127.0.0.1:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>127.0.0.1:8031</value> </property> </configuration>
重启系统使配置生效
0x04 验证Hadoop是否配置成功
hadoop版本:
启动HDFS,格式化namenode
hdfs namenode -format
出现了successfully formatted则代表格式化成功,如果出现了错误,需要仔细检查之前对三个文件的修改,路径有没有错误(需要根据hadoop的安装路径来更改,不能照抄)
启动hdfs:
start-all.sh
这个时候发现出现了错误,提示无法建立连接,这个时候需要找到/etv/ssh/ssh_config
在最后添加:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
再次启动就没有问题了。
显示进程:
出现了6个进程,说明正确。
访问http://localhost:50070/,出现:
访问http://localhost:8088/:
说明已经完全搭建好了~~