ubuntu 18.04下配置Hadoop 3.0.3
文章开始把我喜欢的这句话送个大家:这个世界上还有什么比自己写的代码运行在一亿人的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍
1.安装虚拟机设置Ubuntu操作系统(网上教程很多不再讲述)
2.安装SSH,设置SSH无密码登陆
$ sudo apt-get install openssh-server #安装SSH server $ ssh localhost #登陆SSH,第一次登陆输入yes $ exit #退出登录的ssh localhost $ cd ~/.ssh/ #如果没法进入该目录,执行一次ssh localhost $ ssh-keygen -t rsa
输入完 $ ssh-keygen -t rsa 语句以后,需要连续敲击三次回车,如下图:
其中,第一次回车是让KEY存于默认位置,以方便后续的命令输入。第二次和第三次是确定passphrase,相关性不大。两次回车输入完毕以后,如果出现类似于下图所示的输出,即成功:
之后再输入:
$ cat ./id_rsa.pub >> ./authorized_keys #加入授权 $ ssh localhost #此时已不需密码即可登录localhost,并可见下图。如果失败则可以搜索SSH免密码登录来寻求答案
3安装jdk
*******此处有坑!!!!!!!!注意一定要下载jdk8或以下版本,最开始我下载的全新版本jdk 11,由于不兼容于是半天的配置时间。。。。。。。。。。。
首先在oracle官网下载 http://www.oracle.com/technetwork/java/javase/downloads/index.html 接下来进行安装与环境变量配置
$ mkdir /usr/lib/jvm #创建jvm文件夹 $ sudo tar zxvf jdk-7u80-linux-x64.tar.gz -C /usr/lib #/ 解压到/usr/lib/jvm目录下 $ cd /usr/lib/jvm #进入该目录 $ mv jdk1.7.0_80 java #重命名为java $ vi ~/.bashrc #给JDK配置环境变量
另外推荐使用vim来编辑环境变量
$ vim ~/.bashrc
如果没有vim,可以使用:
$sudo apt-get install vim
来进行下载。
在.bashrc文件添加如下指令:
export JAVA_HOME=/usr/lib/jvm/java export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
在文件修改完毕以后,输入代码:
$ source ~/.bashrc #使新配置的环境变量生效
$ java -version #检测是否安装成功,查看java版本
4.安装hadoop-3.0.0
先下载hadoop-2.6.0.tar.gz,链接如下:
http://mirrors.hust.edu.cn/apache/hadoop/common/
下面进行安装:
$ sudo tar -zxvf hadoop-3.0.3.tar.gz -C /usr/local #解压到/usr/local目录下 $ cd /usr/local $ sudo mv hadoop-3.0.3 hadoop #重命名为hadoop $ sudo chown -R hadoop ./hadoop #修改文件权限
给hadoop配置环境变量,将下面代码添加到.bashrc文件:
export HADOOP_HOME=/usr/local/hadoop export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
同样,执行source ~./bashrc使设置生效,并查看hadoop是否安装成功
5.分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改配置文件 core-site.xml hdfs-site.xml hadoop-env.sh yarn-site.xml mapred-site.xml 等5个文件。
1.修改hadoop-env.sh文件2.修改core-site.xml文件:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
3.修改配置文件 hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
4.修改mapred-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.ShuffHandler</value> </property> </configuration>
5.修改yarn-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置完成。
6.格式化
执行 NameNode 的格式化
$ ./bin/hdfs namenode -format
启动namenode和datanode进程,并查看启动结果
$ ./sbin/start-dfs.sh $ jps
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”
启动Yarn进程,并查看启动结果
$ ./sbin/start-yarn.sh $ jps启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “ResourceManager”和”NodeManager”
也可start-all.sh 一次性启动。
最后http:// localhost:8088/为hadoop web页面
http:// localhost:50070/为HDFS页面
加油吧,程序员!