这两天安装hadoop踩了很多坑,也看了好多教程,弄清楚了所有的流程。踩在巨人的肩膀上,把流程和遇到的问题总结一下。
1、ssh 进行免密设置
(1)打开系统偏好设置–>共享,进行如下设置
(2)打开终端,输入如下指令,回车
ssh localhost
然后输入管理密码,出现如下界面
(3)在终端输入如下指令,进行免密设置
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
(4)在终端重新输入ssh localhost,发现不需要密码则ssh配置好了
2、jdk配置,先在终端输入:java -version,查看是否安装了jdk,如果有但是不是java8版本,最好重新装,因为我以前是java14,最后执行的时候出错,看了一些教程说要换成java8,最后我重新换了java8,hadoop才安装成功。
安装java8用brew安装方便。指令如下:
brew cask install adoptopenjdk8
(3)jdk配置,在终端输入,vi ~/.bash_profile,按i进入编辑环境,然后加入如下代码(我的JAVA_HOME路径是“/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home”,路径如果有所不同要把路径改下,其他不变)
JAVA_HOME="/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home"
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存:wq退出,最后在终端输入 source ~/.bash_profile修改。
3、安装hadoop
(1)前期的准备工作做好了,现在可以安装hadoop了,在终端输入如下命令,进行hadoop安装。
brew install hadoop
安装成功后,终端会显示成功安装的版本和路径,我的是
/usr/local/Cellar/hadoop/3.2.1_1。
此时可以在终端输入 :hadoop,查看结果
4、配置hadoop文件,这几个要配置的文件的路径一样在/usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop。
(1)配置hadoop-env.sh文件
在文件找到"#export JAVA_HOME=",进行路径添加,我的路径是“/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home”,然后去掉#号,结果如下
(2)core-site.xml配置配置。
在core-site.xml文件中加入如下代码
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/Cellar/hadoop/3.2.1_1/libexec/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
(3)hdfs-site.xml配置
在hdfs-site.xml文件中加入如下代码
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/Cellar/hadoop/3.2.1_1/libexec/tmp/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:/usr/local/Cellar/hadoop/3.2.1_1/libexec/tmp/dfs/data</value>
</property>
</configuration>
(4)mapred-site.xml配置
在mapred-site.xml文件中加入如下代码
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)yarn-site.xml配置
在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.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
至此文件配置完毕
5、运行
(1)首先对文件系统进行格式化,先进入到 /usr/local/Cellar/hadoop/3.2.1_1/libexec/bin 路径中,在终端输入如下命令:
hdfs namenode -format
出现如下结果表示这没有问题了
(2)在终端 再cd进入/usr/local/Cellar/hadoop/3.2.1_1/sbin目录,运行如下命令
./start-dfs.sh
(3)页码输入:http://localhost:9870,出现如下结果
(4)相同路径下输入如下命令
./start-yarn.sh
出现如下结果
(5)网页输入:http://localhost:8088,出现如下界面
至此,hadoop大功告成。
========================================
安装hive,是在hadoop基础上的,先保证hadoop安装成功,hive绑定数据库,所以也要确保mysql安装成功
1、安装mysql:因为我数据库很早就安装了,在这就不写安装以及配置流程了。
安装好了之后,创建metastore数据库
mysql -u root -p
create database metastore;
2、安装hive:brew install hive
安装成功后,同样的方法在修改bash_profile文件,加入如下代码
export HIVE_HOME=/usr/local/Cellar/hive/3.1.2
export PATH=$HIVE_HOME/bin:$PATH
保存,并修改。
安装成功后,终端输入hive命令,有可能会出现异常,如下我安装是碰到了异常:
Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)
解决方案:将hadoop中lib/common下高版本的guava-27.0-jre.jar包复制到hive的lib目录下,再将原来的jar包删除即可
2、hive-site.xml配置
/usr/local/Cellar/hive/3.1.2/libexec/conf 路径下新建hive-site.xml文件,加入如下代码(需要修改一下数据库连接密码)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--mysql用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--mysql密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>11223344</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/tmp/hive</value>
</property>
</configuration>
3、安装mysql驱动
在:https://dev.mysql.com/downloads/connector/j/
下载驱动,解压之后把mysql-connector-java-8.0.20.jar包拷贝到/usr/local/Cellar/hive/3.1.2/libexec/lib目录下
下载界面如下
4、在终端执行
schematool -initSchema -dbType mysql
出现如下代码就成功了
Initialization script completed
schemaTool completed