官网:
https://www.java.com/zh-CN/download/help/index_installing.html
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz mkdir /usr/java tar zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/java sudo vim /etc/profile export JAVA_HOME=/usr/java/java-se-8u41-ri export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH source /etc/profile java -version jps
安装好java后,在/etc/profile或者 ~/.bashrc下添加环境变量,后source /etc/profile 或者 source ~/.bashrc 即可
/etc/profile和~/.bashrc的区别是 /etc/profile 是全局的,也就是你在任何一个用户下执行都可以, ~/.bashrc 这个是某个用户所单独拥有的,像java这样的每个用户都需要的 写在 /etc/profile下即可
jre是运行环境,只是运行java的,不包含工具包
开发包是jdk,包含工具包和运行环境
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz tar zxvf hadoop-3.3.0.tar.gz -C /usr/local/ cd /usr/local/ mv hadoop-3.3.0 hadoop vim ~/.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 export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native source ~/.bashrc hadoop version
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。首先将jdk1.7的路径添(export JAVA_HOME=/usr/lib/jvm/java )加到hadoop-env.sh文件
接下来修改core-site.xml文件:
hadoop.tmp.dir file:/usr/local/hadoop/tmp Abase for other temporary directories. fs.defaultFS hdfs://localhost:9000
接下来修改配置文件 hdfs-site.xml
dfs.replication 1 dfs.namenode.name.dir file:/usr/local/hadoop/tmp/dfs/name dfs.datanode.data.dir file:/usr/local/hadoop/tmp/dfs/data
添加环境变量
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh export JAVA_HOME=/usr/java/java-se-8u41-ri source ~/.bashrc
在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:
#!/usr/bin/env bash YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root Licensed to the Apache Software Foundation (ASF) under one or more
./sbin/start-dfs.sh
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(可参考官方教程),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
配置完成后,执行 NameNode 的格式化
./bin/hdfs namenode -format
启动namenode和datanode进程,并查看启动结果
./sbin/start-dfs.sh jps
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”
可能报错
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform
解决思路:https://blog.csdn.net/qq_41541801/article/details/82413776
hadoop ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_US
解决思路:https://blog.csdn.net/lglglgl/article/details/80553828
Permission denied
解决思路:
cd ~/.ssh mkdir backup && mv id_rsa* backup ssh-keygen -t rsa #注意不要输入密码,即免密登陆 cat id_rsa.pub >> authorized_keys
登陆被管理的服务器,进入需要远程登陆的用户目录,把公钥放到用户目录的 .ssh 这个目录下(如果目录不存在,需要创建~/.ssh目录,并把目录权限设置为700),把公钥改名为authorized_keys,并且把它的用户权限设成600



